public static Tuple <object, string, bool>[] GenerarTuplaLeerRegistros(object Estructura, DateTime FechaInicio, DateTime FechaFin, Constantes.TipoConsulta Consulta1, bool BuscarTodosLosEstados, params string[] Omitir) { PropertyInfo[] Propiedades = Estructura.GetType().GetProperties(); Tuple <object, string, bool>[] TuplaFinal = new Tuple <object, string, bool> [Propiedades.Length + 4]; try { TuplaFinal[0] = new Tuple <object, string, bool>((int)Consulta1, "Consulta", false); TuplaFinal[1] = new Tuple <object, string, bool>(BuscarTodosLosEstados, nameof(BuscarTodosLosEstados), false); TuplaFinal[2] = new Tuple <object, string, bool>(FechaInicio, nameof(FechaInicio), false); TuplaFinal[3] = new Tuple <object, string, bool>(FechaFin, nameof(FechaFin), false); int Index = 4; foreach (PropertyInfo Propiedad in Propiedades) { object Valor = Propiedad.GetValue(Estructura, null); if (Valor == null) { Valor = string.Empty; } else if (Valor.GetType() == typeof(DateTime)) { if ((DateTime)Valor == DateTime.Parse("01/01/0001")) { Valor = DateTime.Parse("01/01/1900"); } } else if (Propiedad.PropertyType.FullName == "System.Char") { Valor = '\0'; } TuplaFinal[Index] = new Tuple <object, string, bool>(Valor, Propiedad.Name, !(Omitir.Contains <string>(Propiedad.Name) || Valor.GetType() == typeof(Guid))); Index++; } return(TuplaFinal); } catch (Exception) { return(null); } }
public static Tuple <object, string, bool>[] GenerarTuplaGuardarRegistro(object Estructura, string IdPrincipal, string IdGuid, Constantes.Accion Accion1) { List <string> Excluir = new List <string> { nameof(Administradores.NumeroControlCreacion), nameof(Administradores.NumeroControlActualizacion) }; if (Accion1 == Constantes.Accion.Insertar) { Excluir.Add(nameof(Administradores.IdAdminActualizacion)); Excluir.Add(nameof(Administradores.FechaActualizacion)); } else if (Accion1 == Constantes.Accion.Actualizar) { Excluir.Add(nameof(Administradores.IdAdminCreacion)); Excluir.Add(nameof(Administradores.FechaCreacion)); } PropertyInfo[] Propiedades = Estructura.GetType().GetProperties(); List <Tuple <object, string, bool> > TuplaFinal = new List <Tuple <object, string, bool> >(); try { foreach (PropertyInfo Propiedad in Propiedades) { if (!Excluir.Contains(Propiedad.Name)) { var Valor = Propiedad.GetValue(Estructura, null); if (Valor == null) { Valor = string.Empty; } else if (Valor.GetType() == typeof(DateTime)) { if ((DateTime)Valor == DateTime.Parse("01/01/0001")) { Valor = DateTime.Parse("01/01/1900"); } } else if (Propiedad.PropertyType.FullName == "System.Char") { Valor = '\0'; } if (Accion1 == Constantes.Accion.Insertar) { TuplaFinal.Add(new Tuple <object, string, bool>(Valor, Propiedad.Name, (Propiedad.Name == IdPrincipal || Propiedad.Name == IdGuid))); } else if (Accion1 == Constantes.Accion.Actualizar) { TuplaFinal.Add(new Tuple <object, string, bool>(Valor, Propiedad.Name, !(Propiedad.Name == IdPrincipal || Propiedad.Name == IdGuid))); } } } return(TuplaFinal.ToArray()); } catch (Exception) { return(null); } }