public bool IniciarSesionClick()
        {
            int miembroSecundarioId = registroMiembro.ObtenerId();

            if (miembroSecundarioId > 0)
            {
                ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas();
                List <int>         celulasPermitidas  = manejadorDeCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId);

                Miembro miembroSecundario = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == miembroSecundarioId && o.Borrado == false select o).SingleOrDefault();
                if (miembroSecundario != null && celulasPermitidas.Contains(miembroSecundario.CelulaId))
                {
                    Miembro miembroActual = ManejadorDeMiembros.ObtenerMiembroActual();
                    log.InfoFormat("El usuario {0} [{1}] iniciara sesion como {2} [{3}]", miembroActual.Email, miembroActual.MiembroId, miembroSecundario.Email, miembroSecundario.MiembroId);

                    this.RestablecerCacheDeSesion();
                    ManejadorDeMiembros manejadorDeMiembros = new ManejadorDeMiembros();
                    manejadorDeMiembros.IniciarSesion(miembroSecundario.Email, string.Empty, true);

                    return(true);
                }
                else
                {
                    X.Msg.Alert(Generales.nickNameDeLaApp, "Miembro inexistente o no pertenece a la red").Show();
                }
            }
            else
            {
                X.Msg.Alert(Generales.nickNameDeLaApp, "Es necesario establecer un miembro").Show();
            }
            return(false);
        }
        void ICatalogo.Buscar()
        {
            ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas();

            List <int> idsDiasDeLaSemana    = filtroDiaDeLaSemana.ObtenerIds();
            List <int> idsHorasDelDia       = filtroHoraDelDia.ObtenerIds();
            List <int> idCategorias         = filtroCategoria.ObtenerIds();
            int        idMunicipio          = filtroMunicipio.ObtenerId();
            List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId);
            List <int> idsCelulasSinLider   = manejadorCelulas.ObtenerCelulasSinLideresComoCelulas().Select(o => o.CelulaId).ToList <int>();

            StoreResultados.Cargar((
                                       from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula
                                       where
                                       ((o.CelulaId == (filtroId.Number > 0 ? filtroId.Number : o.CelulaId)) &&
                                        ((o.Descripcion.Contains(filtroDescripcion.Text)) || (o.Descripcion == null)) &&
                                        (idsDiasDeLaSemana.Contains(o.DiaSemanaId) || (idsDiasDeLaSemana.Count == 0)) &&
                                        (idsHorasDelDia.Contains(o.HoraDiaId) || (idsHorasDelDia.Count == 0)) &&
                                        (idCategorias.Contains(o.CategoriaId) || (idCategorias.Count == 0)) &&
                                        (o.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.UbicacionMunicipioId)) &&
                                        ((o.Colonia.Contains(filtroColonia.Text)) || (o.Colonia == null)) &&
                                        ((o.Direccion.Contains(filtroDireccion.Text)) || (o.Direccion == null)) &&
                                        (o.Borrado == false) &&                                                                 //Registros NO borrados
                                        (idsCelulasPermitidas.Contains(o.CelulaId) || idsCelulasSinLider.Contains(o.CelulaId))) //Dentro de las celulas permitidas para el usuario actual... o aquellas celulas sin lider asignado (para poderlas BORRAR)
                                       orderby
                                       o.Descripcion
                                       select new {
                Id = o.CelulaId,
                Descripcion = o.Descripcion,
                DiaSemanaDesc = o.DiaSemana.Descripcion,
                HoraDiaDesc = o.HoraDia.Descripcion,
                Municipio = o.UbicacionMunicipio.Descripcion,
                Colonia = o.Colonia,
                Direccion = o.Direccion,
                Categoria = o.CelulaCategoria.Descripcion,
                Coordenadas = o.Coordenadas,
                RowColor = idsCelulasSinLider.Contains(o.CelulaId) ? "red" : string.Empty
            }));
        }
