public IViewComponentResult Invoke() { return(View("~/Features/Shared/Header/Views/Header.cshtml", new HeaderViewModel { TotalItemsInCart = cartProvider.Get().Items?.Count ?? 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); }
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; }
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)); }
public async Task <CartDto> HandleAsync(GetCart query) { var cart = _cartProvider.Get(query.UserId); return(await Task.FromResult(cart == null?null : Map(cart))); }
public async Task <CartDto> GetAsync(Guid userId) { var cart = _cartProvider.Get(userId); return(await Task.FromResult(cart == null?null : Map(cart))); }