private TechIndicatorDataPoint ComposeDataPoint(Dictionary <string, string> dataPointContent) { var isAdjusted = dataPointContent.Count > 6; var dataPoint = new TechIndicatorDataPoint(); dataPoint.Time = DateTime.Parse(dataPointContent[TimeStampKey]); dataPoint.Value = Decimal.Parse(dataPointContent[_function.ToString()], CultureInfo.InvariantCulture); return(dataPoint); }
private static List <TechIndicatorDataPoint> GetDataPoints(JsonDocument jsonDocument) { var result = new List <TechIndicatorDataPoint>(); var dataPointsJsonElement = jsonDocument.RootElement.EnumerateObject().Last().Value; foreach (var dataPointJson in dataPointsJsonElement.EnumerateObject()) { var dataPointFieldsJson = dataPointJson.Value; var dataPoint = new TechIndicatorDataPoint { Time = dataPointJson.Name.ParseToDateTime(), Parameters = GetParameters(dataPointFieldsJson) }; result.Add(dataPoint); } return(result); }
private static bool IsDataPointValid(TechIndicatorDataPoint dp, int expectedParamsCount) { return(dp.Time != default && dp.Parameters.Count == expectedParamsCount && dp.Parameters.All(IsParameterValid)); }