Beispiel #1
0
        public async Task <IActionResult> OnPost()
        {
            Memberships     = membershipData.GetMemberships();
            ApplicationUser = await userManager.GetUserAsync(User);

            if (ModelState.IsValid)
            {
                foreach (var cartItem in HttpContext.Session.GetObjectFromJson <List <ShoppingCart> >("CartItems").ToList())
                {
                    OrderDetails.Add(new OrderDetail
                    {
                        Product  = productData.GetProductById(cartItem.Id),
                        Quantity = cartItem.Quantity
                    });

                    //
                    Product           = productData.GetProductById(cartItem.Id);
                    Product.Quantity -= cartItem.Quantity;
                    //
                }

                if (Selected != null)
                {
                    var membership = membershipData.GetMembershipById(Convert.ToInt32(Selected));
                    ApplicationUser.Membership = membership;
                    Order.OrderTotal           = cartBL.MemberOnCheckout(Convert.ToDouble(HttpContext.Session.GetString("TotalPrice")), ApplicationUser);
                }
                else
                {
                    Order.OrderTotal = Convert.ToDouble(HttpContext.Session.GetString("TotalPrice"));
                }
                Order.OrderDetails = OrderDetails;
                Order.UserId       = ApplicationUser.Id;
                //
                Order.DateOrdered = DateTime.Now;
                //
                orderData.CreateOrder(Order);
                orderData.Commit();
                HttpContext.Session.Remove("CartItems");
                return(RedirectToPage("/Order/CheckoutComplete"));
            }
            return(Page());
        }