예제 #1
0
        // Helper method to simplify shopping cart calls
/*        public static ShoppingCartService GetCart(Controller controller)
        {
            return GetCart(controller.HttpContext);
        }*/
        public void AddToCart(Product product,int quantity)
        {
            // Get the matching cart and album instances
            var cartItem =
                _unitOfWork.CartRepository.Get(c => c.CartId == ShoppingCartId && c.ProductId == product.Id)
                    .FirstOrDefault();

            if (cartItem == null)
            {
                // Create a new cart item if no cart item exists
                cartItem = new Cart
                {
                    ProductId = product.Id,
                    CartId = ShoppingCartId,
                    Count = quantity,
                    DateCreated = DateTime.Now
                };
                _unitOfWork.CartRepository.Insert(cartItem);
            }
            else
            {
                // If the item does exist in the cart, 
                // then add one to the quantity
                cartItem.Count++;
            }
            // Save changes
            _unitOfWork.Save();
        }
예제 #2
0
        private IEnumerable<CategoryViewModel> GetCategories(Product product, List<Product> products)
        {
            var categoryViewModels = new List<CategoryViewModel>();
            foreach (var category in _categories.Where(c=>c.ParentCategory==null))
            {
                var children = _categories.Where(c=>c.ParentCategory==category).ToList();
                var childrenCategoryViewModel = GetChildrenCategory(product, products, children);
                var categoryViewModel = new CategoryViewModel
                {
                    Id = category.Id.ToString(),
                    Name = category.Name,
                    Active = childrenCategoryViewModel.Any(c => c.Active == "active")
                        ? "active"
                        : (product.CategoryId==category.Id?"active":string.Empty),
                    HasChild = children.Any() ? "haschild" : string.Empty,
                    Total = childrenCategoryViewModel.Sum(c => c.Total)+products.Count(p=>p.CategoryId==category.Id),
                    ChildCategoryViewModels = childrenCategoryViewModel
                };
                categoryViewModels.Add(categoryViewModel);
            }

            return categoryViewModels;
        }
예제 #3
0
        private List<CategoryViewModel> GetChildrenCategory(Product product, List<Product> products, IEnumerable<Category> children)
        {
            var categoryViewModel = new List<CategoryViewModel>();
            foreach (var child in children)
            {
                int total;
                var childCategoryViewModels=new List<CategoryViewModel>();

                var childChildCategories = _categories.Where(c => c.ParentCategory == child).ToList();
                var hasChild = string.Empty;
                if (!childChildCategories.Any())
                {
                    total = products.Count(p => p.CategoryId == child.Id);
                }
                else
                {
                    var childrenCategoryViewModels = GetChildrenCategory(product, products, childChildCategories);
                    total = childrenCategoryViewModels.Sum(c => c.Total);
                    hasChild = "haschild";
                }

                var childViewModel = new CategoryViewModel
                {
                    Id = child.Id.ToString(),
                    Name = child.Name,
                    Active = product.CategoryId == child.Id ? "active" : string.Empty,
                    HasChild=hasChild,
                    Total=total,
                    ChildCategoryViewModels=childCategoryViewModels
                };

                categoryViewModel.Add(childViewModel);
            }
            return categoryViewModel;
        }