コード例 #1
0
        public MarketDataResponse GetData(MarketDataRequest request)
        {
            _client.QueryString.Clear();
            _client.QueryString.Add("typeid", request.TypeId);
            _client.QueryString.Add("sethours", request.Duration);

            if (request.SystemId != null)
            {
                _client.QueryString.Add("usesystem", request.SystemId);
            }

            if (request.MinimumQuantity != null)
            {
                _client.QueryString.Add("setminQ", request.MinimumQuantity);
            }

            string result = _client.DownloadString(_host);

            XDocument data = XDocument.Parse(result);

            var responseData = (from item in data.Root.Descendants("quicklook")
                                let sellOrders = item.Descendants("sell_orders").Descendants("order").OrderBy(arg => arg.Element("price").Value)
                                                 let buyOrders = item.Descendants("buy_orders").Descendants("order").OrderByDescending(arg => arg.Element("price").Value)
                                                                 select new MarketDataResponse
            {
                Commodity = item.Element("itemname").Value,
                BuyOrders = buyOrders.Select(order => MarketOrder.Load(order)).ToList(),
                SellOrders = sellOrders.Select(order => MarketOrder.Load(order)).ToList()
            }).FirstOrDefault();

            return(responseData);
        }