private void AtualizarProduto(ProdutoCadastroVm produtoCadastroVm)
        {
            Produto produto = _produtosConsultados.SingleOrDefault(x => x.Codigo == produtoCadastroVm.Codigo);

            if (produto != null)
            {
                produto.Atualizar(produtoCadastroVm.Descricao, produtoCadastroVm.Tipo);
            }
            else
            {
                produto = new Produto(produtoCadastroVm.Codigo, produtoCadastroVm.Descricao, produtoCadastroVm.Tipo);
            }
            _produtos.Save(produto);
        }
        public void AtualizarFornecedoresDoProduto(string codigoProduto, string[] codigoDosFornecedores)
        {
            try
            {
                _unitOfWork.BeginTransaction();

                Produto produto = _produtos.BuscaPeloCodigo(codigoProduto);
                //para carregar apenas os fornecedores que ainda não estão associados ao produto, remove do array os que já estão associados
                string[]           codigoDosFornecedoresParaCarregar = codigoDosFornecedores.Except(produto.Fornecedores.Select(x => x.Codigo)).ToArray();
                IList <Fornecedor> fornecedoresParaAdicionar         = _fornecedores.BuscaListaPorCodigo(codigoDosFornecedoresParaCarregar).List();
                produto.AdicionarFornecedores(fornecedoresParaAdicionar);
                _produtos.Save(produto);

                _unitOfWork.Commit();
            }
            catch (Exception)
            {
                _unitOfWork.RollBack();
                throw;
            }
        }