コード例 #1
0
 public static RepositorioDePersonas NuevoRepositorioDePersonas(IConexionBD conexion)
 {
     if (!(_instancia != null && !_instancia.ExpiroTiempoDelRepositorio()))
     {
         _instancia = new RepositorioDePersonas(conexion);
     }
     return(_instancia);
 }
コード例 #2
0
        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);
        }