예제 #3
0
        protected void cmdBuscarConcepto_Click(object sender, DirectEventArgs e)
        {
            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>();

            //Obtemenos todos los conceptos a buscar (separados por espacios)
            string[] conceptosABuscar = registroConceptoABuscar.Text.Trim().Split(' ');

            //Guarda los resultados obtenidos de las busquedas
            IQueryable <object> resultados = null;

            switch (tipoDeBusqueda)
            {
            case ManejadorDeBusquedas.TipoDeObjeto.Celula:
            {
                var busqueda = Celula.BuscarV1(conceptosABuscar, idsCelulasPermitidas.Union(idsCelulasSinLider).ToList <int>());         //Dentro de las celulas permitidas para el usuario actual... o aquellas celulas sin lider asignado (para poderlas ASGINAR)
                resultados = ((
                                  from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula.Where(busqueda)
                                  orderby
                                  o.Descripcion
                                  select new
                    {
                        Id = o.CelulaId,
                        Descripcion = o.Descripcion,
                        RowColor = idsCelulasSinLider.Contains(o.CelulaId) ? "red" : string.Empty
                    })).AsExpandable();
                break;
            }

            case ManejadorDeBusquedas.TipoDeObjeto.Miembro:
            {
                var busqueda = Miembro.BuscarV1(conceptosABuscar, idsCelulasPermitidas.ToList <int>());     //Dentro de las celulas permitidas para el usuario actual... o el mismo usuario actual
                resultados = ((
                                  from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro.Where(busqueda)
                                  orderby
                                  o.Primer_Nombre, o.Segundo_Nombre, o.Apellido_Paterno, o.Apellido_Materno
                                  select new
                    {
                        Id = o.MiembroId,
                        Descripcion = o.Primer_Nombre + " " + o.Segundo_Nombre + " " + o.Apellido_Paterno + " " + o.Apellido_Materno + " (" + o.Email + ")"
                    })).AsExpandable();
                break;
            }
            }

            if (resultados != null)
            {
                int numeroDeResultadosMax = 75; //Es el numero maximo de resultados a regresar al cliente...
                int numeroDeResultados    = resultados.Count();
                if (numeroDeResultados > numeroDeResultadosMax)
                {
                    X.Msg.Alert(Generales.nickNameDeLaApp, string.Format(Resources.Literales.LimiteDeResultadosExcedido, numeroDeResultados, numeroDeResultadosMax)).Show();
                    numeroDeResultados = numeroDeResultadosMax;
                }
                StoreObjetosEncontrados.Cargar(resultados.Take(numeroDeResultadosMax));
                registroNumeroDeResultados.Text = string.Format("{0} Resultados", numeroDeResultados);
            }

            //Ponemos el foco el el grid...
            GridDeListadoDeObjetos.Focus();
        }
