void GetThingsCompleted(object sender, HealthVaultResponseEventArgs e) { if (e.ErrorText == null) { XElement responseNode = XElement.Parse(e.ResponseXml); // using LINQ to get the latest reading of blood pressure state var readings = (from thingNode in responseNode.Descendants("thing") orderby Convert.ToDateTime(thingNode.Element("eff-date").Value) ascending select thingNode).ToList(); Deployment.Current.Dispatcher.BeginInvoke(() => { BloodPressureModel bloodPressureState = new BloodPressureModel(); foreach (var item in readings) { bloodPressureState.Parse(item); _data.Add(new GraphItem { Name = bloodPressureState.When.ToShortDateString(), Value = bloodPressureState.Systolic.ToString() }); } progressOverlay.Hide(); }); } else { Dispatcher.BeginInvoke(() => { MessageBox.Show(e.ErrorText); }); } }
void GetThingsCompleted(object sender, HealthVaultResponseEventArgs e) { SetProgressBarVisibility(false); if (e.ErrorText == null) { XElement responseNode = XElement.Parse(e.ResponseXml); // using LINQ to get the latest reading of blood pressure state XElement latestReading = (from thingNode in responseNode.Descendants("thing") orderby Convert.ToDateTime(thingNode.Element("eff-date").Value) descending select thingNode).FirstOrDefault<XElement>(); if (latestReading != null) { BloodPressureModel bloodPressureState = new BloodPressureModel(); bloodPressureState.Parse(latestReading); Deployment.Current.Dispatcher.BeginInvoke(() => { txtLastUpdated.Text = string.Format("When - {0}, Systolic - {1}, Diastolic - {2}", bloodPressureState.When.ToString("MMM dd, yyyy"), bloodPressureState.Systolic, bloodPressureState.Diastolic); }); } else { Deployment.Current.Dispatcher.BeginInvoke(() => { txtLastUpdated.Text = "No readings! Time to track blood pressure."; }); } } }