public static void PopulateScopes(Dictionary <string, string> scopeLookup)
        {
            SPSecurity.RunWithElevatedPrivileges(
                delegate
            {
                var ssaProxy =
                    (SearchServiceApplicationProxy)
                    SearchServiceApplicationProxy.GetProxy(SPServiceContext.Current);

                var searchApplictionInfo = ssaProxy.GetSearchServiceApplicationInfo();
                var searchApplication    =
                    SearchService.Service.SearchApplications.GetValue <SearchServiceApplication>(
                        searchApplictionInfo.SearchServiceApplicationId);
                Scopes scopes = new Scopes(searchApplication);
                foreach (Scope scope in scopes.GetScopesForSite(null))
                {
                    if (!string.IsNullOrEmpty(scope.Filter))
                    {
                        scopeLookup[scope.Name.ToLower()] = scope.Filter;
                    }
                }
            }
                );
        }