public ICommandResult Handle(AdicionarAlunoCommand command) { command.Validar(); if (!command.IsValid) { return(new GenericCommandResult(false, "Dados inválidos!", command.Notifications)); } var turma = TurmaRepositorio.Buscar(command.IdTurma); if (turma.Alunos.Find(a => a.CPF == command.CPF) != null) { return(new GenericCommandResult(false, "Já existe um aluno cadastrado nessa turma com o CPF informado!", command.CPF)); } if (turma.Alunos.Find(a => a.Email == command.Email) != null) { return(new GenericCommandResult(false, "Já existe um aluno cadastrado nessa turma com o email informado!", command.Email)); } if (turma.Alunos.Find(a => a.Nome == command.Nome) != null) { return(new GenericCommandResult(false, "Já existe um aluno cadastrado nessa turma com o nome informado!", command.Nome)); } var aluno = new Aluno(command.Nome, command.Email, command.DataNascimento, command.UrlFoto, command.CPF, turma.Id); AlunoRepositorio.Adicionar(aluno); var resultado = new AlunoGenericCommandResult(aluno.Nome, aluno.Email, aluno.DataNascimento, aluno.UrlFoto, aluno.CPF); return(new GenericCommandResult(true, "Aluno cadastrado com sucesso!", resultado)); }
public IQueryResult Handle(ListarAlunoPorIdQuery query) { var aluno = Repositorio.Buscar(query.IdAluno); var result = new AlunoGenericCommandResult(aluno.Nome, aluno.Email, aluno.DataNascimento, aluno.UrlFoto, aluno.CPF); return(new GenericQueryResult(true, "Detalhes do aluno", result)); }
public ICommandResult Handle(AlterarAlunoCommand command) { command.Validar(); if (!command.IsValid) { return(new GenericCommandResult(false, "Dados inválidos!", command.Notifications)); } var aluno = Repository.Buscar(command.IdAluno); if (aluno == null) { return(new GenericCommandResult(false, "Aluno inexistente!", command.IdAluno)); } aluno.Alterar(command.Nome, command.Email, command.DataNascimento, command.UrlFoto, command.CPF); Repository.Alterar(aluno); var result = new AlunoGenericCommandResult(aluno.Nome, aluno.Email, aluno.DataNascimento, aluno.CPF, aluno.UrlFoto); return(new GenericCommandResult(true, "Informação(ões) de aluno alterada(s) com sucesso!", result)); }