public IActionResult DecProductCountOne(int?id) { double productTotal = 0; if (id == null) { return(NotFound()); } List <BasketVM> basketP = new List <BasketVM>(); if (Request.Cookies["basket"] != null) { basketP = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); } BasketVM product = basketP.FirstOrDefault(p => p.Id == id); if (product != null) { product.Count--; } if (product.Count == 0) { basketP.Remove(product); } productTotal = Math.Abs(product.Count) * product.Price; Response.Cookies.Append("basket", JsonConvert.SerializeObject(basketP)); return(PartialView("_ProductCardPartial", basketP)); }
public IActionResult Delete(int?id) { if (id == null) { return(NotFound()); } string existbasket = Request.Cookies["basket"]; List <BasketVM> products = new List <BasketVM>(); if (existbasket != null) { products = JsonConvert.DeserializeObject <List <BasketVM> >(existbasket); } BasketVM product = products.FirstOrDefault(p => p.Id == id); products.Remove(product); string basket = JsonConvert.SerializeObject(products); Response.Cookies.Append("basket", basket, new CookieOptions { MaxAge = TimeSpan.FromDays(14) }); return(RedirectToAction("Basket")); }
public IActionResult IncProductCountOne(int?id) { double productTotal = 0; if (id == null) { return(NotFound()); } List <BasketVM> basket = new List <BasketVM>(); if (Request.Cookies["basket"] != null) { basket = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); } BasketVM product = basket.FirstOrDefault(p => p.Id == id); if (product != null) { product.Count++; } productTotal = Math.Abs(product.Count) * product.Price; Response.Cookies.Append("basket", JsonConvert.SerializeObject(basket)); return(Json(productTotal)); }
public async Task <IActionResult> Index(string username) { if (username == null) { return(NotFound()); } if (username.ToLower().Trim() != User.Identity.Name.ToLower().Trim()) { return(NotFound()); } AppUser user = await _userManager.FindByNameAsync(User.Identity.Name); if (user == null) { return(NotFound()); } List <BookInCart> bookInCarts = _db.BookInCarts.Include(bc => bc.Book).ThenInclude(b => b.BookAuthors).ThenInclude(ba => ba.Author).Include(bc => bc.Book).ThenInclude(b => b.Publisher).Include(bc => bc.AppUser).OrderBy(bc => bc.Id).Where(bc => bc.AppUserId == user.Id).ToList(); //List<BookAuthor> bookAuthors = _db.BookAuthors.Include(ba => ba.Book).Include(ba => ba.Author).ToList(); ViewBag.Currency = _db.Bios.FirstOrDefault().Currency; ViewBag.Total = 0; foreach (BookInCart bookInCart in bookInCarts) { } BasketVM model = new BasketVM { BookInCarts = bookInCarts //BookAuthors = bookAuthors }; return(View(model)); }
public IActionResult DeleteFromBasket(int?id) { if (id == null) { return(NotFound()); } ViewBag.Total = 0; List <BasketVM> oldProducts = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); if (oldProducts == null) { return(NotFound()); } BasketVM deletedProduct = oldProducts.FirstOrDefault(p => p.Id == id); if (deletedProduct == null) { return(NotFound()); } oldProducts.Remove(deletedProduct); Response.Cookies.Append("basket", JsonConvert.SerializeObject(oldProducts)); return(PartialView("_BasketPartial", oldProducts)); }
public async Task <IActionResult> AddBasket(int id) { Product product = await _db.Products.FindAsync(id); if (product == null) { return(NotFound()); } List <BasketVM> basket; if (Request.Cookies["basket"] != null) { basket = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); } else { basket = new List <BasketVM>(); } BasketVM isExist = basket.FirstOrDefault(p => p.Id == id); if (isExist == null) { basket.Add(new BasketVM { Id = id, Count = 1 }); } else { isExist.Count += 1; } Response.Cookies.Append("basket", JsonConvert.SerializeObject(basket)); return(RedirectToAction(nameof(Index))); }
public IActionResult Delete(int id) { List <BasketVM> basket = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); BasketVM pro = basket.FirstOrDefault(p => p.Id == id); basket.Remove(pro); Response.Cookies.Append("basket", JsonConvert.SerializeObject(basket)); return(RedirectToAction(nameof(Basket))); }
public async Task <IActionResult> AddBasket(int?id) { if (id == null) { return(NotFound()); } if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Login", "Account")); } Product product = await _db.Products.FindAsync(id); if (product == null) { return(NotFound()); } List <BasketVM> products; if (Request.Cookies["basket"] == null) { products = new List <BasketVM>(); } else { products = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); } BasketVM existProduct = products.FirstOrDefault(p => p.Id == id && p.UserName == User.Identity.Name); if (existProduct == null) { BasketVM newProduct = new BasketVM { Id = product.Id, Count = 1, UserName = User.Identity.Name }; products.Add(newProduct); } else { existProduct.Count++; } string basket2 = JsonConvert.SerializeObject(products); Response.Cookies.Append("basket", basket2, new CookieOptions { MaxAge = TimeSpan.FromMinutes(20) }); return(Json(products.Where(p => p.UserName == User.Identity.Name).Count())); //return RedirectToAction("Index"); }
public IActionResult ProductCountMinusAxious(int?id) { double basketTotalPrice = 0; double productTotalPrice = 0; string basket = Request.Cookies["fbasket"]; List <BasketVM> basketProducts = JsonConvert.DeserializeObject <List <BasketVM> >(basket); BasketVM product = basketProducts.FirstOrDefault(p => p.Id == id); if (product.BasketCount > 1) { product.BasketCount--; } else { basketProducts.Remove(product); } int basketCount = product.BasketCount; foreach (var basketProduct in basketProducts.Where(x => x.UserName == User.Identity.Name)) { Product dbProduct = _db.Products.FirstOrDefault(x => x.Id == basketProduct.Id); if (dbProduct != null) { basketProduct.Price = dbProduct.Price; basketProduct.Image = dbProduct.Image; basketProduct.Title = dbProduct.Title; basketProduct.DbCount = dbProduct.Count; } basketProduct.ProductTotalPrice = basketProduct.BasketCount * basketProduct.Price; if (basketProduct.Id == id) { productTotalPrice = basketProduct.ProductTotalPrice; } basketTotalPrice += basketProduct.ProductTotalPrice; } string fbasket = JsonConvert.SerializeObject(basketProducts); Response.Cookies.Append("fbasket", fbasket, new CookieOptions { MaxAge = TimeSpan.FromDays(14) }); var anonymObject = new { BasketProducts = basketProducts, ProductBasketCount = basketCount, BasketTotalPrice = basketTotalPrice, ProductTotalPrice = productTotalPrice }; return(Ok(anonymObject)); }
public IActionResult DecProductCount(int id) { List <BasketVM> basket = new List <BasketVM>(); basket = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); BasketVM incPro = basket.FirstOrDefault(b => b.Id == id); if (incPro != null && incPro.Count > 1) { incPro.Count--; } Response.Cookies.Append("basket", JsonConvert.SerializeObject(basket)); return(RedirectToAction(nameof(Basket))); }
/// <summary> /// Adding equipment to customer basket and calculating it's price considering rental days. Saving it memorycache. /// </summary> /// <param name="model">Basket item model includes customerId, day, price and equipment</param> /// <returns>Adding result</returns> public JsonResult AddEquipmentToBasket(BasketItemVM model) { ServiceResult AddEquipmentToBasketResult = new ServiceResult() { Type = ResultType.UnKnown, Message = "Something went wrong" }; try { var result = CalculateRentPrice(model); var hasCustomerBasket = memoryCache.TryGetValue(model.CustomerId, out BasketVM customerBasket); if (!hasCustomerBasket) { customerBasket = new BasketVM() { CustomerId = model.CustomerId, BasketItems = new List <BasketItemVM>() }; memoryCache.Set(model.CustomerId, customerBasket); } customerBasket.BasketItems.Add(new BasketItemVM() { CustomerId = model.CustomerId, Day = model.Day, Point = result.Point, Price = result.Price, Equipment = new EquipmentVM { Id = model.Equipment.Id, Name = model.Equipment.Name, Type = model.Equipment.Type } }); AddEquipmentToBasketResult.Type = ResultType.Success; AddEquipmentToBasketResult.Message = "Item Added To Basket Succesfully"; } catch { AddEquipmentToBasketResult.Type = ResultType.Error; AddEquipmentToBasketResult.Message = "Error Occured While Adding Equiptment To Basket"; } return(Json(AddEquipmentToBasketResult)); }
public IActionResult GetProductCount(int?id) { List <BasketVM> basket = new List <BasketVM>(); if (Request.Cookies["basket"] != null) { basket = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); } BasketVM product = basket.FirstOrDefault(p => p.Id == id); if (product.Count == 0) { return(NotFound()); } return(Json(product.Count)); }
public ActionResult Basket() { string client = System.Web.HttpContext.Current.User.Identity.Name; BasketVM result = new BasketVM(); BasketDM basket = _mappers.ToBasketDM.Map <BasketDTO, BasketDM>(_clientService.GetBasket(client)); result.Basket = basket; result.Clothes = new List <ClothDM>(); foreach (var i in basket.Products) { if (i.Table == DL.Entities.SkinShop.Goods.Cloth) { result.Clothes.Add(_mappers.ToClothDM.Map <ClothDTO, ClothDM>(_adminService.GetCloth(i.FromTableId))); } } return(View(result)); }
public IActionResult DeleteProduct(int id) { List <BasketVM> basket = new List <BasketVM>(); basket = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); if (basket == null) { return(NotFound()); } BasketVM removedItem = basket.FirstOrDefault(b => b.Id == id); if (removedItem != null) { basket.Remove(removedItem); } Response.Cookies.Append("basket", JsonConvert.SerializeObject(basket)); return(RedirectToAction(nameof(Basket))); }
private async Task DecreaseProductCount(Product dbProduct, BasketVM basketPro) { dbProduct.Count -= basketPro.Count; await _db.SaveChangesAsync(); }
public async Task <IActionResult> Sale(BasketVM info) { AppUser user = await _userManager.FindByNameAsync(User.Identity.Name); List <BookInCart> bookInCarts = _db.BookInCarts.Include(bc => bc.Book).ThenInclude(b => b.Publisher).Include(bc => bc.AppUser).OrderBy(bc => bc.Id).Where(bc => bc.AppUserId == user.Id).ToList(); ViewBag.Currency = _db.Bios.FirstOrDefault().Currency; Sale sale = new Sale(); decimal total = 0; if (Request.Form["Type"].ToString().ToLower() == "metro") { sale.Date = DateTime.Now; sale.AppUserId = user.Id; sale.PhoneNumber = info.PhoneNumber; sale.DeliveryType = Request.Form["Type"]; sale.DeliveryLocation = Request.Form["Metro"]; } else if (Request.Form["Type"].ToString().ToLower() == "şəhər daxili") { sale.Date = DateTime.Now; sale.AppUserId = user.Id; sale.PhoneNumber = info.PhoneNumber; sale.DeliveryType = Request.Form["Type"]; sale.DeliveryLocation = Request.Form["City"]; total = 2; } else if (Request.Form["Type"].ToString().ToLower() == "rayon") { sale.Date = DateTime.Now; sale.AppUserId = user.Id; sale.PhoneNumber = info.PhoneNumber; sale.DeliveryType = Request.Form["Type"]; sale.DeliveryLocation = Request.Form["Region"]; total = 2; } List <SaleBook> saleBooks = new List <SaleBook>(); int i = 0; int a; foreach (BookInCart bookInCart in bookInCarts) { if (int.TryParse(Request.Form["Count"][i], out a)) { if (bookInCart.Book.Publisher.Discount <= 0) { saleBooks.Add(new SaleBook { SaleId = sale.Id, Count = int.Parse(Request.Form["Count"][i]), Price = decimal.Round((bookInCart.Book.Price * ViewBag.Currency), 2), BookId = bookInCart.Book.Id, AppUserId = user.Id }); } else { saleBooks.Add(new SaleBook { SaleId = sale.Id, Count = int.Parse(Request.Form["Count"][i]), Price = decimal.Round((bookInCart.Book.Price * ViewBag.Currency * ((decimal)(100 - bookInCart.Book.Publisher.Discount) / 100)), 2), BookId = bookInCart.Book.Id, AppUserId = user.Id }); } if (bookInCart.Book.Publisher.Discount <= 0) { total += decimal.Round((bookInCart.Book.Price * ViewBag.Currency), 2) * int.Parse(Request.Form["Count"][i]); } else { total += decimal.Round((bookInCart.Book.Price * ViewBag.Currency * ((decimal)(100 - bookInCart.Book.Publisher.Discount) / 100)), 2) * int.Parse(Request.Form["Count"][i]); } Book bookCount = _db.Books.FirstOrDefault(b => b.Id == bookInCart.BookId); if (bookCount.Count != 0) { if (bookCount.Count > int.Parse(Request.Form["Count"][i])) { bookCount.Count -= int.Parse(Request.Form["Count"][i]); } else { bookCount.Count = 0; } } bookCount.SaleCount += int.Parse(Request.Form["Count"][i]); i++; _db.BookInCarts.Remove(bookInCart); } } sale.Total = total; sale.SaleBooks = saleBooks; await _db.Sales.AddAsync(sale); await _db.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); }
public IActionResult AddBasket(int?id) { double basketTotalPrice = 0; if (id == null) { return(NotFound()); } if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Login", "Account")); } Product dbproduct = _db.Products.FirstOrDefault(x => x.Id == id); if (dbproduct == null) { return(NotFound()); } List <BasketVM> basketProducts; if (Request.Cookies["fbasket"] == null) { basketProducts = new List <BasketVM>(); } else { basketProducts = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["fbasket"]); } BasketVM existProduct = basketProducts.FirstOrDefault(p => p.Id == id && p.UserName == User.Identity.Name); if (existProduct == null) { BasketVM newproduct = new BasketVM { Id = dbproduct.Id, BasketCount = 1, UserName = User.Identity.Name }; basketProducts.Add(newproduct); } else { existProduct.BasketCount++; } foreach (var basketProduct in basketProducts.Where(x => x.UserName == User.Identity.Name)) { Product dbProduct = _db.Products.FirstOrDefault(x => x.Id == basketProduct.Id); if (dbProduct != null) { basketProduct.Price = dbProduct.Price; basketProduct.Image = dbProduct.Image; basketProduct.Title = dbProduct.Title; basketProduct.DbCount = dbProduct.Count; } basketProduct.ProductTotalPrice = basketProduct.BasketCount * basketProduct.Price; basketTotalPrice += basketProduct.ProductTotalPrice; } string fbasket = JsonConvert.SerializeObject(basketProducts); Response.Cookies.Append("fbasket", fbasket, new CookieOptions { MaxAge = TimeSpan.FromDays(14) }); var anonymObject = new { BasketTotalPrice = basketTotalPrice, BasketProductCount = basketProducts.Where(p => p.UserName == User.Identity.Name).Count() }; return(Ok(anonymObject)); }
public IActionResult ProductFilter(int?PriceFrom, int?PriceTo, int?CategoryId, int?BrandId, int?MechanismId, int?WaterProtectionId, int?BandTypeId, int?CaseThickId, int?GlassTypeId) { FilterOptionsVM optionsVM = new FilterOptionsVM(); var result = _context.Products.Where(p => p.HasDeleted == false) .Include(p => p.ProductImages).Include(p => p.Brand) .Include(p => p.Mechanism).Include(p => p.WaterProtection) .Include(p => p.GlassType).Include(p => p.CaseThick) .Include(p => p.BandType).Include(p => p.ProductCategories) .ThenInclude(p => p.Category).AsQueryable(); if (PriceFrom != null) { result = result.Where(x => x.Price >= PriceFrom); optionsVM.PriceFrom = PriceFrom; } if (PriceTo != null) { result = result.Where(x => x.Price <= PriceTo); optionsVM.PriceTo = PriceTo; } if (CategoryId != null) { result = result.Where(x => x.ProductCategories.Select(pc => pc.CategoryId == CategoryId).FirstOrDefault()); optionsVM.CategoryId = CategoryId; } if (BrandId != null) { result = result.Where(x => x.BrandId == BrandId); optionsVM.BrandId = BrandId; } if (MechanismId != null) { result = result.Where(x => x.MechanismId == MechanismId); optionsVM.MechanismId = MechanismId; } if (WaterProtectionId != null) { result = result.Where(x => x.WaterProtectionId == WaterProtectionId); optionsVM.WaterProtectionId = WaterProtectionId; } if (BandTypeId != null) { result = result.Where(x => x.BandTypeId == BandTypeId); } if (CaseThickId != null) { result = result.Where(x => x.CaseThickId == CaseThickId); optionsVM.CaseThicksId = CaseThickId; } if (GlassTypeId != null) { result = result.Where(x => x.GlassTypeId == GlassTypeId); optionsVM.GlassTypeId = GlassTypeId; } ProductPartialVM model = new ProductPartialVM(); List <BasketVM> filteredProducts = new List <BasketVM>(); foreach (Product item in result) { BasketVM basketVM = new BasketVM { Id = item.Id, Model = item.Model, WatchCode = item.WatchCode, Price = item.Price, Image = item.Image, Discount = item.Discount }; filteredProducts.Add(basketVM); } optionsVM.BandTypeId = BandTypeId; Response.Cookies.Append("filterOptions", JsonConvert.SerializeObject(optionsVM)); Response.Cookies.Append("filter", JsonConvert.SerializeObject(filteredProducts)); return(RedirectToAction("Index", "Product")); }
public IActionResult Index(int?id, int?page) { ViewBag.Mechanisms = _context.Mechanisms.Where(m => m.HasDeleted == false).ToList(); ViewBag.CaseThicks = _context.CaseThicks.Where(m => m.HasDeleted == false).ToList(); ViewBag.GlassTypes = _context.GlassTypes.Where(m => m.HasDeleted == false).ToList(); ViewBag.BandTypes = _context.BandTypes.Where(m => m.HasDeleted == false).ToList(); ViewBag.WaterProtection = _context.WaterProtections.ToList(); ViewBag.Categories = _context.Categories.ToList(); ViewBag.Brands = _context.Brands.Where(b => b.HasDeleted == false).ToList(); List <BasketVM> products = new List <BasketVM>(); if (id != null) { //Response.Cookies.Delete("filter"); //Response.Cookies.Append("filter",) ViewBag.PageCount = Decimal.Ceiling((decimal)_context.Products .Where(t => t.HasDeleted == false && t.BrandId == id).Count() / 8); ViewBag.Page = page; if (page == null) { //Response.Cookies.Append("filter",Json) var pr = _context.Products.Where(t => t.HasDeleted == false && t.BrandId == id).Take(8).ToList(); foreach (Product item in pr) { BasketVM basketVM = new BasketVM { Id = item.Id, Model = item.Model, WatchCode = item.WatchCode, Price = item.Price, Image = item.Image, Discount = item.Discount }; products.Add(basketVM); } return(View(products)); } var pro = _context.Products.Where(t => t.HasDeleted == false && t.BrandId == id).Skip(((int)page - 1) * 8).Take(8).ToList(); foreach (Product item in pro) { BasketVM basketVM = new BasketVM { Id = item.Id, Model = item.Model, WatchCode = item.WatchCode, Price = item.Price, Image = item.Image, Discount = item.Discount }; products.Add(basketVM); } return(View(products)); } //List<BasketVM> basketproducts = new List<BasketVM>(); //if (Request.Cookies["basket"] != null) //{ // basketproducts = JsonConvert.DeserializeObject<List<BasketVM>>(Request.Cookies["basket"]); //} //ViewBag.BasketCount = basketproducts.Count(); //if (Request.Cookies["filter"] != null) //{ //} if (Request.Cookies["filter"] != null) { FilterOptionsVM optionsVM = new FilterOptionsVM(); optionsVM = JsonConvert.DeserializeObject <FilterOptionsVM>(Request.Cookies["filterOptions"]); ViewBag.PriceFrom = optionsVM.PriceFrom; ViewBag.PriceTo = optionsVM.PriceTo; ViewBag.CategoryId = optionsVM.CategoryId; ViewBag.BrandId = optionsVM.BrandId; ViewBag.MechanismId = optionsVM.MechanismId; ViewBag.WaterProtectionId = optionsVM.WaterProtectionId; ViewBag.BandTypeId = optionsVM.BandTypeId; ViewBag.CaseThicksId = optionsVM.CaseThicksId; ViewBag.GlassTypeId = optionsVM.GlassTypeId; products = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["filter"]); ViewBag.PageCount = Decimal.Ceiling((decimal)products.Count() / 8); ViewBag.Page = page; if (page == null) { var pr = products.Take(8).ToList(); return(View(pr)); } var produ = products.Skip(((int)page - 1) * 8).Take(8).ToList(); return(View(produ)); } ViewBag.PageCount = Decimal.Ceiling((decimal)_context.Products .Where(t => t.HasDeleted == false).Count() / 8); ViewBag.Page = page; if (page == null) { var pr = _context.Products.Where(t => t.HasDeleted == false).Take(8).ToList(); foreach (Product item in pr) { BasketVM basketVM = new BasketVM { Id = item.Id, Model = item.Model, WatchCode = item.WatchCode, Price = item.Price, Image = item.Image, Discount = item.Discount }; products.Add(basketVM); } return(View(products)); } var prod = _context.Products.Where(t => t.HasDeleted == false).Skip(((int)page - 1) * 8).Take(8).ToList(); foreach (Product item in prod) { BasketVM basketVM = new BasketVM { Id = item.Id, Model = item.Model, WatchCode = item.WatchCode, Price = item.Price, Image = item.Image, Discount = item.Discount }; products.Add(basketVM); } return(View(products)); }
public async Task <IActionResult> AddToBasket(int?id, int?count) { if (id == null) { return(NotFound()); } Product product = await _context.Products.FindAsync(id); if (product == null) { return(NotFound()); } List <BasketVM> products; if (Request.Cookies["basket"] == null) { products = new List <BasketVM>(); } else { products = JsonConvert.DeserializeObject <List <BasketVM> >(Request.Cookies["basket"]); } BasketVM isExist = products.FirstOrDefault(p => p.Id == id); if (isExist == null && count == null) { BasketVM newProduct = new BasketVM() { Id = product.Id, Count = 1, Image = product.Image, Model = product.Model, Price = product.Price - product.Price * product.Discount / 100, WatchCode = product.WatchCode }; products.Add(newProduct); } else if (isExist == null && count != null) { BasketVM newProduct = new BasketVM() { Id = product.Id, Count = (int)count, Image = product.Image, Model = product.Model, Price = product.Price, WatchCode = product.WatchCode }; products.Add(newProduct); } else if (isExist != null && count != null) { isExist.Count += (int)count; } else { isExist.Count++; } foreach (BasketVM prod in products) { ViewBag.BasketTotal += prod.Price * prod.Count; } ViewBag.BasketCount = products.Count(); Response.Cookies.Append("basket", JsonConvert.SerializeObject(products)); //products = JsonConvert.DeserializeObject<List<BasketVM>>(Request.Cookies["basket"]); return(PartialView("_BasketPartial", products)); }