public async Task <Cart> GetCartAsync(string userName) { Ensure.String.IsNotNullOrWhiteSpace(userName, nameof(userName)); var cartSpec = new CartWithItemsSpecification(userName); return((await ListAsync(cartSpec)).FirstOrDefault()); }
public async Task RemoveItem(int cartId, int cartItemId) { var spec = new CartWithItemsSpecification(cartId); var cart = (await _cartRepository.GetAsync(spec)).FirstOrDefault(); cart.RemoveItem(cartItemId); await _cartRepository.UpdateAsync(cart); }
public void MatchesNoCartIfIdNotPresent() { int badId = -1; var spec = new CartWithItemsSpecification(badId); Assert.False(GetTestCartCollection() .AsQueryable() .Any(spec.Criteria)); }
public void MatchesCartWithGivenBuyerId() { var spec = new CartWithItemsSpecification(_testBuyerId); var result = GetTestCartCollection() .AsQueryable() .FirstOrDefault(spec.Criteria); Assert.NotNull(result); Assert.Equal(_testBuyerId, result.BuyerId); }
public async Task <CartViewModel> GetOrCreateCartForUser(string userName) { var cartSpec = new CartWithItemsSpecification(userName); var cart = (await ListAsync(cartSpec)).FirstOrDefault(); if (cart == null) { return(await CreateCartForUser(userName)); } return(CreateViewModelFromCart(cart)); }
public async Task TransferCartAsync(string anonymousId, string userName) { Ensure.String.IsNotNullOrWhiteSpace(anonymousId, nameof(anonymousId)); Ensure.String.IsNotNullOrWhiteSpace(userName, nameof(userName)); var cartSpec = new CartWithItemsSpecification(anonymousId); var cart = (await ListAsync(cartSpec)).FirstOrDefault(); if (cart == null) { return; } cart.TransferCart(userName); await UpdateAsync(cart); }
public async Task <int> GetCartItemCountAsync(string userName) { Ensure.String.IsNotNullOrWhiteSpace(userName, nameof(userName)); var cartSpec = new CartWithItemsSpecification(userName); var cart = (await ListAsync(cartSpec)).FirstOrDefault(); if (cart == null) { return(0); } int count = cart.Items.Sum(i => i.Quantity); return(count); }
public async Task <Result <UserCartViewModel> > Handle(GetUserCartQuery request, CancellationToken cancellationToken) { var specification = new CartWithItemsSpecification(request.userId); var userCart = (await _cartRepository.ListAsync(specification)).FirstOrDefault(); if (userCart == null) { var message = new List <string> { "" }; return(Result <UserCartViewModel> .Failure(message)); } var data = await CreateViewModelFromCart(userCart); return(Result <UserCartViewModel> .Success(data)); }
public async Task <Cart> GetByUserNameAsync(string userName) { var spec = new CartWithItemsSpecification(userName); return((await GetAsync(spec)).FirstOrDefault()); }