Example #1
0
        public override ICommandResult Handle(GravarFornecedorCommand command)
        {
            //Fail Fast Validations
            if (!command.Validador())
            {
                return(new CommandResult(false, "Mensagem inválida", command.Mensagem));
            }

            //Validar VOs
            DescricaoEnderecoValicado validadorEndereco = new DescricaoEnderecoValicado();
            var resultado = validadorEndereco.Validate(command.Endereco);

            if (!resultado.IsValid)
            {
                var erros = retornoMensagemErro(resultado.Errors);
                return(new CommandResult(false, erros, command.Mensagem));
            }

            //Gerar Fornecedor
            var fornecedor = new Fornecedor(command.CodigoFornecedor,
                                            command.DescricaoFornecedor,
                                            command.Cnpj,
                                            command.Endereco);

            fornecedor.Email = command.Email;

            //Validar Fornecedor
            FornecedorValidacao validadorFornecedor = new FornecedorValidacao();

            resultado = validadorFornecedor.Validate(fornecedor);
            if (resultado.IsValid)
            {
                var erros = retornoMensagemErro(resultado.Errors);
                return(new CommandResult(false, erros, command.Mensagem));
            }


            //Salvar informações
            try
            {
                _fornecedorRepositorio.InseririOuAtualizar(fornecedor);
                return(new CommandResult(true, "Mensagem persistida com sucesso"));
            }
            catch
            {
                return(new CommandResult(false, "Ocorreu um erro interno no sistema", command.Mensagem));
            }
        }
        public IActionResult CadastroFornecedores([FromBody] Fornecedor fornecedor)
        {
            Fornecedor fornecedo = new Fornecedor();

            fornecedo.Nome = fornecedor.Nome;
            fornecedo.Cnpj = fornecedor.Cnpj;

            var validator = new FornecedorValidacao();
            var result    = validator.Validate(fornecedor);

            if (!result.IsValid)
            {
                return(BadRequest(result.Errors));
            }

            database.Add(fornecedo);
            database.SaveChanges();

            return(Ok("Fornecedor registrado com sucesso!"));
        }