Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }