Ejemplo n.º 1
0
        public static Model.StockTimeSeries ParseStockQuotes(JObject jObject)
        {
            var properties = jObject.Children().Select(ch => (JProperty)ch).ToArray();

            var metadataJson   = properties.FirstOrDefault(p => p.Name == Constants.Parsing.MetaDataJsonTokens.MetaDataHeader);
            var timeSeriesJson =
                properties.FirstOrDefault(p => p.Name.Contains(Constants.Parsing.TimeSeriesJsonTokens.TimeSeriesHeader));

            if (metadataJson == null || timeSeriesJson == null)
            {
                throw new StocksParsingException("Unable to parse time-series json");
            }

            var result = new Model.StockTimeSeries();

            FillMetadata(metadataJson, result);

            result.DataPoints = GetStockDataPoints(timeSeriesJson);

            return(result);
        }
Ejemplo n.º 2
0
        private static void FillMetadata(JProperty metadataJson, Model.StockTimeSeries timeSeries)
        {
            var metadatas = metadataJson.Children().Single();

            foreach (var metadataItem in metadatas)
            {
                var metadataProperty  = (JProperty)metadataItem;
                var metadataItemName  = metadataProperty.Name;
                var metadataItemValue = metadataProperty.Value.ToString();


                if (metadataItemName.Contains(Constants.Parsing.MetaDataJsonTokens.RefreshTimeToken))
                {
                    var refreshTime = DateTime.Parse(metadataItemValue);
                    timeSeries.LastRefreshed = DateTime.SpecifyKind(refreshTime, DateTimeKind.Local);
                }
                else if (metadataItemName.Contains(Constants.Parsing.MetaDataJsonTokens.SymbolToken))
                {
                    timeSeries.Symbol = metadataItemValue;
                }
            }
        }