Ejemplo n.º 1
0
        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();
        }