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()); }