public IActionResult RealizarInscricao(string alunoId, [FromBody] InscricaoInputModel novaInscricao) { try { var aluno = _alunosRepositorio.Recuperar(alunoId); if (aluno == null) { return(NotFound("Aluno inválido")); } var turma = _turmasRepositorio.Recuperar(novaInscricao.TurmaId); if (turma == null) { return(BadRequest("Turma informada é inválida")); } var inscricao = aluno.RealizarInscricao(turma); _alunosRepositorio.Atualizar(aluno); return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, inscricao.Id }, new InscricaoViewModel(aluno.Id, new InscricaoViewModel.TurmaViewModel(inscricao.Turma.Id, inscricao.Turma.Descricao), inscricao.InscritoEm))); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }
public IActionResult RealizarInscricao(string alunoId, [FromBody] InscricaoInputModel novaInscricao) { try { if (_alunosRepositorio.Recuperar(alunoId) is var aluno && aluno.EhFalha) { return(StatusCode(aluno.Falha.Codigo, aluno.Falha)); } var turma = _turmasRepositorio.Recuperar(novaInscricao.TurmaId); if (turma == null) { return(BadRequest("Turma informada é inválida")); } if (aluno.Sucesso.RealizarInscricao(turma) is var inscricao && inscricao.EhFalha) { return(StatusCode(inscricao.Falha.Codigo, inscricao.Falha)); } if (_alunosRepositorio.Atualizar(aluno.Sucesso) is var resultado && resultado.EhFalha) { return(StatusCode(resultado.Falha.Codigo, resultado.Falha)); } return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, inscricao.Sucesso.Id }, new InscricaoViewModel(aluno.Sucesso.Id, new InscricaoViewModel.TurmaViewModel(inscricao.Sucesso.Turma.Id, inscricao.Sucesso.Turma.Descricao), inscricao.Sucesso.InscritoEm))); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }
public IActionResult RealizarInscricao(string alunoId, [FromBody] InscricaoInputModel novaInscricao) { var resultado = _realizarInscricaoHandler.Executar(new RealizarInscricaoComando(alunoId, novaInscricao.TurmaId)); if (resultado.EhFalha) { return(StatusCode(resultado.Falha.Codigo, resultado.Falha)); } return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, resultado.Sucesso.Id }, new InscricaoViewModel(resultado.Sucesso.Id, new InscricaoViewModel.TurmaViewModel(resultado.Sucesso.Turma.Id, resultado.Sucesso.Turma.Descricao), resultado.Sucesso.InscritoEm))); }
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 IActionResult RealizarInscricao([FromBody] InscricaoInputModel novaInscricao) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //Localizar aluno var aluno = _alunosDataAccess.Recuperar(novaInscricao.AlunoId); if (aluno == null) { return(BadRequest("Nenhum aluno encontrado")); } //Localizar turma var turma = _turmasDataAcess.Recuperar(novaInscricao.TurmaId); if (turma == null) { return(BadRequest("Nenhuma turma encontrada")); } var inscricao = aluno.RealizarInscricao(turma); //Enviar email //Salvar inscrição _alunosDataAccess.Salvar(aluno); return(Ok(novaInscricao)); } catch (InvalidOperationException ex) { return(BadRequest(ex.Message)); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }