public IApiResource Parse(DataTypeConfig dataType, JObject json)
        {
            var columnDescriptions = FindProperty(PropertyNames.ColumnDescription, json);
            var data = FindProperty(PropertyNames.Data, json);

            if (data.Count() == 0)
            {
                return(EmptyResource.GetInstance());
            }
            else
            {
                var descriptions = ColumnDescriptionParser.Parse(columnDescriptions.ToList());
                var properties   = ParseProperties(data.Children().First());
                switch (dataType)
                {
                case DataTypeConfig.Company:
                    return(ParseCompany(properties, descriptions));

                case DataTypeConfig.Quarter:
                    return(ParseQuarter(properties, descriptions));

                case DataTypeConfig.Daily:
                    return(ParseDaily(properties, descriptions));

                default:
                    throw new NotSupportedDataTypeException($"Parse {dataType} is not supported at V3");
                }
            }
        }
Ejemplo n.º 2
0
        private static Quarter ParseQuarter(IEnumerable <JToken> columnDescriptions, IEnumerable <JToken> data)
        {
            var ticker       = data.First().Path;
            var descriptions = ColumnDescriptionParser.Parse(columnDescriptions.ToList());
            var properties   = ParseProperties(data.Children().Children().First());

            return(CreateQuarter(ticker, properties, descriptions));
        }
Ejemplo n.º 3
0
        private static IList <Quarter> ParseQuarterRange(IEnumerable <JToken> columnDescriptions, IEnumerable <JToken> data)
        {
            var descriptions = ColumnDescriptionParser.Parse(columnDescriptions.ToList());

            var ticker = data.First().Path;
            var list   = data.Children().Children().ToList();

            return(list.Select(d => CreateQuarter(ticker, ParseProperties(d), descriptions)).ToList());
        }
        public IList <IApiResource> ParseRange(DataTypeConfig dataType, JObject json)
        {
            var columnDescriptions = FindProperty(PropertyNames.ColumnDescription, json);
            var data = FindProperty(PropertyNames.Data, json);

            if (data.Count() == 0)
            {
                // return Empty
                return(new List <IApiResource>().ToList());
            }
            else
            {
                var descriptions = ColumnDescriptionParser.Parse(columnDescriptions.ToList());
                switch (dataType)
                {
                case DataTypeConfig.Quarter:
                    return(data.Children().Children().Children().Select(d => ParseQuarter(ParseProperties(d), descriptions)).Cast <IApiResource>().ToList());

                default:
                    throw new NotSupportedDataTypeException($"Parse {dataType} is not supported at V3");
                }
            }
        }