private AppraisalResult ParseResponse(string response) { // Parse JSON JObject j; try { j = JObject.Parse(response); } catch (JsonReaderException) { return(new AppraisalResult(AppraisalStatus.InternalError, "Invalid server response.")); } // Check error message if (j.TryGetValue("error_message", out var error)) { return(new AppraisalResult(AppraisalStatus.ContentError, error.ToObject <string>())); } var res = new AppraisalResult(AppraisalStatus.Successful) { Kind = j.SelectToken("appraisal.kind").ToObject <string>(), BuyValue = j.SelectToken("appraisal.totals.buy").ToObject <double>(), SellValue = j.SelectToken("appraisal.totals.sell").ToObject <double>(), Volume = j.SelectToken("appraisal.totals.volume").ToObject <double>() }; return(res); }
private AppraisalResult ParseResponse(string response) { // Parse JSON JObject j; try { j = JObject.Parse(response); } catch (JsonReaderException) { return(new AppraisalResult(AppraisalStatus.InternalError, "Invalid server response.")); } JToken i; if (!j.TryGetValue("items", out i) || !(i is JArray items)) { // Shouldn't happen return(new AppraisalResult(AppraisalStatus.InternalError, "Unexpected server response.")); } if (items.Count == 0) { // No items return(new AppraisalResult(AppraisalStatus.ContentError, "Text is invalid.")); } AppraisalResult res = new AppraisalResult(AppraisalStatus.Successful); res.BuyValue = j.SelectToken("totalBuyPrice").ToObject <double>(); res.SellValue = j.SelectToken("totalSellPrice").ToObject <double>(); res.Volume = j.SelectToken("totalVolume").ToObject <double>(); return(res); }