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"); } } }
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)); }
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"); } } }