Esempio n. 1
0
 public PurchasesItem FindById(int id)
 {
     query   = "SELECT id, product_id, purchase_id, quantity FROM purchases_item WHERE id=@id";
     @params = new Dictionary <string, object>
     {
         { "@id", id }
     };
     try
     {
         object[]      result        = (object[])base.SelectQuery()[0];
         PurchasesItem purchasesItem = new PurchasesItem
         {
             Id         = (int)result[0],
             ProductId  = (int)result[1],
             PurchaseId = (int)result[2],
             Quantity   = (int)result[3]
         };
         return(purchasesItem);
     }
     catch (ArgumentOutOfRangeException e)
     {
         Console.WriteLine("No se encontro el detalle de compra con id {0}", id);
     }
     return(null);
 }
        public void ReserveProduct(string sessionId, int productId)
        {
            using (var transaction = _transactionFactory.StartTransaction())
            {
                if (_productRepository.GetProduct(productId).Amount <= 0)
                {
                    transaction.Rollback();
                    return;
                }

                var basket = _basketRepository.GetActiveBasketBySessionId(sessionId);

                if (basket == null)
                {
                    var purchasesItems = new List <PurchasesItem>();
                    var newItem        = new PurchasesItem();
                    newItem.Amount    = 1;
                    newItem.ProductId = productId;
                    purchasesItems.Add(newItem);

                    basket = new Basket();
                    basket.BasketCreation = DateTime.Now;
                    basket.PurchasesItems = purchasesItems;
                    basket.SessionId      = sessionId;

                    var product = _productRepository.GetProduct(productId);
                    product.Amount--;

                    _productRepository.UpdateProduct(product);
                    _basketRepository.CreateBasket(basket);
                }
                else
                {
                    var purchasesItem = basket.PurchasesItems.Find(p => { return(p.ProductId == productId); });

                    if (purchasesItem == null)
                    {
                        var newItem = new PurchasesItem();
                        newItem.Amount    = 1;
                        newItem.ProductId = productId;

                        basket.PurchasesItems.Add(newItem);
                        _basketRepository.UpdateBasket(basket);
                    }
                    else
                    {
                        purchasesItem.Amount++;
                        _basketRepository.UpdateBasket(basket);
                    }

                    var product = _productRepository.GetProduct(productId);
                    product.Amount--;

                    _productRepository.UpdateProduct(product);
                }

                transaction.Commit();
            }
        }
Esempio n. 3
0
 public void DeletePurchasesItem(PurchasesItem item)
 {
     using (var ctx = new FreeSmokyMarketContext())
     {
         ctx.PurchasesItems.Remove(item);
         ctx.SaveChanges();
     }
 }
Esempio n. 4
0
 public void CreatePurchasesItem(PurchasesItem item)
 {
     using (var ctx = new FreeSmokyMarketContext())
     {
         ctx.PurchasesItems.Add(item);
         ctx.SaveChanges();
     }
 }
Esempio n. 5
0
 public bool Save(PurchasesItem purchasesItem)
 {
     query   = "INSERT INTO purchases_item (product_id,purchase_id, quantity)VALUES (@productId,@purchaseId,@quantity)";
     @params = new Dictionary <string, object>
     {
         { "@productId", purchasesItem.ProductId },
         { "@purchaseId", purchasesItem.PurchaseId },
         { "@quantity", purchasesItem.Quantity }
     };
     return(base.Execute());
 }
Esempio n. 6
0
        /// <summary>
        /// HACER COMPRA
        /// </summary>
        /// <returns></returns>
        public bool DoPurchases(PurchasesCreateDto purchasesCreateDto)
        {
            purchasesDao     = new PurchasesDao();
            purchasesItemDao = new PurchasesItemDao();

            Purchases purchases   = new Purchases(purchasesCreateDto.UserId, purchasesCreateDto.ProviderId, purchasesCreateDto.PurchaseTotal);
            int       purchasesId = purchasesDao.Save(purchases);

            if (purchasesId > 0)
            {
                foreach (PurchasesItemCreateDto i in purchasesCreateDto.ProductList)
                {
                    PurchasesItem pi = new PurchasesItem(i.ProductId, i.PurchaseId, i.Quantity);
                    purchasesItemDao.Save(pi);
                }
            }
            return(false);
        }
Esempio n. 7
0
        public IList <PurchasesItem> FindAll()
        {
            query = "SELECT id,product_id,purchase_id, quantity FROM purchases_item";
            @params.Clear();
            IList <PurchasesItem> purchasesItem = new List <PurchasesItem>();
            ArrayList             result        = base.SelectQuery();
            PurchasesItem         purchaseItem;

            foreach (object[] r in result)
            {
                purchaseItem = new PurchasesItem
                {
                    Id         = (int)r[0],
                    ProductId  = (int)r[1],
                    PurchaseId = (int)r[2],
                    Quantity   = (int)r[3]
                };
                purchasesItem.Add(purchaseItem);
            }
            return(purchasesItem);
        }
Esempio n. 8
0
        public IList <PurchasesItem> FindByPurchaseId(int purchaseId)
        {
            query   = "SELECT id, product_id, purchase_id, quantity FROM purchases_item WHERE purchase_id=@purchaseId";
            @params = new Dictionary <string, object>
            {
                { "@purchaseId", purchaseId }
            };
            IList <PurchasesItem> purchasesItem = new List <PurchasesItem>();
            ArrayList             result        = base.SelectQuery();
            PurchasesItem         purchaseItem;

            foreach (object[] r in result)
            {
                purchaseItem = new PurchasesItem
                {
                    Id         = (int)r[0],
                    ProductId  = (int)r[1],
                    PurchaseId = (int)r[2],
                    Quantity   = (int)r[3]
                };
                purchasesItem.Add(purchaseItem);
            }
            return(purchasesItem);
        }