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>()); }
/// <summary> /// Obtiene una cadena que tiene todas celulas "padres" a partir de la celula definida como parametro de entrada /// </summary> /// <param name="celula"></param> /// <param name="separador"></param> /// <returns></returns> public string ObtenerRedSuperior(Celula celula, string separador) { separador = string.Format(" {0} ", separador.Trim()); System.Text.StringBuilder rtn = new System.Text.StringBuilder(1024); ManejadorDeCelulas manejador = new ManejadorDeCelulas(); List <Celula> red = manejador.ObtenerRedSuperior(celula); foreach (Celula c in red) { rtn.AppendFormat("{0} [{1}]", c.Descripcion, c.CelulaId); if (c != red.Last()) { rtn.Append(separador); } } return(rtn.ToString()); }
public IEnumerable <object> Buscar(TipoDeObjeto tipoDeObjeto, string[] conceptosABuscar) { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); int usuarioId = SesionActual.Instance.UsuarioId; List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(usuarioId); List <int> idsCelulasSinLider = manejadorCelulas.ObtenerCelulasSinLideresComoCelulas().Select(o => o.CelulaId).ToList <int>(); switch (tipoDeObjeto) { case TipoDeObjeto.Celula: { return(Celula.Buscar(conceptosABuscar, idsCelulasPermitidas.Union(idsCelulasSinLider).ToList <int>()).Select(o => new { Id = o.CelulaId, Descripcion = o.Descripcion, RowColor = idsCelulasSinLider.Contains(o.CelulaId) ? "red" : string.Empty })); } case TipoDeObjeto.Miembro: { return(Miembro.Buscar(conceptosABuscar, idsCelulasPermitidas.ToList <int>()).Select(o => new { Id = o.MiembroId, Descripcion = o.Primer_Nombre + " " + o.Segundo_Nombre + " " + o.Apellido_Paterno + " " + o.Apellido_Materno + " (" + o.Email + ")" })); } case TipoDeObjeto.AlabanzaMiembro: { return(AlabanzaMiembro.Buscar(conceptosABuscar).Select(o => new { Id = o.Id, Descripcion = o.Miembro.Primer_Nombre + " " + o.Miembro.Segundo_Nombre + " " + o.Miembro.Apellido_Paterno + " " + o.Miembro.Apellido_Materno + " (" + o.Miembro.Email + ")" })); } default: { return(new List <EntityObject>()); } } }
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); }