コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }