Пример #1
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
            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());
        }