Esempio n. 1
0
        /// <summary>Action que trata da edição de vagas do programa, para uma determinada escola</summary>
        /// <param name="ProgramaId">Id do programa</param>
        /// <param name="EscolaParceiraId">Id da escola parceira</param>
        /// <param name="NumeroDeVagas">Novo número de vagas</param>
        /// <returns>Redireciona para a acção Index</returns>
        public IActionResult EditarVagas(int ProgramaId, int EscolaParceiraId, int NumeroVagas)
        {
            ProgramaEscolaParceira Assoc = _programas.SingleOrDefault(p => p.ProgramaId == ProgramaId).EscolasParceiras.SingleOrDefault(ep => ep.EscolaParceiraId == EscolaParceiraId);

            if (Assoc != null)
            {
                Assoc.NumeroVagas = NumeroVagas;
                _context.SaveChanges();
                SetSuccessMessage("Número de Vagas alterado.");
            }
            return(RedirectToAction(nameof(Editar), new { Id = ProgramaId }));
        }
Esempio n. 2
0
        /// <summary>Action responsável pela aceitação de uma candidatura</summary>
        /// <param name="id">Id da candidatura a aceitar</param>
        /// <returns>Redireciona para a action Detalhes, caso a candidatura exista e tenha sido aceite com sucesso.</returns>
        public IActionResult Aceitar(int?id)
        {
            Candidatura candidatura = _candidaturas.SingleOrDefault(p => p.CandidaturaId == id);

            if (candidatura != null)
            {
                Programa programa            = _context.Programas.Include(p => p.EscolasParceiras).ThenInclude(p => p.EscolaParceira).SingleOrDefault(p => p.ProgramaId == candidatura.ProgramaId);
                ProgramaEscolaParceira assoc = programa.EscolasParceiras.SingleOrDefault(e => e.EscolaParceiraId == candidatura.EscolaParceiraId);
                if (assoc.NumeroVagas > 0)
                {
                    assoc.NumeroVagas--;
                    candidatura.Estado = _context.Estados.SingleOrDefault(e => e.Nome == "Aceite");
                    _context.SaveChanges();
                    SetSuccessMessage("Candidatura aceite.");
                    return(RedirectToAction(nameof(Detalhes), new { id = id }));
                }

                SetErrorMessage("006");
                return(RedirectToAction(nameof(Detalhes), new { id = id }));
            }

            return(RedirectToAction(nameof(Index)));
        }