Esempio n. 1
0
 public int excluir(ProdutoInfo produto)
 {
     if (_produtos.ContainsKey(produto.Id))
     {
         produto.QuantidadeCarrinho = 0;
         _produtos.Remove(produto.Id);
     }
     if (_produtos.Count == 0)
     {
         this.Loja = null;
     }
     AoAtualizar?.Invoke(this, new CarrinhoEventArgs(getQuantidade(), getTotal()));
     return(0);
 }
Esempio n. 2
0
 /*
  * public int remover(ProdutoInfo produto) {
  *  if (_produtos.ContainsKey(produto.Id))
  *  {
  *      produto.QuantidadeCarrinho--;
  *      if (produto.QuantidadeCarrinho <= 0) {
  *          _produtos.Remove(produto.Id);
  *      }
  *  }
  *  if (_produtos.Count == 0) {
  *      this.Loja = null;
  *  }
  *  AoAtualizar?.Invoke(this, new CarrinhoEventArgs(getQuantidade(), getTotal()));
  *  return produto.QuantidadeCarrinho;
  * }
  */
 public int remover(int idProduto)
 {
     if (_produtos.ContainsKey(idProduto))
     {
         var produto = _produtos[idProduto];
         produto.QuantidadeCarrinho--;
         if (produto.QuantidadeCarrinho <= 0)
         {
             _produtos.Remove(produto.Id);
         }
         if (_produtos.Count == 0)
         {
             this.Loja = null;
         }
         AoAtualizar?.Invoke(this, new CarrinhoEventArgs(getQuantidade(), getTotal()));
         return(produto.QuantidadeCarrinho);
     }
     return(0);
 }
Esempio n. 3
0
        public int adicionar(ProdutoInfo produto)
        {
            if (temProdutoDeOutraLoja(produto.IdLoja))
            {
                throw new Exception("Já existem produtos no carrinho de outra loja.");
            }
            var regraLoja = LojaFactory.create();
            var loja      = regraLoja.pegarAtual();

            /*
             * if (!_produtos.ContainsKey(produto.Id)) {
             *  _produtos.Add(produto.Id, produto);
             * }
             */
            ProdutoInfo produtoAtual = null;

            if (_produtos.ContainsKey(produto.Id))
            {
                produtoAtual = _produtos[produto.Id];
            }
            else
            {
                produtoAtual = produto;
                _produtos.Add(produtoAtual.Id, produtoAtual);
            }
            if (loja.ControleEstoque)
            {
                if (produtoAtual.QuantidadeCarrinho < produtoAtual.Quantidade)
                {
                    produtoAtual.QuantidadeCarrinho++;
                }
            }
            else
            {
                produtoAtual.QuantidadeCarrinho++;
            }
            this.Loja = loja;
            AoAtualizar?.Invoke(this, new CarrinhoEventArgs(getQuantidade(), getTotal()));
            return(produtoAtual.QuantidadeCarrinho);
        }
Esempio n. 4
0
 public virtual Task limparAtual()
 {
     _loja  = null;
     _lojas = null;
     return(new Task(() => { }));
 }
Esempio n. 5
0
 public virtual Task gravarAtual(LojaInfo loja)
 {
     return(new TaskFactory().StartNew(() => { _loja = loja; }));
     //App.Current.Properties["loja"] = JsonConvert.SerializeObject(loja);
     //App.Current.SavePropertiesAsync();
 }
Esempio n. 6
0
 public override Task gravarAtual(LojaInfo loja)
 {
     _loja = loja;
     App.Current.Properties["loja"] = JsonConvert.SerializeObject(loja);
     return(App.Current.SavePropertiesAsync());
 }