public async Task <EmdItemPrices> GetItemPricesAsync(int regionId, int stationId, IEnumerable <int> types) { var prices = new EmdItemPrices(); prices.Prices = new EveMarketDataRowCollection <EmdItemPrices.ItemPriceEntry>(); var options = new EveMarketDataOptions(); if (stationId > 0) { options.Stations.Add(stationId); } else if (regionId > 0) { options.Regions.Add(regionId); } foreach (int typeId in types) { options.Items.Add(typeId); if (options.Items.Count >= 1000) { var result = (await _eveMarketData.GetItemPriceAsync(options, OrderType.Both).ConfigureAwait(false)).Result; result.Prices.Apply(item => prices.Prices.Add(item)); options.Items.Clear(); } } var finalResult = (await _eveMarketData.GetItemPriceAsync(options, OrderType.Both).ConfigureAwait(false)).Result; finalResult.Prices.Apply(item => prices.Prices.Add(item)); return(prices); }
public async Task GetItemPriceAsync_ValidRequest_ValidResponse() { EmdResponse <ItemPrices> res = await _api.GetItemPriceAsync(_validOptions, OrderType.Buy, MinMax.Min); ItemPrices.ItemPriceEntry entry = res.Result.Prices.First(); Assert.AreEqual(OrderType.Buy, entry.OrderType); Assert.AreEqual(TypeId, entry.TypeId); Assert.AreEqual(RegionId, entry.RegionId); Assert.AreNotEqual(0, entry.Price); Assert.AreNotEqual("", entry.OrderType); Assert.AreNotEqual("", entry.Updated); }