public RegistroBasico ObtenerCapitan(int usuarioId)
        {
            ServidorCapitan entidad = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan where o.MiembroId == usuarioId select o).FirstOrDefault();

            if (entidad != null)
            {
                RegistroBasico rtn = new RegistroBasico();;
                rtn.Id          = entidad.Id;
                rtn.Descripcion = entidad.Miembro.NombreCompleto;
                return(rtn);
            }
            else
            {
                return(new RegistroBasico());
            }
        }
        public void EstablecerId(int id)
        {
            this.Limpiar();

            if (id > 0)
            {
                RegistroBasico rtn = null;
                switch (_tipoDeObjeto)
                {
                case ManejadorDeBusquedas.TipoDeObjeto.Celula:
                    rtn = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula
                           where o.CelulaId == id
                           select new RegistroBasico
                    {
                        Id = o.CelulaId,
                        Descripcion = o.Descripcion
                    }).FirstOrDefault();
                    break;

                case ManejadorDeBusquedas.TipoDeObjeto.Miembro:
                    rtn = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro
                           where o.MiembroId == id
                           select new RegistroBasico
                    {
                        Id = o.MiembroId,
                        Descripcion = o.Primer_Nombre + " " + o.Segundo_Nombre + " " + o.Apellido_Paterno + " " + o.Apellido_Materno + " (" + o.Email + ")"
                    }).FirstOrDefault();
                    break;

                case ManejadorDeBusquedas.TipoDeObjeto.AlabanzaMiembro:
                    rtn = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaMiembro
                           where o.Id == id
                           select new RegistroBasico
                    {
                        Id = o.Id,
                        Descripcion = o.Miembro.Primer_Nombre + " " + o.Miembro.Segundo_Nombre + " " + o.Miembro.Apellido_Paterno + " " + o.Miembro.Apellido_Materno + " (" + o.Miembro.Email + ")"
                    }).FirstOrDefault();
                    break;
                }

                StoreObjetoSeleccionado.Cargar(new[] { rtn });
                objetoSeleccionado.Value = id;
            }
        }
        public ActionResult Index()
        {
            ManejadorDeCelulas             manejadorDeCelulas     = new ManejadorDeCelulas();
            ManejadorDeAsistenciasDeCelula manejadorDeAsistencias = new ManejadorDeAsistenciasDeCelula();

            List <RegistroBasico> celulas = manejadorDeCelulas.ObtenerCelulasPermitidasPorMiembro(SesionActual.Instance.UsuarioId);

            Celula         celulaPrincipal       = manejadorDeCelulas.ObtenerCelulaQueMiembroEsLider(SesionActual.Instance.UsuarioId);
            RegistroBasico celulaPreseleccionada = new RegistroBasico()
            {
                Id          = celulaPrincipal.CelulaId,
                Descripcion = celulaPrincipal.Descripcion
            };

            DateTime fechaPreseleccionada = manejadorDeAsistencias.ObtenerFechaDeSiguienteAsistencia(celulaPreseleccionada.Id);

            Core.Modelos.Retornos.AsistenciaDeCelulaPorMiembroSumarizada asistenciaPreseleccionada = manejadorDeAsistencias.ObtenerAsistencia(celulaPreseleccionada.Id, fechaPreseleccionada);

            List <RegistroBasico> dias = new List <RegistroBasico>();

            for (int i = 1; i <= 31; i++)
            {
                string descripcion;
                try
                {
                    DateTime d = new DateTime(fechaPreseleccionada.Year, fechaPreseleccionada.Month, i);
                    descripcion = i.ToString().PadLeft(2, '0') + " - " + CultureInfo.CurrentCulture.TextInfo.ToTitleCase(CultureInfo.CurrentUICulture.DateTimeFormat.DayNames[(int)(new DateTime(fechaPreseleccionada.Year, fechaPreseleccionada.Month, i)).DayOfWeek]);
                }
                catch (Exception)
                {
                    descripcion = i.ToString();
                }

                RegistroBasico dia = new RegistroBasico();
                dia.Id          = i;
                dia.Descripcion = descripcion;
                dias.Add(dia);
            }

            List <RegistroBasico> meses = new List <RegistroBasico>();

            for (int i = 1; i < 13; i++)
            {
                RegistroBasico mes = new RegistroBasico();
                mes.Id          = i;
                mes.Descripcion = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames[i - 1]);
                meses.Add(mes);
            }

            List <RegistroBasico> anios = new List <RegistroBasico>();

            for (int i = 2011; i <= 2015; i++)
            {
                RegistroBasico anio = new RegistroBasico();
                anio.Id          = i;
                anio.Descripcion = i.ToString();
                anios.Add(anio);
            }

            ViewBag.CelulasPermitidas = new SelectList(celulas, "Id", "Descripcion", celulaPreseleccionada.Id);
            ViewBag.Dias              = new SelectList(dias, "Id", "Descripcion", fechaPreseleccionada.Day);
            ViewBag.Meses             = new SelectList(meses, "Id", "Descripcion", fechaPreseleccionada.Month);
            ViewBag.Anios             = new SelectList(anios, "Id", "Descripcion", fechaPreseleccionada.Year);
            ViewBag.NumeroDeInvitados = 0;
            ViewBag.Asistencia        = this.RenderPartialView("_Asistencia", asistenciaPreseleccionada.Asistencias);

            return(View());
        }