public IActionResult AddCart(int?id) { var cart = _service.newShoppingCartAdd2(id); ViewData["Pack"] = new SelectList(Packaging.GetValues(typeof(Packaging)).Cast <Packaging>()); ViewBag.First = ViewData["Pack"]; return(View(cart)); }
public IActionResult AddCart(int?id, ShoppingCart cartvm) // ez a product id { if (id == null || cartvm == null) { return(RedirectToAction("Index", "Home")); } if (!ModelState.IsValid) { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); foreach (var i in errors) { Debug.WriteLine(i.ToString()); } return(View("AddCart", cartvm)); } var product = _service.GetProductById(id); cartvm.Product = product; if (cartvm.Quantity == 0) { TempData["shortMessage"] = "You can't buy 0 item"; return(RedirectToAction("AddCart", cartvm)); } // hozzadva if (cartvm.Pack > product.Pack) // mivel számozva vannak ezért van növekvő sorrend { TempData["shortMessage"] = "The Package not aviable"; return(RedirectToAction("AddCart", cartvm)); } // pieace 0 , shrink 1 salver 2 try 3 if (product.Quantity < cartvm.Quantity) { TempData["shortMessage"] = "Not enough in stock"; return(RedirectToAction("AddCart", cartvm)); } if (!isValidBuy(cartvm.Pack, cartvm.Quantity, product.Quantity)) { TempData["shortMessage"] = "Not enough in stock"; return(RedirectToAction("AddCart", cartvm)); } //megnézem hogy van e már a kosárban, ha igen akkor más pack nem lehet benne if (HttpContext.Session.Get <List <ShoppingCart> >("CartSessionKey") != default) { var items = HttpContext.Session.Get <List <ShoppingCart> >("CartSessionKey"); foreach (var item in items) { if (item.ProductId == product.Id) { if (item.Pack != cartvm.Pack) { TempData["shortMessage"] = "You can't put different package into your cart"; return(RedirectToAction("AddCart", cartvm)); } } } } if (HttpContext.Session.Get <List <ShoppingCart> >("CartSessionKey") == default) { List <ShoppingCart> p = new List <ShoppingCart>(); ShoppingCart cart = new ShoppingCart() { Quantity = cartvm.Quantity, Name = product.Name, ProductId = product.Id,// a sima idt növelni kell? //Id = product.Id, Pack = cartvm.Pack, TotalPrice = product.NetPrice * cartvm.Quantity * PackNumber(cartvm.Pack, cartvm.Quantity), // felhasználótól bekért adat kell, TotalGrossPrice = product.GrossPrice * cartvm.Quantity * PackNumber(cartvm.Pack, cartvm.Quantity) }; p.Add(cart); HttpContext.Session.Set <List <ShoppingCart> >("CartSessionKey", p); } else { var tmp = HttpContext.Session.Get <List <ShoppingCart> >("CartSessionKey"); // itt list kéne hogy hozzáadom ShoppingCart cart = new ShoppingCart() { Quantity = cartvm.Quantity, Name = product.Name, ProductId = product.Id, //Id = product.Id, Pack = cartvm.Pack, TotalPrice = product.NetPrice * cartvm.Quantity * PackNumber(cartvm.Pack, cartvm.Quantity), // itt a felhasználótól bekért adat kell TotalGrossPrice = product.GrossPrice * cartvm.Quantity * PackNumber(cartvm.Pack, cartvm.Quantity) }; tmp.Add(cart); HttpContext.Session.Set <List <ShoppingCart> > ("CartSessionKey", tmp); } Debug.WriteLine(cartvm.Pack); ViewData["Pack"] = new SelectList(Packaging.GetValues(typeof(Packaging)).Cast <Packaging>()); return(RedirectToAction("Main")); }