public static RepositorioDePersonas NuevoRepositorioDePersonas(IConexionBD conexion) { if (!(_instancia != null && !_instancia.ExpiroTiempoDelRepositorio())) { _instancia = new RepositorioDePersonas(conexion); } return(_instancia); }
public Formulario GetFormulario(string criterio, Usuario usuario) { var criterio_deserializado = (JObject)JsonConvert.DeserializeObject(criterio); int id_persona = (int)((JValue)criterio_deserializado["idPersona"]); int id_form = (int)((JValue)criterio_deserializado["idFormulario"]); var persona = RepositorioDePersonas.NuevoRepositorioDePersonas(conexion_bd).BuscarPersonas("{Id:" + id_persona + "}"); if (persona.Count == 0) { throw new Exception("Persona No encontrada"); } int documento = persona[0].Documento; var parametros = new Dictionary <string, object>(); parametros.Add("@idPersona", id_persona); parametros.Add("@idFormulario", id_form); var tablaDatos = conexion_bd.Ejecutar("dbo.Form_Get_Generico", parametros); List <Campo> campos = new List <Campo>(); Formulario formulario = new Formulario(); if (tablaDatos.Rows.Count > 0) { tablaDatos.Rows.ForEach(row => { campos.Add(new Campo(row.GetString("clave"), row.GetString("valor"), row.GetBoolean("fijo"))); }); var fila = tablaDatos.Rows[0]; formulario = new Formulario(id_form, id_persona, campos); } else { campos.AddRange(traerDatosPersonales(documento)); campos.AddRange(traerNivelGrado(documento)); campos.AddRange(traer_estudios(documento)); campos.AddRange(traer_domicilio(documento)); formulario = new Formulario(id_form, id_persona, campos); this.GuardarDatos(formulario, usuario); } return(formulario); }