public async Task <IResult> Handler(AlterarProjetoCommand command) { command.Validate(); if (!command.Valid) { return(command.ValidationResult); } var projeto = await _repository.Projeto.GetProjetoByIdAsync(command.Id); if (projeto == null) { return(new CommandResult(false, "Projeto não encontrado", command.Notifications)); } projeto = await _repository.Projeto.GetProjetoByNameAndDiferentIdAsync(command.Nome, command.Id); if (projeto != null) { return(new CommandResult(false, "Já existe um projeto com mesmo nome cadastrado", command.Notifications)); } var projetoEntity = _mapper.Map <Projeto>(command); _repository.Projeto.Update(projetoEntity); await _repository.SaveAsync(); return(new CommandResult("Dados alterados com sucesso!")); }
public void ShouldInvalidateAlterarProjetoCommandWhenNameIsLessThan3() { var _alterarProjetoCommand = new AlterarProjetoCommand(1, "as", StatusDeCadastro.Normal); _alterarProjetoCommand.Validate(); var result = _alterarProjetoCommand.Notifications.ToList(); Assert.AreEqual(result[0].Message, "Nome deve ter no mínimo 3 caracteres."); }
public void ShouldInvalidateAlterarProjetoCommandWhenNameIsEmpty() { var _alterarProjetoCommand = new AlterarProjetoCommand(1, "", StatusDeCadastro.Normal); _alterarProjetoCommand.Validate(); var result = _alterarProjetoCommand.Notifications.ToList(); Assert.AreEqual(result[0].Message, "Nome é obrigatório"); }
public void ShouldInvalidateAlterarProjetoCommandWhenNameIsGreaterThan60() { var _alterarProjetoCommand = new AlterarProjetoCommand(1, "dhasghghghaghdgashdghgdhjghasgdjhagddhasghghghaghdgashdghgdhjghasgdjhagd", StatusDeCadastro.Normal); _alterarProjetoCommand.Validate(); var result = _alterarProjetoCommand.Notifications.ToList(); Assert.AreEqual(result[0].Message, "Nome não pode ser maior que 60 caracteres."); }
public void ShouldInvalidateAlterarProjetoCommandWhenIdIsZero() { var _alterarProjetoCommand = new AlterarProjetoCommand(0, "teste", StatusDeCadastro.Normal); _alterarProjetoCommand.Validate(); var result = _alterarProjetoCommand.Notifications.ToList(); Assert.AreEqual(result[0].Message, "Id do projeto inválido"); }