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); }
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()); } }
/// <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(); }
/// <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)); }