コード例 #1
0
        public async Task <bool> Handle(AddItemToBasket request, CancellationToken cancellationToken)
        {
            var basket = await _context.Baskets
                         .FirstOrDefaultAsync(x => x.GoodsId == request.GoodsId && x.UserId == request.UserId, cancellationToken : cancellationToken)
                         .ConfigureAwait(false);

            if (!(await _goodsRepository.ExistAsync(x => x.Id == request.GoodsId)).Data)
            {
                throw new DomainException(ErrorType.GoodsDoesNotExist);
            }

            if (basket == null)
            {
                var item = request.ToModel();
                _basketRepository.Create(item);
            }

            else
            {
                basket.Count += request.Count;
            }

            await _basketRepository.SaveAsync().ConfigureAwait(false);

            return(true);
        }
コード例 #2
0
        public string Do(string consumerId)
        {
            BasketDTO basket = _basketRepository.Get(consumerId);

            if (basket != null)
            {
                return(basket.Id);
            }

            return(_basketRepository.Create(consumerId));
        }
コード例 #3
0
 private void NewBasketCreated()
 {
     A.CallTo(() => _basketRepository.Create(_consumerId))
     .MustHaveHappened();
 }