public async Task <IActionResult> ConfigurarDescontoMaximo( [FromBody] DescontoMaximoInputModel input, string id) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var turma = await _turmasRepositorio.RecuperarAsync(id); if (turma == null) { return(NotFound()); } turma.ConfigurarDescontoMaximo(input.Valor); await _escolasContexto.SaveChangesAsync(); return(Ok(turma)); } catch (InvalidOperationException ex) { return(BadRequest(ex.Message)); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }
public async Task <ActionResult <TurmaViewModel> > TurmaPorId(int id) { if (id <= 0) { return(BadRequest()); } if (await _turmasRepositorio.RecuperarAsync(id) is var turma && turma.HasNoValue) { return(NotFound()); } return(Ok(new TurmaViewModel())); }
public async Task <IActionResult> RealizarInscricao([FromBody] InscricaoInputModel novaInscricao) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //Localizar aluno var aluno = await _alunosRepositorio.RecuperarAsync(novaInscricao.AlunoId); if (aluno == null) { return(BadRequest("Nenhum aluno encontrado")); } //Localizar turma var turma = await _turmasRepositorio.RecuperarAsync(novaInscricao.TurmaId); if (turma == null) { return(BadRequest("Nenhuma turma encontrada")); } var inscricao = aluno.RealizarInscricao(turma, novaInscricao.TipoPagamento.ToEnum <Inscricao.ETipoPagamento>()); //Enviar email //Persistir todas as alterações feitas await _escolasContexto.SaveChangesAsync(); return(Ok(novaInscricao)); } catch (InvalidOperationException ex) { return(BadRequest(ex.Message)); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }
public async Task <ActionResult> AdicionarInscricaoAsync( [FromServices] ITurmasRepositorio _turmasRepositorio, [FromBody] NovaInscricaoInputModel novaInscricaoInputModel, int id) { if (await _alunosRepositorio.RecuperarAsync(id) is var aluno && aluno.HasNoValue) { return(NotFound()); } if (await _turmasRepositorio.RecuperarAsync(novaInscricaoInputModel.TurmaId) is var turma && turma.HasNoValue) { return(BadRequest("Turma inválida")); } if (aluno.Value.RealizarInscricao(turma.Value, DateTime.UtcNow) is var resultado && resultado.IsFailure) { return(BadRequest(resultado.Error)); } await _unitOfWork.CommitAsync(); return(Ok()); }