Exemplo n.º 1
0
        public async Task <IActionResult> OnPostAddOrder(int id)
        {
            var d     = LoginManagement.TempUser.ShoppingCart.ProductOrders;
            var order = d.FirstOrDefault(po => po.Products.Any(pr => pr.ProductId == id));

            if (order.Quantity == 0)
            {
                order.Quantity = order.Products.Count;
            }
            order.Quantity++;
            LoginManagement.TempUser.ShoppingCart.ProductOrders = d;

            _lojaVirtualCtxt.Entry(LoginManagement.TempUser);
            await _lojaVirtualCtxt.SaveChangesAsync();

            return(Page());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> OnPostAddItem(int product)
        {
            if (!LoginManagement.IsLogged)
            {
                return(RedirectToPage("/User/Login"));
            }


            if (LoginManagement.TempUser.ShoppingCart == null)
            {
                LoginManagement.TempUser.ShoppingCart = new ShoppingCart();
            }


            if (LoginManagement.TempUser.ShoppingCart.ProductOrders == null)
            {
                LoginManagement.TempUser.ShoppingCart.ProductOrders = new List <ProductOrder>();
            }

            Product prod;

            using (LojaVirtualContext ctxt = new LojaVirtualContext())
            {
                prod = await ctxt.Products
                       .Where(x => x.ProductId == product)
                       .SingleOrDefaultAsync();

                var orders = LoginManagement.TempUser.ShoppingCart.ProductOrders;

                ProductOrder order = orders
                                     .SingleOrDefault(o => o.Products
                                                      .Any(p => p.ProductId == prod.ProductId));

                if (order == null)
                {
                    order          = new ProductOrder();
                    order.Products = new List <Product>();
                    order.Products.Add(prod);
                    orders.Add(order);
                }
                else
                {
                    if (order.Quantity == 0 && Quantity <= 0)
                    {
                        order.Quantity = 1;
                    }
                    else
                    {
                        order.Quantity += Quantity;
                    }
                }


                LoginManagement.TempUser.ShoppingCart.ProductOrders = orders;

                ctxt.Entry(LoginManagement.TempUser);
                await ctxt.SaveChangesAsync();
            }
            //todo: redirecto to a temporary Message then to lastPage
            return(RedirectToPage(new { id = product }));
        }