public async Task <LanguageKey> AddBazaarAsync([FromBody] BazaarRequest bazaarRequest) { var items = _holder.BazaarItems.Values.Where(o => o.BazaarItem !.SellerId == bazaarRequest.CharacterId); if (items.Count() > 10 * (bazaarRequest.HasMedal ? 10 : 1) - 1) { return(LanguageKey.LIMIT_EXCEEDED); } var item = await _itemInstanceDao.FirstOrDefaultAsync(s => s !.Id == bazaarRequest.ItemInstanceId).ConfigureAwait(true); if ((item == null) || (item.Amount < bazaarRequest.Amount) || (bazaarRequest.Amount < 0) || (bazaarRequest.Price < 0)) { throw new ArgumentException(); } Guid itemId; if (item.Amount == bazaarRequest.Amount) { itemId = item.Id; } else { itemId = item.Id; item.Amount -= bazaarRequest.Amount; item = await _itemInstanceDao.TryInsertOrUpdateAsync(item).ConfigureAwait(true); item !.Id = Guid.NewGuid(); } item = await _itemInstanceDao.TryInsertOrUpdateAsync(item).ConfigureAwait(true); var bazaarItem = new BazaarItemDto { Amount = bazaarRequest.Amount, DateStart = SystemTime.Now(), Duration = bazaarRequest.Duration, IsPackage = bazaarRequest.IsPackage, MedalUsed = bazaarRequest.HasMedal, Price = bazaarRequest.Price, SellerId = bazaarRequest.CharacterId, ItemInstanceId = item !.Id }; bazaarItem = await _bazaarItemDao.TryInsertOrUpdateAsync(bazaarItem).ConfigureAwait(true); _holder.BazaarItems.TryAdd(bazaarItem.BazaarItemId, new BazaarLink { BazaarItem = bazaarItem, SellerName = bazaarRequest.CharacterName, ItemInstance = (ItemInstanceDto)item }); return(LanguageKey.OBJECT_IN_BAZAAR); }
public LanguageKey AddBazaar([FromBody] BazaarRequest bazaarRequest) { var items = _holder.BazaarItems.Values.Where(o => o.BazaarItem.SellerId == bazaarRequest.CharacterId); if (items.Count() > 10 * (bazaarRequest.HasMedal ? 10 : 1) - 1) { return(LanguageKey.LIMIT_EXCEEDED); } var item = _itemInstanceDao.FirstOrDefault(s => s.Id == bazaarRequest.ItemInstanceId); if ((item == null) || (item.Amount < bazaarRequest.Amount) || (bazaarRequest.Amount < 0) || (bazaarRequest.Price < 0)) { throw new ArgumentException(); } Guid itemId; if (item.Amount == bazaarRequest.Amount) { itemId = item.Id; } else { itemId = item.Id; item.Amount -= bazaarRequest.Amount; _itemInstanceDao.InsertOrUpdate(ref item); item.Id = Guid.NewGuid(); } _itemInstanceDao.InsertOrUpdate(ref item); var bazaarItem = new BazaarItemDto { Amount = bazaarRequest.Amount, DateStart = SystemTime.Now(), Duration = bazaarRequest.Duration, IsPackage = bazaarRequest.IsPackage, MedalUsed = bazaarRequest.HasMedal, Price = bazaarRequest.Price, SellerId = bazaarRequest.CharacterId, ItemInstanceId = item.Id }; _bazaarItemDao.InsertOrUpdate(ref bazaarItem); _holder.BazaarItems.TryAdd(bazaarItem.BazaarItemId, new BazaarLink { BazaarItem = bazaarItem, SellerName = bazaarRequest.CharacterName, ItemInstance = item.Adapt <ItemInstanceDto>() }); return(LanguageKey.OBJECT_IN_BAZAAR); }
public LanguageKey AddBazaar(BazaarRequest bazaarRequest) { return(Post <LanguageKey>(bazaarRequest)); }
public Task <LanguageKey> AddBazaarAsync([FromBody] BazaarRequest bazaarRequest) => _bazaarService.AddBazaarAsync(bazaarRequest.ItemInstanceId, bazaarRequest.CharacterId, bazaarRequest.CharacterName, bazaarRequest.HasMedal, bazaarRequest.Price, bazaarRequest.IsPackage, bazaarRequest.Duration, bazaarRequest.Amount);
public Task <LanguageKey?> AddBazaarAsync(BazaarRequest bazaarRequest) { return(PostAsync <LanguageKey?>(bazaarRequest)); }