Ejemplo n.º 1
0
        public async Task <IActionResult> AddDataLocalApresentacao(Tcc tccAtualizado, IList <int> checkNotificaMembrosBanca)
        {
            Tcc        tcc             = _context.Tccs.Where(x => x.TccId == tccAtualizado.TccId).FirstOrDefault();
            Calendario calendarioAtivo = _context.Calendario.Where(x => x.Ativo == true).FirstOrDefault();

            if (tccAtualizado.DataApresentacao == null)
            {
                TempData["Error"] = "Favor, informe a data de apresentação.";
            }
            else if (tccAtualizado.DataApresentacao.Value.Date < calendarioAtivo.DataInicio.Date || tccAtualizado.DataApresentacao.Value.Date > calendarioAtivo.DataFim.Date)
            {
                TempData["Error"] = "Data de apresentação inválida! Favor, informe uma data entre " + calendarioAtivo.DataInicio.ToString("dd/MM/yyyy") + " à " + calendarioAtivo.DataFim.ToString("dd/MM/yyyy") + ".";
            }
            else if (tccAtualizado.LocalApresentacao == null)
            {
                TempData["Error"] = "Favor, informe o local da apresentação.";
            }
            else if (ModelState.IsValid)
            {
                tcc.DataApresentacao  = tccAtualizado.DataApresentacao;
                tcc.LocalApresentacao = tccAtualizado.LocalApresentacao;
                tcc.StatusId          = _context.Status.Where(x => x.DescStatus.Contains("Homologado Banca")).Select(x => x.StatusId).FirstOrDefault();
                _context.Update(tcc);
                await _context.SaveChangesAsync();

                TempData["Success"] = "Banca homologada com sucesso";
                if (checkNotificaMembrosBanca.Count > 0)
                {
                    tcc.Usuario = _context.Usuario.Where(x => x.Id == tccAtualizado.UsuarioId).FirstOrDefault();
                    List <Banca> banca = _context.Banca.Where(x => x.TccId == tcc.TccId).ToList();
                    FileTCC      file  = _context.FileTCC.Where(f => f.TccId == tcc.TccId).OrderByDescending(f => f.DataCadastro).FirstOrDefault();
                    foreach (Banca item in banca)
                    {
                        _senderEmail.NotificarMembrosBancaViaEmail(tcc, _context.Usuario.Where(x => x.Id == item.UsuarioId).FirstOrDefault(), file.Id.ToString());
                    }
                    _senderEmail.NotificarMembrosBancaViaEmail(tcc, tcc.Usuario, file.Id.ToString());
                    TempData["Success"] += " e enviada notificação via e-mail para os membros da banca";
                }
                TempData["Success"] += ".";
                return(RedirectToAction("Index", "Bancas", new { area = "" }));
            }

            if (tccAtualizado.TccId != 0)
            {
                tcc.Usuario = _context.Usuario.Where(x => x.Id == tccAtualizado.UsuarioId).FirstOrDefault();
                Banca bancaOrientador = _context.Banca.Where(x => x.TccId == tccAtualizado.TccId && x.TipoUsuario.DescTipo.ToLower().Equals("orientador")).FirstOrDefault();
                ViewBag.Orientador      = _context.Usuario.Where(x => x.Id == bancaOrientador.UsuarioId).FirstOrDefault();
                ViewBag.CalendarioAtivo = _context.Calendario.Where(x => x.Ativo == true).FirstOrDefault();
            }

            return(View(tcc));
        }