示例#1
0
        private void ProcesarSalvado()
        {
            var horaActual = DateTimeOffset.UtcNow;

            foreach (var item in ChangeTracker.Entries()
                     .Where(e => e.State == EntityState.Added && e.Entity is Entidad))
            {
                var entidad = item.Entity as Entidad;
                entidad.FechaCreacion       = horaActual;
                entidad.UsuarioCreacion     = servicioUsuarioActual.ObtenerNombreUsuarioActual();
                entidad.FechaModificacion   = horaActual;
                entidad.UsuarioModificacion = servicioUsuarioActual.ObtenerNombreUsuarioActual();
            }

            foreach (var item in ChangeTracker.Entries()
                     .Where(e => e.State == EntityState.Modified && e.Entity is Entidad))
            {
                var entidad = item.Entity as Entidad;
                entidad.FechaModificacion   = horaActual;
                entidad.UsuarioModificacion = servicioUsuarioActual.ObtenerNombreUsuarioActual();
                item.Property(nameof(entidad.FechaCreacion)).IsModified   = false;
                item.Property(nameof(entidad.UsuarioCreacion)).IsModified = false;
            }
        }
示例#2
0
        private void GuardarCambiosConAuditoria()
        {
            var propiedades = new[] {
                "UsuarioCreacion",
                "FechaModificacion",
                "UsuarioModificacion",
                "EstaBorrado"
            };

            var Entries = ChangeTracker.Entries()
                          .Where(e => (e.State == EntityState.Added ||
                                       e.State == EntityState.Modified ||
                                       e.State == EntityState.Deleted) &&
                                 e.Properties.Any(p => propiedades.Contains(p.Metadata.Name))
                                 );

            foreach (var entry in Entries)
            {
                var today = DateTime.UtcNow;
                //var today = _dateTimeManager.Today;
                var currentUser = servicioUsuarioActual.ObtenerNombreUsuarioActual();
                //var currentUser = _contextData.CurrentUser;


                switch (entry.State)
                {
                case EntityState.Added:
                    entry.Property("UsuarioCreacion").CurrentValue     = currentUser;
                    entry.Property("UsuarioModificacion").CurrentValue = currentUser;
                    break;

                case EntityState.Modified:
                    entry.Property("FechaModificacion").CurrentValue   = today;
                    entry.Property("UsuarioModificacion").CurrentValue = currentUser;
                    break;

                case EntityState.Deleted:
                    entry.State = EntityState.Modified;
                    entry.Property("EstaBorrado").CurrentValue = true;
                    break;
                }
            }
        }