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!")); }
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)); } }