protected Source GetCurrentSource(Microsoft.SharePoint.SPSite site, SearchResultDefinition definition) { FederationManager federationManager = null; SearchObjectOwner searchOwner = null; return GetCurrentSource(site, definition, out federationManager, out searchOwner); }
protected Source GetCurrentSource(Microsoft.SharePoint.SPSite site, SearchResultDefinition definition, out FederationManager federationManager, out SearchObjectOwner searchOwner) { var context = SPServiceContext.GetContext(site); var searchAppProxy = context.GetDefaultProxy(typeof(SearchServiceApplicationProxy)) as SearchServiceApplicationProxy; federationManager = new FederationManager(searchAppProxy); searchOwner = new SearchObjectOwner(SearchObjectLevel.SPSite, site.RootWeb); return federationManager.GetSourceByName(definition.Name, searchOwner); }
private void DeploySearchResult(object modelHost, Microsoft.SharePoint.SPSite site, SearchResultDefinition definition) { FederationManager federationManager = null; SearchObjectOwner searchOwner = null; var currentSource = GetCurrentSource(site, definition, out federationManager, out searchOwner); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = currentSource, ObjectType = typeof(Source), ObjectDefinition = definition, ModelHost = modelHost }); if (currentSource == null) { currentSource = federationManager.CreateSource(searchOwner); currentSource.Name = definition.Name; if (definition.ProviderId.HasValue) currentSource.ProviderId = definition.ProviderId.Value; else currentSource.ProviderId = GetProviderByName(federationManager, definition.ProviderName).Id; } currentSource.Description = definition.Description ?? string.Empty; currentSource.CreateQueryTransform(new QueryTransformProperties(), definition.Query); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = currentSource, ObjectType = typeof(Source), ObjectDefinition = definition, ModelHost = modelHost }); currentSource.Commit(); if (definition.IsDefault) federationManager.UpdateDefaultSource(currentSource.Id, searchOwner); }
public static ModelNode AddSearchResult(this ModelNode model, SearchResultDefinition definition, Action<ModelNode> action) { return model.AddDefinitionNode(definition, action); }
public static ModelNode AddSearchResult(this ModelNode model, SearchResultDefinition definition) { return AddSearchResult(model, definition, null); }