internal static void DefinirCamposDeAuditoriaDtm <TEntity>(ModelBuilder modelBuilder) where TEntity : AuditoriaDtm { var nombreDeTabla = GeneradorMd.NombreDeTabla(typeof(TEntity)); modelBuilder.Entity <TEntity>().Property(p => p.IdElemento).HasColumnName("ID_ELEMENTO"); modelBuilder.Entity <TEntity>().Property(p => p.IdElemento).HasColumnType("INT"); modelBuilder.Entity <TEntity>().Property(p => p.IdElemento).IsRequired(true); modelBuilder.Entity <TEntity>().HasIndex(p => p.IdElemento).HasDatabaseName($"I_{nombreDeTabla}_ID_ELEMENTO"); modelBuilder.Entity <TEntity>().Property(p => p.IdUsuario).HasColumnName("ID_USUARIO"); modelBuilder.Entity <TEntity>().Property(p => p.IdUsuario).HasColumnType("INT"); modelBuilder.Entity <TEntity>().Property(p => p.IdUsuario).IsRequired(true); modelBuilder.Entity <TEntity>().HasIndex(p => p.IdUsuario).HasDatabaseName($"I_{nombreDeTabla}_ID_USUARIO"); modelBuilder.Entity <TEntity>().Property(p => p.Operacion).HasColumnName("OPERACION"); modelBuilder.Entity <TEntity>().Property(p => p.Operacion).HasColumnType("CHAR(1)"); modelBuilder.Entity <TEntity>().Property(p => p.Operacion).IsRequired(true); modelBuilder.Entity <TEntity>().Property(p => p.registroJson).HasColumnName("REGISTRO"); modelBuilder.Entity <TEntity>().Property(p => p.registroJson).HasColumnType("VARCHAR(MAX)"); modelBuilder.Entity <TEntity>().Property(p => p.registroJson).IsRequired(true); modelBuilder.Entity <TEntity>().Property(p => p.AuditadoEl).HasColumnName("AUDITADO_EL"); modelBuilder.Entity <TEntity>().Property(p => p.AuditadoEl).HasColumnType("DATETIME2(7)"); modelBuilder.Entity <TEntity>().Property(p => p.AuditadoEl).IsRequired(true); }
public AuditoriaDeElementos(ContextoSe contexto, enumNegocio negocio) { Dtm = negocio.TipoDtm(); Dto = negocio.TipoDto(); tablaDeAuditoria = $"{GeneradorMd.NombreDeTabla(Dtm)}_AUDITORIA"; esquemaDeAuditoria = GeneradorMd.EsquemaDeTabla(Dtm); Contexto = contexto; }
public static void RegistrarAuditoria(ContextoSe contexto, enumNegocio negocio, enumTipoOperacion operacion, IElementoDtm auditar) { auditar.UsuarioModificador = auditar.UsuarioCreador = null; var valor = serializarPropiedadesPOCO(auditar); var sentencia = $@"Insert into {GeneradorMd.EsquemaDeTabla(negocio.TipoDtm())}.{GeneradorMd.NombreDeTabla(negocio.TipoDtm())}_AUDITORIA (id_elemento, id_usuario, operacion, registro, auditado_el) values ({((ElementoDtm)auditar).Id} ,{contexto.DatosDeConexion.IdUsuario} ,'{operacion.ToBd()}' ,'{valor}' ,'{DateTime.Now}')"; contexto.Database.ExecuteSqlRaw(sentencia); }