public static IList <AttributeAndDeviceItem> GetValueAndDeviceItemsWithAttribute(DeviceItemComposition aDeviceItems, string aAttributeName) { List <AttributeAndDeviceItem> returnDeviceItems = new List <AttributeAndDeviceItem>(); IList <AttributeAndDeviceItem> addDeviceItems; if (aDeviceItems != null) { foreach (DeviceItem currentDeviceItem in aDeviceItems) { try { object attributeValue = currentDeviceItem.GetAttribute(aAttributeName); AttributeAndDeviceItem newItem = new AttributeAndDeviceItem(); newItem.Name = aAttributeName; newItem.Value = attributeValue; newItem.DeviceItem = currentDeviceItem; returnDeviceItems.Add(newItem); } catch (EngineeringNotSupportedException) { } catch (Exception ex) { Program.FaultMessage("Could not get Attribute", ex, "Service.GetValueAndDeviceItemsWithAttribute"); } //check sub DeviceItems - recursive addDeviceItems = GetValueAndDeviceItemsWithAttribute(currentDeviceItem.DeviceItems, aAttributeName); returnDeviceItems.AddRange(addDeviceItems); } } return(returnDeviceItems); }
public static AttributeAndDeviceItem Get1ValueAndDeviceItemWithAttribute(DeviceItemComposition aDeviceItems, string aAttributeName) { AttributeAndDeviceItem returnDeviceItem; if (aDeviceItems != null) { foreach (DeviceItem currentDeviceItem in aDeviceItems) { try { object attributeValue = currentDeviceItem.GetAttribute(aAttributeName); returnDeviceItem = new AttributeAndDeviceItem(); returnDeviceItem.Name = aAttributeName; returnDeviceItem.Value = attributeValue; returnDeviceItem.DeviceItem = currentDeviceItem; return(returnDeviceItem); } catch (EngineeringNotSupportedException) { } catch (Exception ex) { Program.FaultMessage("Could not get Attribute", ex, "Service.Get1ValueAndDeviceItemWithAttribute"); } //check sub DeviceItems - recursive returnDeviceItem = Get1ValueAndDeviceItemWithAttribute(currentDeviceItem.DeviceItems, aAttributeName); if (returnDeviceItem != null) { return(returnDeviceItem); } } } return(null); }