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); }
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 }); }