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); }
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; }