private ManagementBaseObject[] ApplyFilter(object allObjectsToFilter, WmiInvokeMethodFilter filterItem) { IList <ManagementBaseObject> filterResult = new List <ManagementBaseObject>(); foreach (var obj in (IEnumerable <ManagementBaseObject>)allObjectsToFilter) { string parentPropertyName = string.Empty; for (int i = 0; i < filterItem.FilterParentObjectNames.Count; i++) { parentPropertyName = filterItem.FilterParentObjectNames[i]; if (i == filterItem.FilterParentObjectNames.Count - 1) { ManagementBaseObject systemParentObj = (ManagementBaseObject)obj.Properties[parentPropertyName].Value; if (this.IsSystemObjectMatch(systemParentObj, filterItem.FilterPropertyName, filterItem.FilterPropertyValue)) { filterResult.Add(obj); } } } } return(filterResult.ToArray()); }
private ManagementBaseObject[] ApplyFilter(object allObjectsToFilter, WmiInvokeMethodFilter filterItem) { IList<ManagementBaseObject> filterResult = new List<ManagementBaseObject>(); foreach (var obj in (IEnumerable<ManagementBaseObject>)allObjectsToFilter) { string parentPropertyName = string.Empty; for (int i = 0; i < filterItem.FilterParentObjectNames.Count; i++) { parentPropertyName = filterItem.FilterParentObjectNames[i]; if (i == filterItem.FilterParentObjectNames.Count - 1) { ManagementBaseObject systemParentObj = (ManagementBaseObject)obj.Properties[parentPropertyName].Value; if (this.IsSystemObjectMatch(systemParentObj, filterItem.FilterPropertyName, filterItem.FilterPropertyValue)) filterResult.Add(obj); } } } return filterResult.ToArray(); }