コード例 #1
0
        private List<DTO.MarketQuote> MapToQuotes(string responseContent)
        {
            var quotes = new List<DTO.MarketQuote>();
            JObject json = JObject.Parse(responseContent);
            foreach (JToken outer in json["quotes"].Children()) //Will probably only ever have one child.
            {
                //This array conversion has to happen because of the way Newtsonsoft sees the value of Children()
                //when there's only one result returned versus manny. In the case of one result, there's an object
                //where an array would otherwise be and it doesn't seem to be able to infer that object as a single
                //member of an array. Therefore, I'm being explicit here.
                JArray array = null;
                if (((JProperty)outer).Value is JArray)
                    array = (JArray)((JProperty)outer).Value;
                else
                {
                    array = new JArray(((JProperty)outer).Value);
                }

                for (int i = 0; i < array.Count; i++)
                {
                    var quote = new DTO.MarketQuote();
                    foreach (JToken token in array[i].Children())
                    {
                        double dblDummy = 0.0;
                        long lngDummy = 0;
                        var property = (JProperty)token;
                        var value = (string)property.Value;
                        switch (property.Name)
                        {
                            case "symbol":
                                quote.Symbol = value;
                                break;
                            case "description":
                                quote.Description = value;
                                break;
                            case "type":
                                quote.SetInstrumentType(value);
                                break;
                            case "last":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.LastPrice = dblDummy;
                                break;
                            case "change":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.Change = dblDummy;
                                break;
                            case "change_percentage":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.ChangePercentage = dblDummy;
                                break;
                            case "volume":
                                if (Int64.TryParse(value, out lngDummy))
                                    quote.Volume = lngDummy;
                                break;
                            case "average_volume":
                                if (Int64.TryParse(value, out lngDummy))
                                    quote.AverageVolume = lngDummy;
                                break;
                            case "open":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.OpenPrice = dblDummy;
                                break;
                            case "high":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.HighPrice = dblDummy;
                                break;
                            case "low":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.LowPrice = dblDummy;
                                break;
                            case "close":
                                if (Double.TryParse(value, out dblDummy))
                                    quote.ClosePrice = dblDummy;
                                break;
                        }
                    }
                    quotes.Add(quote);
                }
            }
            return quotes;
        }
コード例 #2
0
        private List <DTO.MarketQuote> MapToQuotes(string responseContent)
        {
            var     quotes = new List <DTO.MarketQuote>();
            JObject json   = JObject.Parse(responseContent);

            foreach (JToken outer in json["quotes"].Children()) //Will probably only ever have one child.
            {
                //This array conversion has to happen because of the way Newtsonsoft sees the value of Children()
                //when there's only one result returned versus manny. In the case of one result, there's an object
                //where an array would otherwise be and it doesn't seem to be able to infer that object as a single
                //member of an array. Therefore, I'm being explicit here.
                JArray array = null;
                if (((JProperty)outer).Value is JArray)
                {
                    array = (JArray)((JProperty)outer).Value;
                }
                else
                {
                    array = new JArray(((JProperty)outer).Value);
                }

                for (int i = 0; i < array.Count; i++)
                {
                    var quote = new DTO.MarketQuote();
                    foreach (JToken token in array[i].Children())
                    {
                        double dblDummy = 0.0;
                        long   lngDummy = 0;
                        var    property = (JProperty)token;
                        var    value    = (string)property.Value;
                        switch (property.Name)
                        {
                        case "symbol":
                            quote.Symbol = value;
                            break;

                        case "description":
                            quote.Description = value;
                            break;

                        case "type":
                            quote.SetInstrumentType(value);
                            break;

                        case "last":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.LastPrice = dblDummy;
                            }
                            break;

                        case "change":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.Change = dblDummy;
                            }
                            break;

                        case "change_percentage":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.ChangePercentage = dblDummy;
                            }
                            break;

                        case "volume":
                            if (Int64.TryParse(value, out lngDummy))
                            {
                                quote.Volume = lngDummy;
                            }
                            break;

                        case "average_volume":
                            if (Int64.TryParse(value, out lngDummy))
                            {
                                quote.AverageVolume = lngDummy;
                            }
                            break;

                        case "open":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.OpenPrice = dblDummy;
                            }
                            break;

                        case "high":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.HighPrice = dblDummy;
                            }
                            break;

                        case "low":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.LowPrice = dblDummy;
                            }
                            break;

                        case "close":
                            if (Double.TryParse(value, out dblDummy))
                            {
                                quote.ClosePrice = dblDummy;
                            }
                            break;
                        }
                    }
                    quotes.Add(quote);
                }
            }
            return(quotes);
        }