private static string[] ValidatePropertyPathList(System.Type viewType, string[] propertyList) { List <string> stringList = new List <string>(); if (propertyList != null && propertyList.Length != 0) { foreach (string property in propertyList) { string str = VimClient.ValidatePropertyPath(viewType, property); stringList.Add(str); } } if (stringList.Count != 0) { return(stringList.ToArray()); } return((string[])null); }
private static bool MatchProperyList(NameValueCollection filter, System.Type viewType, IDictionary <string, object> propList) { bool flag1 = true; foreach (string key1 in filter.Keys) { string key2 = VimClient.ValidatePropertyPath(viewType, key1); if (propList.ContainsKey(key2)) { string pattern = filter[key2]; if (propList[key2] is ManagedObjectReference[]) { bool flag2 = false; foreach (ManagedObjectReference managedObjectReference in (ManagedObjectReference[])propList[key2]) { Match match = Regex.Match(managedObjectReference.Value, pattern, RegexOptions.IgnoreCase); flag2 = flag2 || match.Success; } if (!flag2) { flag1 = false; break; } } else if (!Regex.Match(!(propList[key2] is ManagedObjectReference) ? (!(propList[key2] is string[]) ? propList[key2].ToString() : string.Join(",", propList[key2] as string[])) : ((ManagedObjectReference)propList[key2]).Value, pattern, RegexOptions.IgnoreCase).Success) { flag1 = false; break; } } else { flag1 = false; break; } } return(flag1); }