public Produto CriarProduto(Produto produto)
 {
     produto.Validar();
     produto.Unidade.Validar();
     var unidade = _unidadeRepository.ObterPorCodigo(produto.Unidade.UnidadeCodigo);
     AssertionConcern.AssertArgumentNotEquals(unidade, null, Erros.UnitDoesNotExist);
     produto.Unidade = unidade;
     return _produtoRepository.Criar(produto);
 }
 public Produto AtualizarProduto(Produto produto)
 {
     produto.Validar();
     AssertionConcern.AssertArgumentNotEquals(0, produto.ProdutoCodigo, string.Format(Erros.NotZeroParameter, "ProdutoCodigo"));
     produto.Unidade.Validar();
     var unidade = _unidadeRepository.ObterPorCodigo(produto.Unidade.UnidadeCodigo);
     AssertionConcern.AssertArgumentNotEquals(unidade, null, Erros.UnitDoesNotExist);
     var produtoAtual = _produtoRepository.ObterComUnidadePorCodigo(produto.ProdutoCodigo);
     AssertionConcern.AssertArgumentNotEquals(produtoAtual, null, Erros.ProductDoesNotExist);
     produtoAtual.PrecoCusto = produto.PrecoCusto;
     produtoAtual.PrecoVenda = produto.PrecoVenda;
     produtoAtual.ProdutoNome = produto.ProdutoNome;
     produtoAtual.Unidade = unidade;
     return _produtoRepository.Atualizar(produtoAtual);
 }
 public Produto Criar(Produto produto)
 {
     _context.Produtos.Add(produto);
     _context.SaveChanges();
     return _context.Entry(produto).Entity;
 }
 public void Deletar(Produto produto)
 {
     _context.Produtos.Remove(produto);
     _context.SaveChanges();
 }
 public Produto Atualizar(Produto produto)
 {
     _context.Entry(produto).State = System.Data.Entity.EntityState.Modified;
     _context.SaveChanges();
     return _context.Entry(produto).Entity;
 }