コード例 #1
0
        public static async Task <QueryResult <string> > Query(Item item)
        {
            Logger.Log("Querying Trade API.");
            QueryResult <string> result = null;

            try
            {
                // TODO: More complex logic for determining bulk vs regular search
                // Maybe also add Fragments to bulk search
                var isBulk = (item.GetType() == typeof(CurrencyItem) || item.GetType() == typeof(DivinationCardItem));

                StringContent body;
                if (isBulk)
                {
                    var bulkQueryRequest = new BulkQueryRequest(item);
                    body = new StringContent(JsonConvert.SerializeObject(bulkQueryRequest, _jsonSerializerSettings), Encoding.UTF8, "application/json");
                }
                else
                {
                    var queryRequest = new QueryRequest(item);
                    body = new StringContent(JsonConvert.SerializeObject(queryRequest, _jsonSerializerSettings), Encoding.UTF8, "application/json");
                }

                var response = await _httpClient.PostAsync(LanguageSettings.Provider.PoeTradeApiBaseUrl + $"{(isBulk ? "exchange" : "search")}/" + SelectedLeague.Id, body);

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    result = JsonConvert.DeserializeObject <QueryResult <string> >(content);

                    var baseUri = isBulk ? LanguageSettings.Provider.PoeTradeExchangeBaseUrl : LanguageSettings.Provider.PoeTradeSearchBaseUrl;
                    result.Uri = baseUri + SelectedLeague.Id + "/" + result.Id;
                }
            }
            catch
            {
                return(null);
            }

            return(result);
        }
コード例 #2
0
ファイル: TradeClient.cs プロジェクト: zhuliguang/Sidekick
        public static async Task<QueryResult<string>> Query(Item item)
        {
            Logger.Log("Querying Trade API.");
            QueryResult<string> result = null;

            try
            {
                // TODO: More complex logic for determining bulk vs regular search
                var isBulk = item.GetType() == typeof(CurrencyItem);

                StringContent body;
                if (isBulk)
                {
                    var bulkQueryRequest = new BulkQueryRequest(item);
                    body = new StringContent(JsonConvert.SerializeObject(bulkQueryRequest, _jsonSerializerSettings), Encoding.UTF8, "application/json");
                }
                else
                {
                    var queryRequest = new QueryRequest(item);
                    body = new StringContent(JsonConvert.SerializeObject(queryRequest, _jsonSerializerSettings), Encoding.UTF8, "application/json");
                }

                var response = await _httpClient.PostAsync($"{(isBulk ? "exchange" : "search")}/" + SelectedLeague.Id, body);

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();
                    result = JsonConvert.DeserializeObject<QueryResult<string>>(content);

                    var baseUri = isBulk ? TradeClient.POE_TRADE_EXCHANGE_BASE_URL : TradeClient.POE_TRADE_SEARCH_BASE_URL;
                    result.Uri = baseUri + SelectedLeague.Id + "/" + result.Id;
                }
            }
            catch
            {
                return null;
            }

            return result;

        }