Avatar of finance_teacher
finance_teacher asked on

ASP.net MVC4 -- History Log (UPDATE / DELETE)

I like
http://www.codeproject.com/Articles/34491/Implementing-Audit-Trail-using-Entity-Framework-Pa
but it is not for MVC4.

What easy "ASP.net MVC4 History Log"
solution do you have so the below works ?

Steps
 1. user clicks SAVE on Edit.cshtml as normal
 2. below code runs as normal
 3. somehow (via code or MSSQL database trigger) it writes
    only changed values to my "AUDIT_LOG" database table
-----------------------------------------------------------------
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(MAINT_WORK_REQ maint_work_req)
        {
            if (ModelState.IsValid)
            {
                db.Entry(maint_work_req).State = EntityState.Modified;
                try
                {
                    //OurTechSignature_Date
                    if (maint_work_req.OurTechSignature_Date == null)
                    {
                        if (Request["Signature_Tech_Checked"].Contains("true"))
                        {
                            var context = new UsersContext();
                            UserProfile myProfile = context.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name);
                            maint_work_req.OurTechSignature_Date = myProfile.FirstName + " " + myProfile.LastName + " " + DateTime.Now.ToShortDateString();
                        }
                    }

                    var context2 = new UsersContext();
                    UserProfile myProfile2 = context2.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name);
                    maint_work_req.LastModifiedDate = DateTime.Now;
                    maint_work_req.LastModifiedBy = myProfile2.FirstName + " " + myProfile2.LastName;

                    db.SaveChanges();
                    .... something like "db.SaveAuditLog()" here
ASP.NETC#.NET Programming

Avatar of undefined
Last Comment
Aaron Jabamani

8/22/2022 - Mon
Avodah

I am not clear what is the question here?

There is not special solution for Audit logs in MVC. Solutions that work anywhere else will work with MVC and Entity Framework.

1. If you use a trigger then that gets executed at the database level and no need to worry about it in your c# code.

2. If you are manually saving to an audit table then simple insert into that table. Wrapping this in a transaction would be handy.

DaTribe
ASKER
finance_teacher

Do you have some sample code for your #2 solution ?
ASKER CERTIFIED SOLUTION
Aaron Jabamani

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
See how we're fighting big data
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes