public decimal GetDiscount(ProductInBasket pricedProductInBasket)
        {
            decimal priceReduction = -pricedProductInBasket.Price;
            decimal totalDiscount  = _numberOfTimesDiscountApplies * priceReduction;

            _log.LogMessage($"Discount {Name} applied to {pricedProductInBasket.Product.Name}:{pricedProductInBasket.Id} - price:{pricedProductInBasket.Price}, reduction:{priceReduction} applied {_numberOfTimesDiscountApplies}, resulting in {totalDiscount }");
            return(totalDiscount);
        }
示例#2
0
 public bool Update(ProductInBasket product, string userLogin)
 {
     using (var connection = GetConnection())
     {
         return(connection.Query(@"
         exec sp_UpdateProductInBasket @UserName=@UserName, @ProductId=@Id, @StartDate=@StartDTS, @EndDate=@EndDTS, @Quantity=@Quantity
         ".AddParametersDefaul(), new { product, userLogin }).Any());
     }
 }
示例#3
0
        /// <summary>
        /// Метод добавления товара в корзину неавторизированного пользователя
        /// </summary>
        /// <param name="userId">ID неавторизированного пользователя</param>
        /// <param name="productId">ID товара</param>
        /// <returns></returns>
        public async Task AddProductInBasketForNotAuthorizedUserAsync(Guid userId, int productId)
        {
            var productInBasket = new ProductInBasket
            {
                NotAuthorizedUserId = userId,
                ProductId           = productId
            };

            _netMarketDbContext.ProductsInBasket.Add(productInBasket);
            _cache.Remove(userId.ToString());
            await _netMarketDbContext.SaveChangesAsync();
        }
示例#4
0
        /// <summary>
        /// Метод добавления товара в корзину авторизированного пользователя
        /// </summary>
        /// <param name="login">Логин пользователя</param>
        /// <param name="userId">ID пользователя</param>
        /// <param name="productId">ID товара</param>
        /// <returns></returns>
        public async Task AddProductInBasketForAuthorizedUserAsync(string login, Guid userId, int productId)
        {
            var productInBasket = new ProductInBasket
            {
                UserId    = userId,
                ProductId = productId
            };

            _netMarketDbContext.ProductsInBasket.Add(productInBasket);
            _cache.Remove(login);
            await _netMarketDbContext.SaveChangesAsync();
        }
        public ActionResult Buy(int id)
        {
            BasketViewModel baskets = new BasketViewModel();

            if (Session["ShoppingBasketItem"] == null)
            {
                List <ProductInBasket> basket = new List <ProductInBasket>();
                Product         product       = baskets.FindById(id);
                ProductInBasket bb            = new ProductInBasket();
                bb.product = product;

                //if (bb.product.Count > 1)
                //{
                bb.ProductCount = 1;
                basket.Add(bb);
                //Product pro = new Product();
                //var Product = from p in db.Product
                //              where p.Id == bb.product.Id
                //              select p;
                //product.Count--;

                //db.SaveChanges();

                Session["ShoppingBasketItem"] = basket;
                //return RedirectToAction("Index");
                //}
                //else
                //{
                //    ViewBag.error = "از این محصول به تعداد کافی موجود نیست!!!";
                //    return RedirectToAction("Index", "MainPage");
                //}
            }
            else
            {
                List <ProductInBasket> basket = new List <ProductInBasket>();
                Product         product       = baskets.FindById(id);
                ProductInBasket bb            = new ProductInBasket();
                bb.product = product;

                //if (bb.product.Count > 1)
                //{
                bb.ProductCount = 1;
                basket.Add(bb);
                //}
                //else
                //{
                //    ViewBag.error = "از این محصول به تعداد کافی موجود نیست!!!";
                //    return RedirectToAction("Index", "MainPage");
                //}
                Session["ShoppingBasketItem"] = basket;
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult RemoveFromCart(ShoppingCart cart, int productId, string returnUrl)
        {
            Product product = db.Products.Find(productId);

            if (product != null)
            {
                ProductInBasket productInBasket = new ProductInBasket {
                    Product = product
                };
                cart.RemoveFromCart(productInBasket);
            }
            return(RedirectToAction("Index", new { returnUrl = returnUrl }));
        }
        public ActionResult AddCount(int id)
        {
            if (Session["ShoppingBasketItem"] != null)
            {
                List <ProductInBasket> productsInBasket = Session["ShoppingBasketItem"] as List <ProductInBasket>;

                int idd = productsInBasket.FindIndex(p => p.product.Id == id);

                ProductInBasket item = productsInBasket[idd];
                item.ProductCount++;
                productsInBasket[idd]         = item;
                Session["ShoppingBasketItem"] = productsInBasket;
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult SubCount(int id)
        {
            if (Session["ShoppingBasketItem"] != null)
            {
                List <ProductInBasket> productsInBasket = Session["ShoppingBasketItem"] as List <ProductInBasket>;

                int idd = productsInBasket.FindIndex(p => p.product.Id == id);

                ProductInBasket item = productsInBasket[idd];
                if (item.ProductCount == 1)
                {
                    productsInBasket.RemoveAt(idd);
                }
                else
                {
                    item.ProductCount--;
                    productsInBasket[idd] = item;
                }
                Session["ShoppingBasketItem"] = productsInBasket;
            }
            return(RedirectToAction("Index"));
        }
 public double GetSumOfBasket()
 {
     return(SumOfCheckInBasket = ProductInBasket
                                 .Aggregate(0.0, (current, next) => current += next.PriceOfProduct));
 }