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);
        }
        public void GenerarReporte()
        {
            try
            {
                Miembro miembro = ManejadorDeMiembros.ObtenerMiembroActual();

                ManejadorDeReportesDeAsistencias manejador = new ManejadorDeReportesDeAsistencias();
                DateTime     fechaInicial = DateTime.Now.GetFirstDateOfWeek().AddDays(-7);
                EmailMessage mensaje      = manejador.GenerarCorreoSemanalDeFaltaDeAsistenciasPorRed(fechaInicial, miembro, (ManejadorDeReportesDeAsistencias.TipoDeReporte)cboTipoDeReporteGenerado.ObtenerId(), string.Empty);

                if (mensaje != null)
                {
                    string        destinatario    = string.Empty;
                    List <string> destinatariosCC = new List <string>();
                    foreach (Recipient recipient in mensaje.Recipients)
                    {
                        if (recipient.Type == RecipientType.To)
                        {
                            destinatario = recipient.Email;
                        }
                        else
                        {
                            destinatariosCC.Add(recipient.Email);
                        }
                    }

                    pnlHtml.Html = "Para: " + destinatario + "<br/>CC: " + string.Join(",", destinatariosCC) + "<br/><hr/>" + ((BodyPart)mensaje.BodyParts.GetLastItem()).Body;
                }
                else
                {
                    pnlHtml.Html = "Todas las células han registrado sus asistencias correspondientes.";
                }
            }
            catch (ExcepcionAplicacion ex)
            {
                X.Msg.Alert(Generales.nickNameDeLaApp, ex.Message).Show();
            }
        }