/// <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 })); }
/// <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))); }