/// <summary> /// GetWeight has to doe some custom manipulation with the returned representation /// </summary> /// <param name="serializer"></param> /// <param name="weightJson"></param> /// <returns></returns> internal static Weight GetWeight(this JsonDotNetSerializer serializer, string weightJson) { if (string.IsNullOrWhiteSpace(weightJson)) { throw new ArgumentNullException("weightJson", "weightJson can not be empty, null or whitespace"); } var weightlogs = JToken.Parse(weightJson)["weight"]; var weight = new Weight(); weight.Weights = weightlogs.Children().Select(serializer.Deserialize<WeightLog>).ToList(); return weight; }
private void ValidateWeight(Weight weight) { Assert.IsNotNull(weight); Assert.AreEqual(2, weight.Weights.Count); var log = weight.Weights.First(); Assert.IsNotNull(log); Assert.AreEqual(new DateTime(2012, 3, 5), log.Date); Assert.AreEqual(1330991999000, log.LogId); Assert.AreEqual(73f, log.Weight); Assert.AreEqual(23.57f, log.Bmi); Assert.AreEqual(new DateTime(2012, 3, 5, 23, 59, 59).TimeOfDay, log.Time.TimeOfDay); weight.Weights.Remove(log); log = weight.Weights.First(); Assert.IsNotNull(log); Assert.AreEqual(new DateTime(2012, 3, 5), log.Date); Assert.AreEqual(1330991999000, log.LogId); Assert.AreEqual(72.5f, log.Weight); Assert.AreEqual(22.57f, log.Bmi); Assert.AreEqual(new DateTime(2012, 3, 5, 21, 10, 59).TimeOfDay, log.Time.TimeOfDay); }
//example using the direct API call getting all the individual logs public ActionResult MonthWeight(string id) { DateTime dateStart = Convert.ToDateTime(id); FitbitClient client = GetFitbitClient(); Weight weight = client.GetWeight(dateStart, DateRangePeriod.OneMonth); if (weight == null || weight.Weights== null) //succeeded but no records { weight = new Weight(); weight.Weights = new List<WeightLog>(); } return View(weight); }