예제 #1
0
        private async Task <Result <Cart> > StartNewCartAsync(EntityId customerId)
        {
            var newCart = new Cart(customerId);

            var addResult = await repository.AddAsync(newCart);

            if (addResult.IsFailure)
            {
                return(Result.Fail <Cart>(addResult.Error));
            }

            return(Result.Ok(newCart));
        }
예제 #2
0
            public async Task <Result <UserCartViewModel> > Handle(CreateCartForUserCommand command, CancellationToken cancellationToken)
            {
                var cart = new eStore.Domain.Entities.CartAggregate.Cart(command.userId);
                await _cartRepository.AddAsync(cart);

                var data = new UserCartViewModel()
                {
                    BuyerId = cart.BuyerId,
                    Id      = cart.Id,
                    Items   = new List <CartItemViewModel>()
                };

                return(Result <UserCartViewModel> .Success(data));
            }
        private async Task <Cart> GetExistingOrCreateNewCart(string userName)
        {
            var cart = await _cartRepository.GetByUserNameAsync(userName);

            if (cart != null)
            {
                return(cart);
            }

            // if it is first attempt create new
            var newCart = new Cart
            {
                UserName = userName
            };

            await _cartRepository.AddAsync(newCart);

            return(newCart);
        }
예제 #4
0
 public async Task <bool> AddCartAsync(Entities.Cart cart)
 {
     return(await _cartRepository.AddAsync(cart));
 }