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"); } } }
public IApiResource Parse(DataTypeConfig dataType, JObject json) { var columnDescriptions = FindColumnDescriptions(json); var data = FindDataBody(json); if (data.Count() == 0) { return(EmptyResource.GetInstance()); } switch (dataType) { case DataTypeConfig.Quarter: return(ParseQuarter(columnDescriptions, data)); case DataTypeConfig.Indicator: return(ParseIndicator(columnDescriptions, data)); case DataTypeConfig.Company: return(ParseCompany(columnDescriptions, data)); default: throw new NotSupportedDataTypeException($"Parse {dataType} is not supported at V2"); } }
public void ParseEmpty() { var json = new JObject(); Assert.AreEqual(parser.Parse(DataTypeConfig.Quarter, json), EmptyResource.GetInstance()); }