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);
        }