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"));
        }