public IActionResult Index()
        {
            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var claims         = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            ShoppingCartVM = new ShoppingCartVM()
            {
                OrderHeader = new OrderHeader(),
                CartList    = unitOfWork.ShoppingCart.GetAll(u => u.ApplicatinUserId == claims.Value, includeProperties: "Product")
            };

            ShoppingCartVM.OrderHeader.OrderTotal      = 0;
            ShoppingCartVM.OrderHeader.ApplicationUser = unitOfWork.ApplicationUser.GetFirstOrDefault(u => u.Id == claims.Value, includeProperties: "Organization");

            foreach (var item in ShoppingCartVM.CartList)
            {
                item.Price = StaticDetails.CalculateBooksPrice(item.Count, item.Product.Price, item.Product.Price50, item.Product.Price100);
                ShoppingCartVM.OrderHeader.OrderTotal += (item.Price * item.Count);
                item.Product.ProductDescription        = StaticDetails.ConvertToRawHtml(item.Product.ProductDescription);
                if (item.Product.ProductDescription.Length > 100)
                {
                    item.Product.ProductDescription = item.Product.ProductDescription.Substring(0, 99) + "...";
                }
            }
            return(View(ShoppingCartVM));
        }
        public IActionResult Plus(int cartId)
        {
            var cart = unitOfWork.ShoppingCart.GetFirstOrDefault(u => u.ShoppingCartId == cartId, includeProperties: "Product");

            cart.Count += 1;
            cart.Price  = StaticDetails.CalculateBooksPrice(cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100);
            unitOfWork.Save();
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Minus(int cartId)
        {
            var cart  = unitOfWork.ShoppingCart.GetFirstOrDefault(u => u.ShoppingCartId == cartId, includeProperties: "Product");
            var count = unitOfWork.ShoppingCart.GetAll(u => u.ApplicatinUserId == cart.ApplicatinUserId).ToList().Count();

            if (cart.Count == 1)
            {
                unitOfWork.ShoppingCart.RemoveEntity(cart);
                HttpContext.Session.SetObject(StaticDetails.SessionShoppingCart, count - 1);
            }
            else
            {
                cart.Count -= 1;
                cart.Price  = StaticDetails.CalculateBooksPrice(cart.Count, cart.Product.Price, cart.Product.Price50, cart.Product.Price100);
            }
            unitOfWork.Save();
            return(RedirectToAction(nameof(Index)));
        }