コード例 #1
0
        public static dynamic ExportParticipantes(IContextFactory factory, IOptions <ConnectionDB> connection)
        {
            RegistroParticipanteProyectosResponse retorno = new RegistroParticipanteProyectosResponse();


            using (Aldeas_Context db = factory.Create(connection))
            {
                var ParticipantesRegistrados = from dato in db.tbRegistroParticipantes
                                               join muni in db.tbMunicipios on dato.idMunicipio equals muni.id
                                               join dep in db.tbDepartamentos on muni.cod_dane_departamento equals dep.id_departamento
                                               select new RegistroParticipanteResponse
                {
                    id                  = dato.id,
                    idProyecto          = dato.idProyecto,
                    idMunicipio         = dato.idMunicipio,
                    Municipio           = muni.municipio,
                    idDepartamento      = dep.id_departamento,
                    Departamento        = dep.departamento,
                    Nombres             = dato.Nombres,
                    Apellidos           = dato.Apellidos,
                    FechaNacimiento     = dato.FechaNacimiento,
                    Edad                = dato.Edad,
                    FechaIngreso        = dato.FechaIngreso,
                    FechaSalida         = dato.FechaSalida,
                    Localidad           = dato.Localidad,
                    Sexo                = dato.Sexo,
                    EstatusResidencia   = dato.EstatusResidencia,
                    UltimoCursoAprobado = dato.UltimoCursoAprobado,
                    AsisteAlColegio     = dato.AsisteAlColegio,
                    GrupoPoblacional    = dato.GrupoPoblacional,
                    GrupoEtnico         = dato.GrupoEtnico,
                    Nacionalidad        = dato.Nacionalidad,
                    Genero              = dato.Genero,
                    TipoParticipante    = dato.TipoParticipante,
                    Discapacidad        = dato.Discapacidad,
                    NivelEscolaridad    = dato.NivelEscolaridad
                };


                if (ParticipantesRegistrados.Any())
                {
                    retorno.ParticipanteLista = ParticipantesRegistrados.ToList();
                    var preguntas = from dato in db.tbRegistroPreguntas

                                    select dato;

                    if (preguntas.Any())
                    {
                        retorno.Preguntas = preguntas.ToList();
                    }
                    var integrantes = from dato in db.tbIntegrantesFamilia

                                      select dato;

                    if (integrantes.Any())
                    {
                        retorno.IntegrantesFamilia = integrantes.ToList();
                    }
                }
            }

            return(retorno);
        }