예제 #4
0
        void ICatalogo.Buscar()
        {
            List <int> idsGenero            = filtroGenero.ObtenerIds();
            int?       invitadoPorMiembroId = filtroInvitadoPorMiembro.ObtenerId(true);
            List <int> idsCulto             = filtroCulto.ObtenerIds();
            List <int> idsRazonDeVisita     = filtroRazonDeVisita.ObtenerIds();
            List <int> idsRazonParaCerrar   = filtroEstatus.ObtenerIds();
            List <int> idsCategorias        = filtroCategoria.ObtenerIds();
            int        idMunicipio          = filtroMunicipio.ObtenerId();
            List <int> idsEstadoCivil       = filtroEstadoCivil.ObtenerIds();
            int?       asignadaACelulaId    = filtroCelulaAsignada.ObtenerId(true);
            int?       asignadaAMiembroId   = filtroMiembroAsignada.ObtenerId(true);
            bool       verTodasLasBoletasDeConsolidacion = SesionActual.Instance.ValidarPermisoEspecial((int)PermisosEspeciales.VerTodasLasBoletasDeConsolidacion, false);
            List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId);

            var query = (
                from o in SesionActual.Instance.getContexto <IglesiaEntities>().ConsolidacionBoleta
                where
                (o.Id == (filtroId.Number > 0 ? filtroId.Number : o.Id)) &&
                (o.Email.Contains(filtroEmail.Text)) &&
                (o.PrimerNombre.Contains(filtroPrimerNombre.Text)) &&
                (o.SegundoNombre.Contains(filtroSegundoNombre.Text)) &&
                (o.ApellidoPaterno.Contains(filtroApellidoPaterno.Text)) &&
                (o.ApellidoMaterno.Contains(filtroApellidoMaterno.Text)) &&
                (idsGenero.Contains(o.GeneroId) || (idsGenero.Count == 0)) &&
                ((o.InvitadoPorMiembroId == invitadoPorMiembroId) || (invitadoPorMiembroId == null)) &&
                (idsCulto.Contains(o.CultoId) || (idsCulto.Count == 0)) &&
                (idsRazonDeVisita.Contains(o.BoletaRazonVisitaId) || (idsRazonDeVisita.Count == 0)) &&
                (idsRazonParaCerrar.Contains(o.BoletaEstatusId.Value) || (idsRazonParaCerrar.Count == 0)) &&
                (idsCategorias.Contains(o.CategoriaBoletaId) || (idsCategorias.Count == 0)) &&
                (o.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.UbicacionMunicipioId)) &&
                ((o.Colonia.Contains(filtroColonia.Text)) || (o.Colonia == null)) &&
                ((o.Direccion.Contains(filtroDireccion.Text)) || (o.Direccion == null)) &&
                (idsEstadoCivil.Contains(o.EstadoCivilId) || (idsEstadoCivil.Count == 0)) &&
                ((o.AsignadaACelulaId == asignadaACelulaId) || (asignadaACelulaId == null)) &&
                ((o.AsignadaAMiembroId == asignadaAMiembroId) || (asignadaAMiembroId == null)) &&
                (((o.TelefonoCasa.Contains(filtroTel.Text)) || (o.TelefonoCasa == null)) ||
                 ((o.TelefonoMovil.Contains(filtroTel.Text)) || (o.TelefonoMovil == null)) ||
                 ((o.TelefonoTrabajo.Contains(filtroTel.Text)) || (o.TelefonoTrabajo == null)) &&
                 ((o.Observaciones.Contains(filtroObservaciones.Text)) || (o.Observaciones == null))) &&
                ((verTodasLasBoletasDeConsolidacion == true) || (idsCelulasPermitidas.Contains(o.AsignadaACelulaId.Value) || o.AsignadaAMiembroId.Value == SesionActual.Instance.UsuarioId)) &&
                (o.Borrado == false)     //Registros NO borrados
                orderby o.PrimerNombre, o.SegundoNombre, o.ApellidoPaterno, o.ApellidoMaterno
                select new
            {
                Boleta = o
            });


            // Agregamos los filtros complejos

            if (filtroFechaDeCulto.SelectedValue != null)
            {
                query = query.Where(o => o.Boleta.FechaDeCulto == filtroFechaDeCulto.SelectedDate);
            }

            if (filtroEdad.Value != null)
            {
                int edad = Convert.ToInt32(filtroEdad.Number);
                query = query.Where(o => o.Boleta.Edad == edad);
            }

            // Executamos el query, y luego modificamos ciertos campos
            StoreResultados.Cargar(query.AsEnumerable().Select(o => new
            {
                Id                   = o.Boleta.Id,
                Email                = o.Boleta.Email,
                PrimerNombre         = o.Boleta.PrimerNombre,
                SegundoNombre        = o.Boleta.SegundoNombre,
                ApellidoPaterno      = o.Boleta.ApellidoPaterno,
                ApellidoMaterno      = o.Boleta.ApellidoMaterno,
                Genero               = o.Boleta.Genero.Descripcion,
                Estatus              = ConsolidacionBoleta.Estatus.Lista().Where(x => x.Key == o.Boleta.BoletaEstatusId).FirstOrDefault().Value,
                InvitadoPorMiembroId = o.Boleta.InvitadoPorMiembroId,
                Culto                = o.Boleta.Culto.Descripcion,
                FechaDeCulto         = o.Boleta.FechaDeCulto,
                RazonDeVisita        = o.Boleta.ConsolidacionBoletaRazonVisita.Descripcion,
                Municipio            = o.Boleta.UbicacionMunicipio.Descripcion,
                Colonia              = o.Boleta.Colonia,
                Direccion            = o.Boleta.Direccion,
                Nacimiento           = o.Boleta.FechaDeNacimiento,
                Edad                 = o.Boleta.Edad,
                EstadoCivil          = o.Boleta.EstadoCivil.Descripcion,
                AsignadaACelula      = o.Boleta.AsignadaACelulaId,
                AsignadaAMiembro     = o.Boleta.AsignadaAMiembroId,
                TelCasa              = o.Boleta.TelefonoCasa,
                TelMovil             = o.Boleta.TelefonoMovil,
                TelTrabajo           = o.Boleta.TelefonoTrabajo,
                Observaciones        = o.Boleta.Observaciones,
                Categoria            = o.Boleta.ConsolidacionBoletaCategoria.Descripcion
            }));

            registroNumeroDeBoletas.Value = string.Format("Total de boletas: {0}", query.Count());
        }
        public void BuscarMiembros()
        {
            ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas();
            int usuarioId = SesionActual.Instance.UsuarioId;

            List <int> idsCelulas                      = filtroCelula.ObtenerIds();
            List <int> idGeneros                       = filtroGenero.ObtenerIds();
            List <int> idsEstadosCiviles               = filtroEstadoCivil.ObtenerIds();
            int        idMunicipio                     = filtroMunicipio.ObtenerId();
            List <int> idsCelulasPermitidas            = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(usuarioId);
            List <int> idsCelulasSinLider              = manejadorCelulas.ObtenerCelulasSinLideresComoIds();
            List <int> idsCelulasEliminadasConMiembros = manejadorCelulas.ObtenerCelulasEliminadasConMiembrosComoIds();
            bool       registrosBorrados               = filtroBorrado.Checked;
            bool       registrosSinCelula              = filtroSinCelula.Checked;
            int?       conyugeId                       = filtroConyuge.ObtenerId(true);

            //Guarda los resultados obtenidos de las busquedas
            IQueryable <object> resultados = null;

            switch (tipoDeMiembro)
            {
            case TipoDeMiembroABuscar.Miembro:
            {
                resultados = (
                    from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro
                    where
                    ((o.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.MiembroId)) &&
                     ((o.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Primer_Nombre == null)) &&
                     ((o.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Segundo_Nombre == null)) &&
                     ((o.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Apellido_Paterno == null)) &&
                     ((o.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Apellido_Materno == null)) &&
                     ((o.Email.Contains(filtroEmail.Text)) || (o.Email == null)) &&
                     (idsCelulas.Contains(o.CelulaId) || (idsCelulas.Count == 0)) &&
                     (idGeneros.Contains(o.GeneroId) || (idGeneros.Count == 0)) &&
                     (idsEstadosCiviles.Contains(o.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) &&
                     (o.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.UbicacionMunicipioId)) &&
                     ((o.Colonia.Contains(filtroColonia.Text)) || (o.Colonia == null)) &&
                     ((o.Direccion.Contains(filtroDireccion.Text)) || (o.Direccion == null)) &&
                     (((o.Tel_Casa.Contains(filtroTel.Text)) || (o.Tel_Casa == null)) ||
                      ((o.Tel_Movil.Contains(filtroTel.Text)) || (o.Tel_Movil == null)) ||
                      ((o.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Tel_Trabajo == null))) &&
                     (o.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Fecha_Nacimiento)) &&
                     ((o.ConyugeId == conyugeId) || (conyugeId == null)) &&
                     (o.Borrado == registrosBorrados) &&
                     (((idsCelulasPermitidas.Contains(o.CelulaId)) && !registrosSinCelula) ||                                                        //Dentro de las celulas permitidas para el usuario actual
                      ((idsCelulasSinLider.Contains(o.CelulaId)) || (idsCelulasEliminadasConMiembros.Contains(o.CelulaId)) && registrosSinCelula) || //Dentro de los usuarios cuya celula no tiene lider
                      ((mostrarUsuarioActual) && (o.MiembroId == usuarioId))))                                                                       //El mismo usuario actual...
                    orderby o.Primer_Nombre ascending, o.Apellido_Paterno ascending
                    select new
                    {
                        GUID = o.MiembroId,
                        Id = o.MiembroId,
                        PrimerNombre = o.Primer_Nombre,
                        SegundoNombre = o.Segundo_Nombre,
                        ApellidoPaterno = o.Apellido_Paterno,
                        ApellidoMaterno = o.Apellido_Materno,
                        Email = o.Email,
                        Celula = (idsCelulasEliminadasConMiembros.Contains(o.CelulaId) ? string.Empty : o.Celula.Descripcion),
                        EstadoCivil = o.EstadoCivil.Descripcion,
                        Municipio = o.UbicacionMunicipio.Descripcion,
                        Colonia = o.Colonia,
                        TelCasa = o.Tel_Casa,
                        TelMovil = o.Tel_Movil,
                        TelTrabajo = o.Tel_Trabajo,
                        Nacimiento = o.Fecha_Nacimiento,
                        AsisteIglesia = o.AsisteIglesia,
                        Genero = o.Genero.Descripcion,
                        RowColor = (idsCelulasSinLider.Contains(o.CelulaId) || idsCelulasEliminadasConMiembros.Contains(o.CelulaId)) ? "red" : string.Empty
                    });
                break;
            }

            case TipoDeMiembroABuscar.ServidorCoordinador:
            {
                resultados = (
                    from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCoordinador
                    where
                    ((o.Miembro.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.Miembro.MiembroId)) &&
                     ((o.Miembro.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Miembro.Primer_Nombre == null)) &&
                     ((o.Miembro.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Miembro.Segundo_Nombre == null)) &&
                     ((o.Miembro.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Miembro.Apellido_Paterno == null)) &&
                     ((o.Miembro.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Miembro.Apellido_Materno == null)) &&
                     ((o.Miembro.Email.Contains(filtroEmail.Text)) || (o.Miembro.Email == null)) &&
                     (idsCelulas.Contains(o.Miembro.CelulaId) || (idsCelulas.Count == 0)) &&
                     (idGeneros.Contains(o.Miembro.GeneroId) || (idGeneros.Count == 0)) &&
                     (idsEstadosCiviles.Contains(o.Miembro.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) &&
                     (o.Miembro.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.Miembro.UbicacionMunicipioId)) &&
                     ((o.Miembro.Colonia.Contains(filtroColonia.Text)) || (o.Miembro.Colonia == null)) &&
                     ((o.Miembro.Direccion.Contains(filtroDireccion.Text)) || (o.Miembro.Direccion == null)) &&
                     (((o.Miembro.Tel_Casa.Contains(filtroTel.Text)) || (o.Miembro.Tel_Casa == null)) ||
                      ((o.Miembro.Tel_Movil.Contains(filtroTel.Text)) || (o.Miembro.Tel_Movil == null)) ||
                      ((o.Miembro.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Miembro.Tel_Trabajo == null))) &&
                     (o.Miembro.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Miembro.Fecha_Nacimiento)) &&
                     (o.Miembro.Borrado == registrosBorrados) && //Registros NO borrados
                     (o.Borrado == false))                       //Registros NO borrados
                    orderby o.Miembro.Primer_Nombre ascending, o.Miembro.Apellido_Paterno ascending
                    select new
                    {
                        GUID = o.Id,
                        Id = o.Miembro.MiembroId,
                        PrimerNombre = o.Miembro.Primer_Nombre,
                        SegundoNombre = o.Miembro.Segundo_Nombre,
                        ApellidoPaterno = o.Miembro.Apellido_Paterno,
                        ApellidoMaterno = o.Miembro.Apellido_Materno,
                        Email = o.Miembro.Email,
                        Celula = o.Miembro.Celula.Descripcion,
                        EstadoCivil = o.Miembro.EstadoCivil.Descripcion,
                        Municipio = o.Miembro.UbicacionMunicipio.Descripcion,
                        Colonia = o.Miembro.Colonia,
                        TelCasa = o.Miembro.Tel_Casa,
                        TelMovil = o.Miembro.Tel_Movil,
                        TelTrabajo = o.Miembro.Tel_Trabajo,
                        Nacimiento = o.Miembro.Fecha_Nacimiento,
                        AsisteIglesia = o.Miembro.AsisteIglesia,
                        Genero = o.Miembro.Genero.Descripcion
                    });
                break;
            }

            case TipoDeMiembroABuscar.ServidorCapitan:
            {
                resultados = (
                    from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan
                    where
                    ((o.Miembro.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.Miembro.MiembroId)) &&
                     ((o.Miembro.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Miembro.Primer_Nombre == null)) &&
                     ((o.Miembro.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Miembro.Segundo_Nombre == null)) &&
                     ((o.Miembro.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Miembro.Apellido_Paterno == null)) &&
                     ((o.Miembro.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Miembro.Apellido_Materno == null)) &&
                     ((o.Miembro.Email.Contains(filtroEmail.Text)) || (o.Miembro.Email == null)) &&
                     (idsCelulas.Contains(o.Miembro.CelulaId) || (idsCelulas.Count == 0)) &&
                     (idGeneros.Contains(o.Miembro.GeneroId) || (idGeneros.Count == 0)) &&
                     (idsEstadosCiviles.Contains(o.Miembro.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) &&
                     (o.Miembro.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.Miembro.UbicacionMunicipioId)) &&
                     ((o.Miembro.Colonia.Contains(filtroColonia.Text)) || (o.Miembro.Colonia == null)) &&
                     ((o.Miembro.Direccion.Contains(filtroDireccion.Text)) || (o.Miembro.Direccion == null)) &&
                     (((o.Miembro.Tel_Casa.Contains(filtroTel.Text)) || (o.Miembro.Tel_Casa == null)) ||
                      ((o.Miembro.Tel_Movil.Contains(filtroTel.Text)) || (o.Miembro.Tel_Movil == null)) ||
                      ((o.Miembro.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Miembro.Tel_Trabajo == null))) &&
                     (o.Miembro.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Miembro.Fecha_Nacimiento)) &&
                     (o.Miembro.Borrado == registrosBorrados) && //Registros NO borrados
                     (o.Borrado == false))                       //Registros NO borrados
                    orderby o.Miembro.Primer_Nombre ascending, o.Miembro.Apellido_Paterno ascending
                    select new
                    {
                        GUID = o.Id,
                        Id = o.Miembro.MiembroId,
                        PrimerNombre = o.Miembro.Primer_Nombre,
                        SegundoNombre = o.Miembro.Segundo_Nombre,
                        ApellidoPaterno = o.Miembro.Apellido_Paterno,
                        ApellidoMaterno = o.Miembro.Apellido_Materno,
                        Email = o.Miembro.Email,
                        Celula = o.Miembro.Celula.Descripcion,
                        EstadoCivil = o.Miembro.EstadoCivil.Descripcion,
                        Municipio = o.Miembro.UbicacionMunicipio.Descripcion,
                        Colonia = o.Miembro.Colonia,
                        TelCasa = o.Miembro.Tel_Casa,
                        TelMovil = o.Miembro.Tel_Movil,
                        TelTrabajo = o.Miembro.Tel_Trabajo,
                        Nacimiento = o.Miembro.Fecha_Nacimiento,
                        AsisteIglesia = o.Miembro.AsisteIglesia,
                        Genero = o.Miembro.Genero.Descripcion
                    });
                break;
            }

            case TipoDeMiembroABuscar.AlabanzaMiembro:
            {
                resultados = (
                    from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaMiembro
                    where
                    ((o.Miembro.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.Miembro.MiembroId)) &&
                     ((o.Miembro.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Miembro.Primer_Nombre == null)) &&
                     ((o.Miembro.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Miembro.Segundo_Nombre == null)) &&
                     ((o.Miembro.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Miembro.Apellido_Paterno == null)) &&
                     ((o.Miembro.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Miembro.Apellido_Materno == null)) &&
                     ((o.Miembro.Email.Contains(filtroEmail.Text)) || (o.Miembro.Email == null)) &&
                     (idsCelulas.Contains(o.Miembro.CelulaId) || (idsCelulas.Count == 0)) &&
                     (idGeneros.Contains(o.Miembro.GeneroId) || (idGeneros.Count == 0)) &&
                     (idsEstadosCiviles.Contains(o.Miembro.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) &&
                     (o.Miembro.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.Miembro.UbicacionMunicipioId)) &&
                     ((o.Miembro.Colonia.Contains(filtroColonia.Text)) || (o.Miembro.Colonia == null)) &&
                     ((o.Miembro.Direccion.Contains(filtroDireccion.Text)) || (o.Miembro.Direccion == null)) &&
                     (((o.Miembro.Tel_Casa.Contains(filtroTel.Text)) || (o.Miembro.Tel_Casa == null)) ||
                      ((o.Miembro.Tel_Movil.Contains(filtroTel.Text)) || (o.Miembro.Tel_Movil == null)) ||
                      ((o.Miembro.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Miembro.Tel_Trabajo == null))) &&
                     (o.Miembro.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Miembro.Fecha_Nacimiento)) &&
                     (o.Miembro.Borrado == registrosBorrados) && //Registros NO borrados
                     (o.Borrado == false))                       //Registros NO borrados
                    orderby o.Miembro.Primer_Nombre ascending, o.Miembro.Apellido_Paterno ascending
                    select new
                    {
                        GUID = o.Id,
                        Id = o.Miembro.MiembroId,
                        PrimerNombre = o.Miembro.Primer_Nombre,
                        SegundoNombre = o.Miembro.Segundo_Nombre,
                        ApellidoPaterno = o.Miembro.Apellido_Paterno,
                        ApellidoMaterno = o.Miembro.Apellido_Materno,
                        Email = o.Miembro.Email,
                        Celula = o.Miembro.Celula.Descripcion,
                        EstadoCivil = o.Miembro.EstadoCivil.Descripcion,
                        Municipio = o.Miembro.UbicacionMunicipio.Descripcion,
                        Colonia = o.Miembro.Colonia,
                        TelCasa = o.Miembro.Tel_Casa,
                        TelMovil = o.Miembro.Tel_Movil,
                        TelTrabajo = o.Miembro.Tel_Trabajo,
                        Nacimiento = o.Miembro.Fecha_Nacimiento,
                        AsisteIglesia = o.Miembro.AsisteIglesia,
                        Genero = o.Miembro.Genero.Descripcion
                    });
                break;
            }
            }

            if (resultados != null)
            {
                //int numeroDeResultadosMax = 75; //Es el numero maximo de resultados a regresar al cliente...
                //int numeroDeResultados = resultados.Count();
                //if (numeroDeResultados > numeroDeResultadosMax) { X.Msg.Alert(Generales.nickNameDeLaApp, string.Format(Resources.Literales.LimiteDeResultadosExcedido, numeroDeResultados, numeroDeResultadosMax)).Show(); }
                //StoreResultados.Cargar(resultados.Take(numeroDeResultadosMax));
                StoreResultados.Cargar(resultados);
            }
        }
        private void mostrarAnunciosYAlertas()
        {
            ManejadorDeCelulas manejadorCelulas  = new ManejadorDeCelulas();
            int             miembroId            = SesionActual.Instance.UsuarioId;
            List <int>      idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId);
            DateTime        fechaInicioDeSemana  = DateTime.Now.GetFirstDateOfWeek();
            DateTime        fechaFinDeSemana     = DateTime.Now.GetLastDateOfWeek();
            IglesiaEntities contexto             = SesionActual.Instance.getContexto <IglesiaEntities>();

            // Obtenemos las boletas de consolidacion sin reportes en esta semana
            int numDeBoletasSinReporteSemanal = (from o in contexto.ConsolidacionBoleta
                                                 where
                                                 o.Borrado == false &&
                                                 o.BoletaEstatusId > 100 &&
                                                 o.AsignadaACelulaId != null &&
                                                 idsCelulasPermitidas.Contains(o.AsignadaACelulaId.Value) &&
                                                 !contexto.ConsolidacionBoletaReporte.Any(t =>
                                                                                          t.Borrado == false &&
                                                                                          t.ConsolidacionBoletaId == o.Id &&
                                                                                          t.Creacion >= fechaInicioDeSemana &&
                                                                                          t.Creacion <= fechaFinDeSemana)
                                                 select o).Count();

            if (numDeBoletasSinReporteSemanal > 0)
            {
                generarAlerta(string.Format("Tienes {0} boleta(s) de consolidación sin reportar esta semana!", numDeBoletasSinReporteSemanal));
            }

            // Obtenemos las celulas directas que no tienen asistencia registrada esta semana
            int numDeCelulasSinAsistenciaSemanal = (from o in contexto.Celula
                                                    where
                                                    o.Borrado == false &&
                                                    contexto.CelulaLider.Any(t =>
                                                                             t.Borrado == false &&
                                                                             t.CelulaId == o.CelulaId &&
                                                                             t.MiembroId == miembroId
                                                                             ) &&
                                                    !contexto.CelulaMiembroAsistencia.Any(t =>
                                                                                          t.CelulaId == o.CelulaId &&
                                                                                          t.Dia >= fechaInicioDeSemana.Day &&
                                                                                          t.Mes >= fechaInicioDeSemana.Month &&
                                                                                          t.Anio >= fechaInicioDeSemana.Year &&
                                                                                          t.Dia <= fechaFinDeSemana.Day &&
                                                                                          t.Mes <= fechaFinDeSemana.Month &&
                                                                                          t.Anio <= fechaFinDeSemana.Year
                                                                                          ) &&
                                                    !contexto.CelulaCancelacionAsistencia.Any(t =>
                                                                                              t.CelulaId == o.CelulaId &&
                                                                                              t.Dia >= fechaInicioDeSemana.Day &&
                                                                                              t.Mes >= fechaInicioDeSemana.Month &&
                                                                                              t.Anio >= fechaInicioDeSemana.Year &&
                                                                                              t.Dia <= fechaFinDeSemana.Day &&
                                                                                              t.Mes <= fechaFinDeSemana.Month &&
                                                                                              t.Anio <= fechaFinDeSemana.Year
                                                                                              )
                                                    select o).Count();

            if (numDeCelulasSinAsistenciaSemanal > 0)
            {
                generarAlerta("Esta semana no has registrado asistencia en todas tus células!");
            }
        }