/// <summary>
        /// Created by Michael Takrama
        /// 05/09/2017
        ///
        /// Populates Product/Index flyout
        /// </summary>
        /// <returns></returns>
        public CartPageModel ExtractCartInformation()
        {
            var userName  = User.Identity.Name;
            var pageModel = new CartPageModel();

            try
            {
                pageModel.ItemsInCart    = _userCartManager.RetrieveUserCart(userName);
                pageModel.SavedOrderList = _orderManager.RetrieveSaveOrders(userName);
            }
            catch
            {
                Debug.WriteLine("Cart Load Failed");
                return(new CartPageModel
                {
                    ItemsInCart = new List <UserCartLine>(),
                    SavedOrderList = new List <int>()
                });
            }

            if (pageModel != null)
            {
                return(pageModel);
            }
            else
            {
                return(new CartPageModel
                {
                    ItemsInCart = new List <UserCartLine>(),
                    SavedOrderList = new List <int>()
                });
            }
        }
Beispiel #2
0
        public ActionResult CartPage(ContentModel model)
        {
            var cartModel = new CartPageModel();

            var currentCart = CurrentCart.Create(SnuffoSettings.STORE_NAME);

            cartModel.CartItems = currentCart.GetCartItemsByCookieId().OrderBy(c => c.Name).ToList();
            if (!cartModel.CartItems.IsNullOrEmpty())
            {
                var productIds = cartModel.CartItems.Where(c => c.ProductId.HasValue).Select(c => c.ProductId);
                if (productIds.Any())
                {
                    cartModel.Products = UvendiaContext.Products.All(productIds.ToArray()).ToList();
                }
                var ticketSaleIds = cartModel.CartItems.Where(c => c.TicketSaleId.HasValue).Select(c => c.TicketSaleId);
                if (ticketSaleIds.Any())
                {
                    cartModel.TicketsSale = UvendiaContext.TicketSales.All(ticketSaleIds.ToArray()).ToList();
                }
                cartModel.Subtotal = currentCart.CalculateSubtotal(cartModel.CartItems);
            }

            var checkoutUrl = $"/{CurrentUser.LanguageCode}/cart/checkout-address/";

            cartModel.CheckoutUrl = (!CurrentUser.IsAuthenticated)
                    ? $"/{CurrentUser.LanguageCode}/cart/checkout-login/?returnUrl={checkoutUrl}"
                    : checkoutUrl;

            return(CurrentTemplate(cartModel));
        }
Beispiel #3
0
        public IActionResult Buy(int id, int added)
        {
            var notes = SessionHelper.GetObjectFromJson <List <IdCountModel> >(HttpContext.Session, "notes");

            if (notes != null)
            {
                foreach (var cmodel in notes)
                {
                    if (cmodel.Id == id)
                    {
                        added = cmodel.Count;
                        break;
                    }
                }
            }

            CartPageModel productModel = new CartPageModel();

            if (SessionHelper.GetObjectFromJson <List <CartPageModel> >(HttpContext.Session, "cart") == null)
            {
                List <CartPageModel> cart    = new List <CartPageModel>();
                BookModel            thebook = new ApiGetBooks().ApiFetchedBooks.Where(b => b.Id == id).FirstOrDefault();
                if (thebook != null && thebook.Stock >= added)
                {
                    cart.Add(new CartPageModel {
                        bookModel = thebook, Count = added
                    });
                }
                SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);
            }
            else
            {
                List <CartPageModel> cart = SessionHelper.GetObjectFromJson <List <CartPageModel> >(HttpContext.Session, "cart");
                int       index           = DoesExist(id);
                BookModel thebook;
                if (index != -1)
                {
                    thebook = new ApiGetBooks().ApiFetchedBooks.Where(b => b.Id == id).FirstOrDefault();
                    if (thebook != null && thebook.Stock >= added + cart[index].Count)
                    {
                        cart[index].Count += added;
                    }
                }
                else
                {
                    thebook = new ApiGetBooks().ApiFetchedBooks.Where(b => b.Id == id).FirstOrDefault();
                    if (thebook != null && thebook.Stock >= added)
                    {
                        cart.Add(new CartPageModel {
                            bookModel = thebook, Count = added
                        });
                    }
                }
                SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);
            }
            return(RedirectToAction("Index"));
        }
Beispiel #4
0
        public ActionResult UpdateCart(CartPageModel model)
        {
            var currentCart = CurrentCart.Create(SnuffoSettings.STORE_NAME);

            foreach (var item in model.CartItems)
            {
                currentCart.UpdateQuantity(item.Id, item.Quantity);
            }
            currentCart.UpdateCartQuantityCount();
            return(Redirect($"/{CurrentUser.LanguageCode}/cart"));
        }
Beispiel #5
0
        /// <summary>
        /// William Flood
        ///
        /// Created:
        /// 2017/04/06
        ///
        ///
        /// </summary>
        /// <returns>View(pageModel)</returns>
        public ActionResult ViewCart()
        {
            var userName  = User.Identity.Name;
            var pageModel = new CartPageModel();

            // Access IClaimsIdentity which contains claims
            //IClaimsIdentity claimsIdentity = (IClaimsIdentity)icp.Identity;
            try
            {
                pageModel.ItemsInCart    = _userCartManager.RetrieveUserCart(userName);
                pageModel.SavedOrderList = _orderManager.RetrieveSaveOrders(userName);
            }
            catch
            {
                return(new HttpStatusCodeResult(500));
            }
            return(View(pageModel));
        }
Beispiel #6
0
        public CartPageModel GetCart()
        {
            var model = new CartPageModel();

            var productIds = UserInfo.Cart.Select(x => x.ProductId).ToList();
            var products   = Db.Set <tblProduct>().Include(x => x.tblFiles).Where(x => productIds.Contains(x.Id)).ToList();

            foreach (var product in products)
            {
                var cartItem = UserInfo.Cart.Single(x => x.ProductId == product.Id);
                var item     = new CartProductItem
                {
                    ProductId   = cartItem.ProductId,
                    Price       = cartItem.Price,
                    Count       = cartItem.Count,
                    ProductName = product.Name,
                    Description = CommonUtils.StripHtml(product.Descripton).Trim(),
                    Image       = product.tblFiles.Any() ? product.tblFiles.OrderBy(f => f.Position).First().Path : string.Empty
                };
                model.Products.Add(item);
            }
            return(model);
        }