Пример #1
0
        public int AddToCart(IUnitOfWork unitOfWork, ICartService cartService, Product product)
        {
            var cartItem = cartService.ODataQueryable().SingleOrDefault(
                    c => c.CartId == ShoppingCartId
                    && c.ProductId == product.Id);

            if (cartItem == null)
            {
                cartItem = new Cart
                {
                    CartId = ShoppingCartId,
                    ProductId = product.Id,
                    Count = 1,
                    DateCreated = DateTime.Now
                };
                cartService.Insert(cartItem);
            }
            else
            {
                cartItem.Count++;
                cartService.Update(cartItem);
            }

            //save changes
            unitOfWork.SaveChanges();
            return cartItem.Count;
        }
Пример #2
0
 // remove item from cart
 public int RemoveFromCart(IUnitOfWork unitOfWork, ICartService cartService, int productId)
 {
     var cartItem = cartService.ODataQueryable().Single(
         c => c.CartId == ShoppingCartId
             && c.ProductId == productId);
     //int itemCount = 0;
     //if (cartItem != null)
     //{
     //    if (cartItem.Count > 1)
     //    {
     //        cartItem.Count--;
     //        itemCount = cartItem.Count;
     //        cartService.Update(cartItem);
     //    }
     //    else
     //    {
     cartService.Delete(cartItem);
     //}
     unitOfWork.SaveChanges();
     //}
     return 0;
 }
Пример #3
0
 // update cart
 public int UpdateCart(IUnitOfWork unitOfWork, ICartService cartService, int itemId, int quantity)
 {
     var cartItem = cartService.ODataQueryable().Single(
         c => c.CartId == ShoppingCartId
             && c.ProductId == itemId);
     if (cartItem != null && cartItem.Count > 0)
     {
         if (quantity.Equals(0))
             cartService.Delete(cartItem);
         else
         {
             cartItem.Count = quantity;
             cartService.Update(cartItem);
         }
         unitOfWork.SaveChanges();
     }
     return quantity;
 }
Пример #4
0
 public void MigrateCart(IUnitOfWork unitOfWork, ICartService cartService, string userName)
 {
     var shoppingCart = cartService.ODataQueryable().Where(x => x.CartId == ShoppingCartId);
     foreach (var item in shoppingCart)
     {
         item.CartId = userName;
     }
     unitOfWork.SaveChanges();
 }
Пример #5
0
 public decimal GetTotal(ICartService cartService)
 {
     decimal? total = (from k in cartService.ODataQueryable()
                       where k.CartId == ShoppingCartId
                       select (int?)k.Count * k.Product.Price).Sum();
     return total ?? decimal.Zero;
 }
Пример #6
0
 public int GetCount(ICartService cartService)
 {
     int? count = cartService.ODataQueryable().Where(x => x.CartId == ShoppingCartId).Count();
     return count ?? 0;
 }
Пример #7
0
 public List<Cart> GetCartItems(ICartService cartService, IProductService productService, ICategoryService categoryService)
 {
     var results = new List<Cart>();
     var cartItems = cartService.ODataQueryable().Where(x => x.CartId == ShoppingCartId).ToList();
     foreach (var item in cartItems)
     {
         item.Product = productService.GetProductById(item.ProductId);
         item.CategoryAlias = categoryService.GetCategoryById(item.Product.CategoryId).Alias;
         results.Add(item);
     }
     return results;
 }
Пример #8
0
 // empty cart
 public void EmptyCart(IUnitOfWork unitOfWork, ICartService cartService)
 {
     var cartItems = cartService.ODataQueryable().Where(x => x.CartId == ShoppingCartId);
     foreach (var cartItem in cartItems)
     {
         cartService.Delete(cartItem);
     }
     unitOfWork.SaveChanges();
 }