コード例 #2
0
        public static dynamic CopiarIntegrante(IContextFactory factory, IOptions <ConnectionDB> connection,
                                               UsuarioCambio usuarioCambio)
        {
            RegistroParticipanteProyectosResponse retorno = new RegistroParticipanteProyectosResponse();

            long id = 0;

            using (Aldeas_Context db = factory.Create(connection))
            {
                var mismoMovimiento = from dato in db.tbRegistroParticipantes

                                      where dato.id == usuarioCambio.Participante &&
                                      dato.idProyecto == usuarioCambio.ProyectoOrigen && dato.id_origen != null
                                      select dato;

                if (mismoMovimiento.Any())
                {
                    var mismo = from dato in db.tbRegistroParticipantes

                                where dato.id == mismoMovimiento.First().id_origen &&
                                dato.idProyecto == usuarioCambio.ProyectoDestino
                                select dato;

                    if (mismo.Any())
                    {
                        return(new { id = id, status = "El Participante que intentas copiar ya existe en este proyecto", code = 400 });
                    }
                }
                var ParticipanteOrigen = from dato in db.tbRegistroParticipantes
                                         where dato.id == usuarioCambio.Participante
                                         select dato;

                //var participantesDestino = from dato in db.tbRegistroParticipantes
                //                         where dato.id_origen == usuarioCambio.Participante
                //                         && dato.idProyecto == usuarioCambio.ProyectoDestino

                //                         select dato;

                //if (participantesDestino.Any())
                //{
                //    return new { id = id, status = "Ya se ha copiado previamente este participante a este proyecto.", code = 400 };

                //}
                if (ParticipanteOrigen.Any())
                {
                    var datosNuevo = ParticipanteOrigen.First();
                    var nuevo      = new RegistroParticipante()
                    {
                        idProyecto      = usuarioCambio.ProyectoDestino,
                        idMunicipio     = datosNuevo.idMunicipio,
                        Nombres         = datosNuevo.Nombres,
                        Apellidos       = datosNuevo.Apellidos,
                        FechaNacimiento = datosNuevo.FechaNacimiento,

                        Edad                = datosNuevo.Edad,
                        FechaIngreso        = datosNuevo.FechaIngreso,
                        FechaSalida         = datosNuevo.FechaSalida,
                        Localidad           = datosNuevo.Localidad,
                        Sexo                = datosNuevo.Sexo,
                        EstatusResidencia   = datosNuevo.EstatusResidencia,
                        UltimoCursoAprobado = datosNuevo.UltimoCursoAprobado,
                        AsisteAlColegio     = datosNuevo.AsisteAlColegio,
                        GrupoPoblacional    = datosNuevo.GrupoPoblacional,
                        GrupoEtnico         = datosNuevo.GrupoEtnico,
                        Nacionalidad        = datosNuevo.Nacionalidad,
                        Genero              = datosNuevo.Genero,
                        TipoParticipante    = datosNuevo.TipoParticipante,

                        Discapacidad = datosNuevo.Discapacidad,

                        NivelEscolaridad = datosNuevo.NivelEscolaridad,
                        id_origen        = usuarioCambio.Participante
                    };
                    db.tbRegistroParticipantes.Add(nuevo);

                    db.SaveChanges();

                    id = nuevo.id;


                    var preguntas = from dato in db.tbRegistroPreguntas
                                    where dato.idParticipante == usuarioCambio.Participante
                                    select dato;

                    if (preguntas.Any())
                    {
                        var datosPreguntas = preguntas.ToList();

                        List <RegistroPreguntas> preguntasCopia = new List <RegistroPreguntas>();

                        foreach (var item in datosPreguntas)
                        {
                            preguntasCopia.Add(new RegistroPreguntas()
                            {
                                esOtro         = item.esOtro,
                                idParticipante = nuevo.id,
                                Pregunta       = item.Pregunta,
                                Valor          = item.Valor
                            });
                        }
                        db.tbRegistroPreguntas.AddRange(preguntasCopia);
                        db.SaveChanges();
                    }
                    var integrantes = from dato in db.tbIntegrantesFamilia
                                      where dato.id_participantes == usuarioCambio.Participante
                                      select dato;

                    if (integrantes.Any())
                    {
                        retorno.IntegrantesFamilia = integrantes.ToList();

                        List <DBIntegrantes> listParticipantes = new List <DBIntegrantes>();

                        foreach (var item in retorno.IntegrantesFamilia)
                        {
                            listParticipantes.Add(new DBIntegrantes()
                            {
                                id_participantes = nuevo.id,
                                Nombre           = item.Nombre,
                                Rango_0_5        = item.Rango_0_5,
                                Rango_6_12       = item.Rango_6_12,
                                Rango_13_17      = item.Rango_13_17,
                                Rango_18_24      = item.Rango_18_24,
                                Rango_25_56      = item.Rango_25_56,
                                Mayores_60       = item.Mayores_60,
                                Total            = item.Total,
                                TotalDesagregado = item.TotalDesagregado,
                                Porcentaje       = item.Porcentaje
                            });
                        }

                        db.tbIntegrantesFamilia.AddRange(listParticipantes);
                        db.SaveChanges();
                    }
                }
            }

            return(new { id = id, status = id == 0 ? "error" : "OK", code = 200 });
        }