public Scope EnsureSiteScope(SPSite site, string scopeName, string displayGroupName, string searchPagePath) { // remotescopes class retrieves information via search web service so we run this as the search service account RemoteScopes remoteScopes = new RemoteScopes(SPServiceContext.GetContext(site)); // see if there is an existing scope Scope scope = remoteScopes.GetScopesForSite(new Uri(site.Url)).Cast <Scope>().FirstOrDefault(s => s.Name == scopeName); // only add if the scope doesn\"t exist already if (scope == null) { scope = remoteScopes.AllScopes.Create(scopeName, string.Empty, new Uri(site.Url), true, searchPagePath, ScopeCompilationType.AlwaysCompile); } // see if there is an existing display group ScopeDisplayGroup displayGroup = remoteScopes.GetDisplayGroupsForSite(new Uri(site.Url)).Cast <ScopeDisplayGroup>().FirstOrDefault(d => d.Name == displayGroupName); // add if the display group doesn\"t exist if (displayGroup == null) { displayGroup = remoteScopes.AllDisplayGroups.Create(displayGroupName, string.Empty, new Uri(site.Url), true); } // add scope to display group if not already added if (!displayGroup.Contains(scope)) { displayGroup.Add(scope); displayGroup.Update(); } // optionally force a scope compilation so this is available immediately remoteScopes.StartCompilation(); return(scope); }
protected ScopeDisplayGroupInstance(ObjectInstance prototype, ScopeDisplayGroup scopeDisplayGroup) : base(prototype) { m_scopeDisplayGroup = scopeDisplayGroup; }
public ScopeDisplayGroupInstance(ScriptEngine engine, ScopeDisplayGroup scopeDisplayGroup) : base(engine) { m_scopeDisplayGroup = scopeDisplayGroup; PopulateFunctions(); }