public async Task <ActionResult> CriarAsync([FromBody] NovaTurmaInputModel novaTurmaInputModel) { Result <TurmaBase> turma; if (novaTurmaInputModel.ComDuracao) { turma = TurmaBase.CriarComDuracao( novaTurmaInputModel.Descricao, novaTurmaInputModel.LimiteIdade, novaTurmaInputModel.QuantidadeMinimaAlunos, novaTurmaInputModel.QuantidadeMaximaAlunos, novaTurmaInputModel.DuracaoTipo, novaTurmaInputModel.DuracaoValor); } else { turma = TurmaBase.CriarComDuracaoIlimitada( novaTurmaInputModel.Descricao, novaTurmaInputModel.LimiteIdade, novaTurmaInputModel.QuantidadeMinimaAlunos, novaTurmaInputModel.QuantidadeMaximaAlunos); } if (turma.IsFailure) { return(BadRequest(turma.Error)); } await _turmasRepositorio.AdicionarAsync(turma.Value); await _unitOfWork.CommitAsync(); return(CreatedAtAction(nameof(TurmaPorId), new { id = turma.Value.Id }, null)); }
public Result RealizarInscricao(TurmaBase turma, DateTime inscricaoEm) { if (turma.PossoFazerInscrever(this, inscricaoEm) is var resultado && resultado.IsFailure) { return(Result.Failure(resultado.Error)); } _inscricoes.Add(Inscricao.Criar(turma.Id, turma.RecuperarDataEncerramento(inscricaoEm))); turma.IncrementarInscricoes(); return(Result.Ok()); }
public async Task <TurmaBase> AdicionarAsync(TurmaBase turma) { return((await _contexto.Turmas.AddAsync(turma)).Entity); }