public async Task <IActionResult> Novo([FromBody] NovaTurmaInputModel input) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var turma = Turma.CriarFechada(input.Descricao, input.LimiteAlunos, input.IdadeMinima, input.Duracao, input.ValorMensal); await _turmasRepositorio.AdicionarAsync(turma); 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 <IActionResult> Novo([FromBody] NovoAlunoInputModel input) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var aluno = Aluno.Criar(input.Nome, input.Email, input.DataNascimento, input.Sexo.ToEnum <Aluno.ESexo>(), new Endereco(input.Rua, input.Numero, input.Complemento, input.Bairro, input.Cidade, input.Cep, input.DistanciaAteEscola)); await _alunosRepositorio.AdicionarAsync(aluno); await _escolasContexto.SaveChangesAsync(); return(Ok(aluno)); } catch (InvalidOperationException ex) { return(BadRequest(ex.Message)); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }
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 })); } }