public void Produto_InfraData_Inserir_EsperadoOK() { BaseSqlTeste.SemearBancoParaProduto(); _produto = ProdutoObjetoMae.ObterValido(); Produto produto = _produtoRepositorio.Inserir(_produto); produto.ID.Should().BeGreaterThan(0); }
public async Task Deve_Retornar_Produto() { Produto produto = GeradorProduto.NovoProduto(); repositorio.Inserir(produto); var response = await _testContext.Client.GetAsync($"api/produto/{produto.Id}"); var responseProduto = await response.Content.ReadAsAsync <Produto>(); responseProduto.Should().BeEquivalentTo(produto); }
public async Task <IActionResult> Create(Produto produto) { if (ModelState.IsValid) { await _produtoRepositorio.Inserir(produto); return(RedirectToAction(nameof(Index))); } ViewData["FornecedorId"] = new SelectList(await ListaFornecedores(), "PessoaId", "RazaoSocial", produto.FornecedorId); return(View(produto)); }
public Produto Inserir(ComandoInserirProduto comando) { if (comando.Valido()) { var novoProduto = new Produto(comando.Codigo, comando.Descricao, comando.Preco); _produtoRepositorio.Inserir(novoProduto); return(_produtoRepositorio.Obter(novoProduto.Id)); } return(new Produto()); }
public IConsulta Executar(ProdutoDominio entidade) { try { var produto = new Produto(entidade.Nome, entidade.Preco, entidade.TipoPromocao); _produtoRepositorio.Inserir(produto); return(new ProdutoConsultaResultado(produto)); } catch (Exception ex) { throw ex; } }
public IActionResult Criar([FromBody] Produto produto) { if (produto.Codigo == "") { return(BadRequest("Codigo do produto não informado")); } if (string.IsNullOrEmpty(produto.Descricao)) { return(BadRequest("Descrição do produto não informada")); } _repositorio.Inserir(produto); return(Created(nameof(Criar), produto)); }
public void Persistir(Produto produto) { this.ValidarProduto(produto); if (produto.Id == 0) { bool produtoJaExiste = this.BuscarProdutoPeloNome(produto.Nome) != null; if (produtoJaExiste) { throw new ProdutoException($"Não é possível cadastrar produtos com nome duplicado."); } produtoRepositorio.Inserir(produto); } else { produtoRepositorio.Editar(produto); } }
public void ImportarProdutos() { try { _logger.Log().Debug("importação iniciada..."); _listaCategoriaConfiguracao = _repositorio.RecuperarTodos <ConfiguracaoCategoriaProduto>(); _logger.Log().Debug("lista de categosrias carregada..."); EtapaHandler?.Invoke("Lista de categorias de carregada..."); var caminhoFisicoDaPlanilha = "CaminhoFisicoDaPlanilhaDeProdutos".GetConfigValue(); var connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0; data source={caminhoFisicoDaPlanilha}; Extended Properties=Excel 8.0;"; var adapter = new OleDbDataAdapter("SELECT * FROM [temp$]", connectionString); var ds = new DataSet(); adapter.Fill(ds, "produtos"); var data = ds.Tables["produtos"].AsEnumerable(); _logger.Log().Debug("planilha dos produtos carregada..."); EtapaHandler?.Invoke("Planilha dos produtos carregada..."); EtapaHandler?.Invoke("Importando produtos..."); var produtosDaPlanilha = data.Select(x => { var produto = new Produto(); produto.CodigoParaCupom = CodigoDoCupom; produto.Ativo = x.Field <string>("ATIVO").Trim().SimNaoToBool(); produto.CodigoDeBarra = x.IsNull("CÓDIGO DE BARRAS") ? null : x.Field <string>("CÓDIGO DE BARRAS").Trim(); produto.CodigoNCM = x.IsNull("NCM") ? null : x.Field <string>("NCM").Trim(); produto.Descricao = x.Field <string>("DESCRIÇÃO").Trim(); produto.DigitoCST = x.Field <string>("DÍGITO CST").Trim(); produto.EstoqueMinimo = x.IsNull("ESTOQUE MÍNIMO") ? null : x.Field <double>("ESTOQUE MÍNIMO").ToLong(); produto.ExibirNoPdv = x.Field <string>("PDV").Trim().SimNaoToBool(); produto.Marca = x.Field <string>("MARCA").Trim(); produto.Modelo = x.Field <string>("MODELO").Trim(); produto.PrecoCusto = x.Field <double>("PREÇO DE CUSTO").ToDecimal(); produto.PrecoVenda = x.Field <double>("PREÇO DE VENDA").ToDecimal(); produto.PrecoVenda2 = x.Field <double>("PREÇO DE VENDA 2").ToDecimal(); produto.TipoFiscal = x.Field <string>("TIPO1").Trim(); produto.TipoProduto = x.Field <string>("TIPO").Trim(); produto.TipoUnidade = x.Field <string>("UNIDADE").Trim(); produto.ControlarEstoque = produto.EstoqueMinimo != null; produto.Categoria = x.Field <string>("CATEGORIA").Trim(); produto.SubCategoria = x.Field <string>("SUBCATEGORIA").Trim(); produto.DescricaoBusca = string.Concat(produto.CodigoDeBarra, produto.Descricao).ToComparableString(); AtribuirDescontarInsumoNaVendaETemProducao(produto); return(produto); }).ToList(); var count = 1; produtosDaPlanilha.ForEach(produto => { if (string.IsNullOrEmpty(produto.CodigoDeBarra)) { AdicionarMensagem( $"O produto {produto.Descricao} não foi importado, pois não possui código de barras.", EnumStatusDoResultado.RegraDeNegocioInvalida); } else { try { var prodDb = _produtoRepositorio.Recuperar(new Produto() { CodigoDeBarra = produto.CodigoDeBarra }); if (prodDb == null) { _produtoRepositorio.Inserir(produto); } else { _produtoRepositorio.Atualizar(produto); } } catch (Exception ex) { _logger.Log().Error(ex); } } ProdutoImportadoHandler?.Invoke(count, produtosDaPlanilha.Count, produto.Descricao); _logger.Log().Debug($"{count}/{produtosDaPlanilha.Count} - {produto.Descricao}"); count++; }); AdicionarMensagem("Produtos Importados com Sucesso"); _logger.Log().Debug("####### Produtos Importados com Sucesso #######"); ImportacaoConcluidaHandler?.Invoke(null); } catch (Exception ex) { _logger.Log().Error(ex); ImportacaoConcluidaHandler?.Invoke(ex); } }