예제 #1
0
        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!"));
        }
예제 #2
0
        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.");
        }
예제 #3
0
        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");
        }
예제 #4
0
        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.");
        }
예제 #5
0
        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");
        }