public static void MakeAddJournalEntry(IUser User, ApplicationDbContext identitydb, System.Data.Entity.Infrastructure.DbEntityEntry entry) { var entityType = System.Data.Entity.Core.Objects.ObjectContext.GetObjectType(entry.Entity.GetType()); var EntityName = entityType.Name; var userName = User != null ? User.Name : "AppAdmin"; JournalEntryContext db = new JournalEntryContext(); JournalEntry Je = new JournalEntry(); Je.DateTimeOfEntry = DateTime.UtcNow; Je.EntityName = EntityName; Je.UserName = userName; Je.Type = entry.State.ToString(); Je.RecordId = 0; Type EntityType = entry.Entity.GetType(); var displayValue = ""; dynamic EntityObj = Convert.ChangeType(entry.Entity, EntityType); try { displayValue = EntityObj.DisplayValue; } catch { } if (EntityName == "ApplicationUser") { displayValue = EntityObj.UserName; } if (EntityName == "IdentityUserRole") { var roleid = EntityObj.RoleId; var userid = EntityObj.UserId; displayValue = identitydb.Users.Find(userid).UserName + " - " + identitydb.Roles.Find(roleid).Name; } Je.RecordInfo = displayValue; db.JournalEntries.Add(Je); db.SaveChanges(); }