public async Task <TradeOfferResponse> CreateTradeOffer(CreateTradeOfferRequest tradeOffer, long userId) { var tradeOfferToCreate = _mapper.Map <TradeOffer>(tradeOffer); tradeOfferToCreate.PosterId = userId; //if (tradeOffer.OfferedItemId == null) //{ // var itemToCreate = _mapper.Map<Item>(tradeOffer.OfferedItem); // await _itemRepository.AddAsync(itemToCreate); // tradeOfferToCreate.OfferedItemId = itemToCreate.Id; //} await _tradeOfferRepository.AddAsync(tradeOfferToCreate); var stats = new List <ItemStatTradeOffer>(); var itemStats = new List <ItemItemStat>(); foreach (var stat in tradeOffer.OfferedItem.Stats) { stats.Add(new ItemStatTradeOffer { ItemStatId = stat.Id, TradeOfferId = tradeOfferToCreate.Id, Value = stat.Value }); itemStats.Add(new ItemItemStat { ItemStatId = stat.Id, ItemId = (long)tradeOfferToCreate.OfferedItemId }); } await _itemItemStatRepository.AddMultipleAsync(itemStats); await _itemStatTradeOfferRepository.AddMultipleAsync(stats); await _tradeOfferRepository.UpdateAsync(tradeOfferToCreate.Id, tradeOfferToCreate); return(_mapper.Map <TradeOfferResponse>(tradeOffer)); }
public async Task <IActionResult> CreateTradeOffer(CreateTradeOfferRequest tradeOffer) { await _tradeOfferService.CreateTradeOffer(tradeOffer, User.GetId()); return(Ok(tradeOffer)); }