コード例 #1
0
 public IViewComponentResult Invoke()
 {
     return(View("~/Features/Shared/Header/Views/Header.cshtml", new HeaderViewModel
     {
         TotalItemsInCart = cartProvider.Get().Items?.Count ?? 0
     }));
 }
コード例 #2
0
        public async Task AddProductAsync(Guid userId, Guid productId)
        {
            var product = await _productRepository.GetAsync(productId);

            if (product == null)
            {
                throw new Exception($"Product with id: {productId} was not found.");
            }
            var cart = _cartProvider.Get(userId);

            cart.AddProduct(product);
            _cartProvider.Update(userId, cart);
        }
コード例 #3
0
        public async Task HandleAsync(AddItemToCart command)
        {
            var product = await _productRepository.GetAsync(command.ProductId);

            if (product == null)
            {
                throw new ArgumentException($"Product with id: '{command.ProductId}' was not found.",
                                            nameof(command.ProductId));
            }

            var cart = _cartProvider.Get(command.UserId) ?? new Cart(command.UserId);

            cart.AddItem(product, command.Quantity);
            _cartProvider.Set(cart);
            await Task.CompletedTask;
        }
コード例 #4
0
        public IViewComponentResult Invoke()
        {
            var savedItems = savedItemsProvider.Get();
            var books      = provider.Get();
            var cart       = cartProvider.Get();
            var vm         = new BookListViewData
            {
                CategoryName = categoryMenuProvider.Get().FirstOrDefault(x => x.Name.ToSlug() == currentCategoryProvider.Get())?.Name,
                Books        = books.Select(x =>
                {
                    x.IsSaved          = savedItems.Any(i => i == x.Id);
                    x.TotalItemsInCart = cart.Items?.FirstOrDefault(item => item.BookId == x.Id)?.Quantity ?? 0;
                    return(x);
                }).ToArray()
            };

            return(View("~/Features/Search/List/Views/BooksList.cshtml", vm));
        }
コード例 #5
0
ファイル: GetCartHandler.cs プロジェクト: garild/mystore
        public async Task <CartDto> HandleAsync(GetCart query)
        {
            var cart = _cartProvider.Get(query.UserId);

            return(await Task.FromResult(cart == null?null : Map(cart)));
        }
コード例 #6
0
        public async Task <CartDto> GetAsync(Guid userId)
        {
            var cart = _cartProvider.Get(userId);

            return(await Task.FromResult(cart == null?null : Map(cart)));
        }