public IActionResult CadastroCliente([FromBody] Produto produto)
        {
            Produto produt = new Produto();

            produt.Nome          = produto.Nome;
            produt.CodigoProduto = produto.CodigoProduto;
            produt.Valor         = produto.Valor;
            produt.Promocao      = produto.Promocao;
            produt.ValorPromo    = produto.ValorPromo;
            produt.Categoria     = produto.Categoria;
            produt.Imagem        = produto.Imagem;
            produt.Quantidade    = produto.Quantidade;
            produt.Fornecedor    = database.Fornecedores.First(f => f.Id == produto.Fornecedor.Id);

            var validator = new ProdutoValidacao();
            var result    = validator.Validate(produto);

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

            database.Add(produt);
            database.SaveChanges();

            return(Ok("Cadastrado com sucesso!"));
        }
Exemple #2
0
        public override ICommandResult Handle(GravarProdutoCommand command)
        {
            //Fail Fast Validations
            if (!command.Validador())
            {
                return(new CommandResult(false, "Mensagem inválida", command.Mensagem));
            }

            //Gerar Produto
            var produto = new Produto(command.CodigoEmpresa,
                                      command.CodigoFilial,
                                      command.CodigoEntrada,
                                      command.CodigoProduto,
                                      command.Sequencia);

            produto.TimeStamp  = command.TimeStamp;
            produto.Lote       = command.Lote;
            produto.Quantidade = command.Quantidade;
            produto.Valor      = command.Valor;

            //Validar Produto
            ProdutoValidacao validadorProduto = new ProdutoValidacao();
            var resultado = validadorProduto.Validate(produto);

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

            //Salvar informações
            try
            {
                _produtoRepositorio.InseririOuAtualizar(produto);
                return(new CommandResult(true, "Mensagem persistida com sucesso"));
            }
            catch
            {
                return(new CommandResult(false, "Ocorreu um erro interno no sistema", command.Mensagem));
            }
        }