public CancelarMatriculaOutput Processar(CancelarMatriculaInput input) { var retorno = new CancelarMatriculaOutput(); var aluno = _alunoDAO.GetAluno(input.AlunoId); var disciplina = _disciplinaDAO.GetDisciplina(input.DisciplinaId); if (aluno.PossuiDisciplina(disciplina) && disciplina.PodeSerCancelada()) { aluno.RemoverDisciplina(disciplina); _alunoDAO.Update(aluno); retorno.Sucesso = true; } else { retorno.Sucesso = false; retorno.CodigoErro = "ABC123"; retorno.MensagemErro = "Matrícula não pode ser cancelada após início"; } return(retorno); }
public MatricularOutput Processar(MatricularInput input) { var retorno = new MatricularOutput(); var aluno = _alunoDAO.GetAluno(input.AlunoId); var disciplina = _disciplinaDAO.GetDisciplina(input.DisciplinaId); var turma = _turmaDAO.GetTurma(input.TurmaId); if (turma.PodeMatricular()) { _alunoDAO.Update(aluno); _turmaDAO.Update(turma); retorno.Sucesso = true; } else { retorno.Sucesso = false; retorno.CodigoErro = "ABC123"; retorno.MensagemErro = "Ocorreu um erro durante a matrícula."; } return(retorno); }