private static string serializarPropiedadesPOCO(IElementoDtm elemento) { var propiedades = elemento.GetType().GetProperties(); var serializado = ""; foreach (PropertyInfo propiedad in propiedades) { var tipo = propiedad.PropertyType.FullName.ToLower(); string valor; if (tipo.Contains("int") || tipo.Contains("string") || tipo.Contains("date") || tipo.Contains("bool")) { valor = $"{propiedad.GetValue(elemento)}"; } else { continue; } serializado = $"{serializado}{(serializado.IsNullOrEmpty() ? "" : Environment.NewLine)}{propiedad.Name}:{valor}"; } return(serializado); }
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); }