Exemplo n.º 1
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 });
        }
Exemplo n.º 2
0
        public static dynamic Guardar(IContextFactory factory, IOptions <ConnectionDB> connection,
                                      RegistroParticipantesRequest request)
        {
            long id = 0;

            using (Aldeas_Context db = factory.Create(connection))
            {
                if (request.FechaSalida != null)
                {
                    request.FechaSalida = Utils.CambiarFecha(request.FechaSalida);
                }



                request.FechaNacimiento = Utils.CambiarFecha(request.FechaNacimiento);
                request.FechaIngreso    = Utils.CambiarFecha(request.FechaIngreso);



                var nuevo = new RegistroParticipante()
                {
                    idProyecto      = request.idProyecto,
                    idMunicipio     = request.CodMunicipio,
                    Nombres         = request.Nombres,
                    Apellidos       = request.Apellidos,
                    FechaNacimiento = request.FechaNacimiento,

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

                    Discapacidad = request.Discapacidad,

                    NivelEscolaridad = request.NivelEscolaridad
                };
                db.tbRegistroParticipantes.Add(nuevo);
                db.SaveChanges();
                id = nuevo.id;

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

                foreach (var item in request.Participantes)
                {
                    listParticipantes.Add(new DBIntegrantes()
                    {
                        id_participantes = 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);
                List <RegistroPreguntas> preguntas = new List <RegistroPreguntas>();

                foreach (var item in request.Linea)
                {
                    preguntas.Add(new RegistroPreguntas()
                    {
                        esOtro         = item.esOtro,
                        idParticipante = id,
                        Pregunta       = item.Pregunta,
                        Valor          = item.esOtro ? item.valorOtro : item.name
                    });
                }
                db.tbRegistroPreguntas.AddRange(preguntas);
                db.SaveChanges();
            }
            return(new { id = id, status = id == 0 ? "error" : "OK", code = 200 });
        }