public List <Modelos.Retornos.LideresDeCelulaPorRed> ObtenerLideresDeCelulaPorRed(int celulaId) { ManejadorDeCelulas manejador = new ManejadorDeCelulas(); List <int> celulas = manejador.ObtenerRedInferior(celulaId); celulas.Add(celulaId); //Agregamos la celula actual para incluir sus lideres return(( from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaLider where o.Borrado == false && o.Miembro.Borrado == false && celulas.Contains(o.CelulaId) orderby o.Celula.Descripcion select new Modelos.Retornos.LideresDeCelulaPorRed { Id = o.MiembroId, Nombre = o.Miembro.Primer_Nombre + " " + o.Miembro.Segundo_Nombre + " " + o.Miembro.Apellido_Paterno + " " + o.Miembro.Apellido_Materno, Email = o.Miembro.Email, TelMovil = o.Miembro.Tel_Movil, TelCasa = o.Miembro.Tel_Casa, TelTrabajo = o.Miembro.Tel_Trabajo, CelulaId = o.CelulaId, Celula = o.Celula.Descripcion, Genero = o.Miembro.Genero.Descripcion }).ToList <Modelos.Retornos.LideresDeCelulaPorRed>()); }
public List <RegistroBasico> ObtenerLiderazgoIndirectoPorMiembro(Miembro miembro) { ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); List <int> red = new List <int>(); foreach (RegistroBasico celula in ObtenerLiderazgoDirectoPorMiembro(miembro)) { red.AddRange(manejadorDeCelulas.ObtenerRedInferior(celula.Id)); } return((from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where red.Contains(o.CelulaId) && o.Borrado == false select new RegistroBasico { Id = o.CelulaId, Descripcion = o.Descripcion }).ToList <RegistroBasico>()); }
public List <UltimasAsistenciasPorCelula> ObtenerUltimasAsistenciasPorCelula(int celulaId) { List <UltimasAsistenciasPorCelula> asistencias = new List <UltimasAsistenciasPorCelula>(); ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); List <int> celulas = manejadorDeCelulas.ObtenerRedInferior(celulaId); celulas.Add(celulaId); //Agregamos la celula actual para incluir sus lideres ManejadorDeAsistenciasDeCelula manejadorDeAsistenciasDeCelula = new ManejadorDeAsistenciasDeCelula(); foreach (int celula in celulas) { Celula c = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where o.CelulaId == celula select o).SingleOrDefault(); asistencias.Add(new UltimasAsistenciasPorCelula { Id = c.CelulaId, Descripcion = c.Descripcion, Fecha = manejadorDeAsistenciasDeCelula.ObtenerFechaDeUltimaAsistencia(c.CelulaId) }); } return(asistencias); }
public Modelos.Retornos.InformacionGeneralPorRed ObtenerInformacionGeneralPorRed(int celulaId) { string cacheKey = MethodInfo.GetCurrentMethod().Name + "_" + celulaId; Modelos.Retornos.InformacionGeneralPorRed reporte = Cache.Instance.Obtener <Modelos.Retornos.InformacionGeneralPorRed>(cacheKey); if (reporte == null) { ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); List <int> red = new List <int>() { celulaId }; red.AddRange(manejadorDeCelulas.ObtenerRedInferior(celulaId)); // Queries IEnumerable <Miembro> miembros = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where (o.CelulaId == celulaId || red.Contains(o.CelulaId)) && o.Borrado == false select o); IEnumerable <CelulaLider> lideres = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaLider where o.Borrado == false && o.Miembro.Borrado == false && (red.Contains(o.CelulaId) && o.CelulaId != celulaId) select o); IEnumerable <Miembro> estacas = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro join p in SesionActual.Instance.getContexto <IglesiaEntities>().MiembroPaso on o.MiembroId equals p.MiembroId where (o.CelulaId == celulaId || red.Contains(o.CelulaId)) && p.PasoId == 9 && !lideres.Select(x => x.MiembroId).Contains(o.MiembroId) && o.Borrado == false && p.Borrado == false select o); IEnumerable <Miembro> folis = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro join p in SesionActual.Instance.getContexto <IglesiaEntities>().MiembroPaso on o.MiembroId equals p.MiembroId where (o.CelulaId == celulaId || red.Contains(o.CelulaId)) && p.PasoId == 6 && !lideres.Select(x => x.MiembroId).Contains(o.MiembroId) && !estacas.Select(x => x.MiembroId).Contains(o.MiembroId) && o.Borrado == false && p.Borrado == false select o); int cantidadDeMiembrosHombres = miembros.Where(o => o.GeneroId == 1).Count(); int cantidadDeMiembrosMujeres = miembros.Where(o => o.GeneroId == 2).Count(); int CantidadDeMiembrosQueAsistenIglesiaHombres = miembros.Where(o => o.GeneroId == 1 && o.AsisteIglesia == true).Count(); int CantidadDeMiembrosQueAsistenIglesiaMujeres = miembros.Where(o => o.GeneroId == 2 && o.AsisteIglesia == true).Count(); reporte = new Modelos.Retornos.InformacionGeneralPorRed(); reporte.CantidadDeCelulas = red.Count - 1; reporte.CantidadDeLideresDeCelula = lideres.Count(); reporte.CantidadDeEstacas = estacas.Count(); reporte.CantidadDeFolis = folis.Count(); reporte.CantidadDeMiembros = cantidadDeMiembrosHombres + cantidadDeMiembrosMujeres; reporte.CantidadDeMiembrosHombres = cantidadDeMiembrosHombres; reporte.CantidadDeMiembrosMujeres = cantidadDeMiembrosMujeres; reporte.CantidadDeMiembrosQueAsistenIglesia = CantidadDeMiembrosQueAsistenIglesiaHombres + CantidadDeMiembrosQueAsistenIglesiaMujeres; reporte.CantidadDeMiembrosQueAsistenIglesiaHombres = CantidadDeMiembrosQueAsistenIglesiaHombres; reporte.CantidadDeMiembrosQueAsistenIglesiaMujeres = CantidadDeMiembrosQueAsistenIglesiaMujeres; Cache.Instance.Guardar(cacheKey, reporte, 2); } return(reporte); }