public ActionResult Mensalidade(int?CalendarioID, int?IntegranteID)
        {
            try
            {
                List <Calendario> calendarios = CalendarioBll.ListarCalendarios().ToList();
                List <Integrante> integrantes = IntegranteBll.RetornarIntegrantesAtivos().ToList();

                ViewBag.Calendarios = calendarios;
                ViewBag.Integrantes = integrantes;
                ViewBag.Integrantes = integrantes;

                IList <MensalidadeIntegrante> mensalidades = new List <MensalidadeIntegrante>();

                if (calendarios.Count > 0 && IntegranteID > 0)
                {
                    mensalidades = MensalidadeIntegranteBll.RetornarMensalidadesSeremBaixadas(IntegranteID, CalendarioID).ToList();
                }

                return(View(mensalidades));
            }
            catch (Exception exception)
            {
                LogBll.GravarErro(exception, this.User.Identity.Name);
                return(View().ComMensagem(Resources.Geral.ContateAdministrador, TipoMensagem.Erro));
            }
        }
        public ActionResult Integrante([Bind(Include = "ID,Nome,DataNascimento,Telefone,Email,Ativo,Senha")] Integrante integrante)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    IntegranteBll integranteBll = new IntegranteBll();

                    if (integrante.ID > 0)
                    {
                        if (IntegranteBll.VericarEmailExistente(integrante, TipoOperacao.Update))
                        {
                            return(View().ComMensagem(Resources.Integrantes.IntegranteExistente, TipoMensagem.Aviso));
                        }
                        else
                        {
                            integranteBll.Atualizar(integrante);

                            MensalidadeIntegranteBll mensalidadeIntegranteBll = new MensalidadeIntegranteBll();
                            mensalidadeIntegranteBll.CriarMensalidadesIntegrante(integrante);

                            LogBll.GravarInformacao(string.Format(Resources.Integrantes.AtualizacaoLog, integrante.ID), "", User.Identity.Name);
                            return(RedirectToAction("Index").ComMensagem(Resources.Integrantes.IntegranteSalvo, TipoMensagem.Sucesso));
                        }
                    }
                    else
                    {
                        if (IntegranteBll.VericarEmailExistente(integrante, TipoOperacao.Create))
                        {
                            return(View().ComMensagem(Resources.Integrantes.IntegranteExistente, TipoMensagem.Aviso));
                        }
                        else
                        {
                            integranteBll.Criar(integrante);
                            LogBll.GravarInformacao(string.Format(Resources.Calendario.CriacaoLog, integrante.ID), "", User.Identity.Name);

                            MensalidadeIntegranteBll mensalidadeIntegranteBll = new MensalidadeIntegranteBll();
                            mensalidadeIntegranteBll.CriarMensalidadesIntegrante(integrante);

                            return(RedirectToAction("Index").ComMensagem(Resources.Integrantes.IntegranteSalvo, TipoMensagem.Sucesso));
                        }
                    }
                }

                return(View(integrante));
            }
            catch (Exception exception)
            {
                LogBll.GravarErro(exception, User.Identity.Name);
                return(RedirectToAction("Index").ComMensagem(Resources.Geral.ContateAdministrador, TipoMensagem.Erro));
            }
        }
        public ActionResult Calendario([Bind(Include = "ID,Ano,Janeiro,Fevereiro,Marco,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro,ValorMensalidade,ValorAnuidade,DataVencimentoAnuidade")] Calendario calendario)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    CalendarioBll calendarioBll = new CalendarioBll();

                    if (calendario.ID > 0)
                    {
                        if (CalendarioBll.VericarCalendarioExistente(calendario, TipoOperacao.Update))
                        {
                            return(View().ComMensagem(string.Format(Resources.Calendario.CalendarioExistente, calendario.Ano), TipoMensagem.Aviso));
                        }
                        else
                        {
                            calendarioBll.Atualizar(calendario);

                            MensalidadeIntegranteBll mensalidadeIntegranteBll = new MensalidadeIntegranteBll();
                            mensalidadeIntegranteBll.CriarMensalidadesTodosIntegrantesCalendario(calendario);

                            LogBll.GravarInformacao(string.Format(Resources.Calendario.AtualizacaoLog, calendario.ID), "", User.Identity.Name);
                            return(RedirectToAction("Index").ComMensagem(Resources.Calendario.CalendarioAtualizado, TipoMensagem.Sucesso));
                        }
                    }
                    else
                    {
                        if (CalendarioBll.VericarCalendarioExistente(calendario, TipoOperacao.Create))
                        {
                            return(View().ComMensagem(string.Format(Resources.Calendario.CalendarioExistente, calendario.Ano), TipoMensagem.Aviso));
                        }
                        else
                        {
                            calendarioBll.Criar(calendario);

                            MensalidadeIntegranteBll mensalidadeIntegranteBll = new MensalidadeIntegranteBll();
                            mensalidadeIntegranteBll.CriarMensalidadesTodosIntegrantesCalendario(calendario);

                            LogBll.GravarInformacao(string.Format(Resources.Calendario.CriacaoLog, calendario.ID), "", User.Identity.Name);
                            return(RedirectToAction("Index").ComMensagem(Resources.Calendario.CalendarioSalvo, TipoMensagem.Sucesso));
                        }
                    }
                }

                return(View(calendario));
            }
            catch (Exception exception)
            {
                LogBll.GravarErro(exception, User.Identity.Name);
                return(RedirectToAction("Index").ComMensagem(Resources.Geral.ContateAdministrador, TipoMensagem.Erro));
            }
        }
        public ActionResult BaixarMensalidades(int?mensalidadeIntegranteID)
        {
            try
            {
                MensalidadeIntegrante mensalidade = MensalidadeIntegranteBll.RetornarMensalidadeIntegranteCalendario(mensalidadeIntegranteID);
                ViewBag.Nome = IntegranteBll.RetornarIntegrante(mensalidade.IntegranteID).Nome;

                //Integrante integrante = IntegranteBll.RetornarIntegranteMensalidades(integranteID, calendarioID);
                return(PartialView(mensalidade));
            }
            catch (Exception exception)
            {
                LogBll.GravarErro(exception, User.Identity.Name);
                return(RedirectToAction("Index").ComMensagem(Resources.Geral.ContateAdministrador, TipoMensagem.Erro));
            }
        }
        public ActionResult BaixarMensalidades([Bind(Include = "ID,Mes,CalendarioID,IntegranteID,DataPagamento")] MensalidadeIntegrante mensalidadeIntegrante)
        {
            try
            {
                MensalidadeIntegranteBll mensalidadeIntegranteBll = new MensalidadeIntegranteBll();

                mensalidadeIntegranteBll.Atualizar(mensalidadeIntegrante);

                LogBll.GravarInformacao(string.Format(Resources.Mensalidades.SalvaLog, mensalidadeIntegrante.ID), string.Empty, User.Identity.Name);
                return(RedirectToAction("Mensalidade", "Mensalidades",
                                        new { CalendarioID = mensalidadeIntegrante.CalendarioID, IntegranteID = mensalidadeIntegrante.IntegranteID })
                       .ComMensagem(Resources.Mensalidades.MensalidadeSalva, TipoMensagem.Sucesso));
            }
            catch (Exception exception)
            {
                LogBll.GravarErro(exception, User.Identity.Name);
                return(RedirectToAction("Index", "Mensalidades").ComMensagem(Resources.Geral.ContateAdministrador, TipoMensagem.Erro));
            }
        }
        // GET: Index
        public ActionResult Index(int?calendarioId)
        {
            try
            {
                IEnumerable <string>         Labels;
                IEnumerable <ComplexDataset> Datasets;
                List <Calendario>            calendarios = CalendarioBll.ListarCalendarios().ToList();
                int ano = 0;

                ViewBag.Calendarios = calendarios;

                MensalidadeIntegrante mensalidade = new MensalidadeIntegrante();

                if (calendarios.Count > 0)
                {
                    if (calendarioId > 0)
                    {
                        mensalidade.CalendarioID = (int)calendarioId;
                    }
                    else
                    {
                        mensalidade.CalendarioID = calendarios.Where(c => c.Ano == DateTime.Now.Year).FirstOrDefault().ID;
                    }

                    ano = calendarios.FirstOrDefault(c => c.ID == mensalidade.CalendarioID).Ano;
                }

                MensalidadeIntegranteBll.GraficoMensalidadeIntegrante(ano, out Labels, out Datasets);

                ViewBag.Labels   = Labels;
                ViewBag.Datasets = Datasets;

                return(View(mensalidade));
            }
            catch (Exception exception)
            {
                LogBll.GravarErro(exception, User.Identity.Name);
                return(View());
            }
        }