コード例 #1
0
        public DougResponse Buy(User user, string itemId)
        {
            var item = _itemRepository.GetItem(itemId);

            var price = _governmentService.GetPriceWithTaxes(item);

            if (!user.HasEnoughCreditsForAmount(price))
            {
                return(new DougResponse(user.NotEnoughCreditsForAmountResponse(price)));
            }

            _creditsRepository.RemoveCredits(user.Id, price);

            _inventoryRepository.AddItem(user, item);

            _governmentService.CollectSalesTaxes(item);

            return(new DougResponse());
        }