private static IList <IStorePropertyBag> QueryConfigurations(Folder folder, SortBy[] sorts, UserConfigurationName configurationName, UserConfigurationSearchFlags searchFlags, int maxRow, params PropertyDefinition[] columns) { List <IStorePropertyBag> list = new List <IStorePropertyBag>(); columns = UserConfiguration.BuildPrefetchProperties(columns); IList <IStorePropertyBag> list2 = UserConfiguration.FetchAllConfigurations(folder, sorts, 10000, columns); IComparer customComparer = UserConfigurationName.GetCustomComparer(searchFlags); foreach (IStorePropertyBag storePropertyBag in list2) { string x = storePropertyBag.TryGetProperty(InternalSchema.ItemClass) as string; if (customComparer.Compare(x, configurationName) == 0) { list.Add(storePropertyBag); } } if (folder.Session is MailboxSession) { if (folder.Session.LogonType == LogonType.Owner) { UserConfiguration.AddToConfigurationCache(folder, list); } else { UserConfiguration.AddToConfigurationCache(folder, list2); } } return(list); }