private void ProcessRecordChangeNotification( CommonNotificationData common, XPathNavigator navRecordChangedNotification) { HealthRecordItemChangedEventArgs eventArgs = new HealthRecordItemChangedEventArgs(); eventArgs.Common = common; XPathNavigator navPersonId = navRecordChangedNotification.SelectSingleNode("person-id"); eventArgs.PersonId = new Guid(navPersonId.Value); XPathNavigator navRecordId = navRecordChangedNotification.SelectSingleNode("record-id"); eventArgs.RecordId = new Guid(navRecordId.Value); XPathNodeIterator iterThings = navRecordChangedNotification.Select("things/thing"); eventArgs.ChangedItems = new Collection<HealthRecordItemChangedItem>(); foreach (XPathNavigator navThing in iterThings) { XPathNavigator navThingId = navThing.SelectSingleNode("thing-id"); HealthRecordItemChangedItem item = new HealthRecordItemChangedItem(); item.Id = new Guid(navThingId.Value); eventArgs.ChangedItems.Add(item); } if (RecordChanged != null) { RecordChanged(this, eventArgs); } }
private void ProcessNotification(XPathNavigator navNotification) { CommonNotificationData common = new CommonNotificationData(); common.ParseXml(navNotification); foreach (XPathNavigator child in navNotification.SelectChildren(XPathNodeType.Element)) { switch (child.Name) { case "record-change-notification": ProcessRecordChangeNotification(common, child); break; } } }