internal void AtualizarItem(CarrinhoItem item)
        {
            item.AssociarCarrinho(Id);

            var itemExistente = ObterPorProdutoId(item.ProdutoId);

            Itens.Remove(itemExistente);
            Itens.Add(item);

            CalcularValorCarrinho();
        }
        internal void AdicionarItem(CarrinhoItem item)
        {
            item.AssociarCarrinho(Id);

            if (CarrinhoItemExistente(item))
            {
                var itemExistente = ObterPorProdutoId(item.ProdutoId);
                itemExistente.AdicionarUnidades(item.Quantidade);

                item = itemExistente;
                Itens.Remove(itemExistente);
            }

            Itens.Add(item);
            CalcularValorCarrinho();
        }
 internal void RemoverItem(CarrinhoItem item)
 {
     Itens.Remove(ObterPorProdutoId(item.ProdutoId));
     CalcularValorCarrinho();
 }
 internal void AtualizarUnidades(CarrinhoItem item, int unidades)
 {
     item.AtualizarUnidades(unidades);
     AtualizarItem(item);
 }
 internal bool CarrinhoItemExistente(CarrinhoItem item)
 {
     return(Itens.Any(p => p.ProdutoId == item.ProdutoId));
 }