private void ValidateDataList(TimeSeriesDataList dataList) { Assert.IsNotNull(dataList); Assert.IsNotNull(dataList.DataList); Assert.AreEqual(8, dataList.DataList.Count); var item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("1.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-12"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("2.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-13"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("4.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-14"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("8.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-15"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("16.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-16"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("32.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-17"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("64.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-18"), item.DateTime); item = dataList.DataList.First(); dataList.DataList.Remove(item); Assert.AreEqual("128.0", item.Value); Assert.AreEqual(DateTime.Parse("2014-08-19"), item.DateTime); Assert.AreEqual(0, dataList.DataList.Count); }
public AFValues ConvertToAFValues(TimeSeriesDataList tsDataList, FitbitStream stream, FitbitUser fitbitUser) { AFValues values = new AFValues(); foreach (var result in tsDataList.DataList) { AFValue val = null; if (stream.FitbitSource != TimeSeriesResourceType.TimeEnteredBed) { val = new AFValue(Convert.ToSingle(result.Value), new AFTime(result.DateTime), stream.UnitsOfMeasure); } else { val = new AFValue(result.Value, new AFTime(result.DateTime), stream.UnitsOfMeasure); } values.Add(val); } values.Attribute = fitbitUser.UserElement.Elements["Fitbit"].Attributes[stream.AttributeName]; return values; }
/// <summary> /// Converts FitFibt Time Series Data to AF Time Series Data /// </summary> /// <param name="tsDataList">FitBit Time Series data</param> /// <param name="type">Type of fit Bit data - this will determine the attribute name to write into. It can also influence the conversion logic.</param> /// <param name="element">The element that contains the attribute to write into</param> /// <param name="attributeName">Name of the AF Attribute in which time series data will be written into.</param> /// <returns></returns> public static AFValues ConvertToAFValues(TimeSeriesDataList tsDataList, TimeSeriesResourceType type, AFElement element, string attributeName) { // creates the list of values AFValues values = new AFValues(); foreach (var result in tsDataList.DataList) { AFValue val = null; if (type != TimeSeriesResourceType.TimeEnteredBed) { val = new AFValue(Convert.ToSingle(result.Value), new AFTime(result.DateTime)); } else { val = new AFValue(result.Value, new AFTime(result.DateTime)); } values.Add(val); } values.Attribute = element.Attributes[attributeName]; return values; }
/// <summary> /// GetTimeSeriesDataList has to do some custom manipulation with the returned representation /// </summary> /// <param name="serializer"></param> /// <param name="timeSeriesDataJson"></param> /// <returns></returns> internal static TimeSeriesDataList GetTimeSeriesDataList(this JsonDotNetSerializer serializer, string timeSeriesDataJson) { if (string.IsNullOrWhiteSpace(timeSeriesDataJson)) { throw new ArgumentNullException("timeSeriesDataJson", "timeSeriesDataJson can not be empty, null or whitespace."); } var dataPoints = JToken.Parse(timeSeriesDataJson)[serializer.RootProperty]; var result = new TimeSeriesDataList { DataList = (from item in dataPoints select new TimeSeriesDataList.Data { DateTime = DateTime.Parse(item["dateTime"].ToString()), Value = item["value"].ToString() }).ToList() }; return result; }