protected ManagedProperty GetCurrentObject(object modelHost, ManagedPropertyDefinition definition, out ManagedPropertyCollection properties, out List <CrawledPropertyInfo> crawledProps) { if (modelHost is FarmModelHost) { var context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default); var searchProxy = context.GetDefaultProxy(typeof(SearchServiceApplicationProxy)) as SearchServiceApplicationProxy; var ssai = searchProxy.GetSearchServiceApplicationInfo(); var application = SearchService.Service.SearchApplications.GetValue <SearchServiceApplication>(ssai.SearchServiceApplicationId); SearchObjectOwner searchOwner = new SearchObjectOwner(SearchObjectLevel.Ssa); if (cachedCrawledProps == null) { cachedCrawledProps = application.GetAllCrawledProperties(string.Empty, string.Empty, 0, searchOwner); } crawledProps = cachedCrawledProps; var schema = new Schema(application); properties = schema.AllManagedProperties; return(properties.FirstOrDefault(p => p.Name.ToUpper() == definition.Name.ToUpper())); } throw new NotImplementedException(); }
protected ManagedProperty GetCurrentObject(object modelHost, ManagedPropertyDefinition definition) { ManagedPropertyCollection props; List <CrawledPropertyInfo> crawledProps; return(GetCurrentObject(modelHost, definition, out props, out crawledProps)); }
public static TModelNode AddManagedProperty <TModelNode>(this TModelNode model, ManagedPropertyDefinition definition, Action <ManagedPropertyModelNode> action) where TModelNode : ModelNode, IManagedPropertyHostModelNode, new() { return(model.AddTypedDefinitionNode(definition, action)); }
public static TModelNode AddManagedProperty <TModelNode>(this TModelNode model, ManagedPropertyDefinition definition) where TModelNode : ModelNode, IManagedPropertyHostModelNode, new() { return(AddManagedProperty(model, definition, null)); }
private void DeployFarmManagedProperty(object modelHost, FarmModelHost farmModelHost, ManagedPropertyDefinition definition) { farmModelHost.ShouldUpdateHost = false; ManagedPropertyCollection properties; List <CrawledPropertyInfo> crawledProps; var existingProperty = GetCurrentObject(modelHost, definition, out properties, out crawledProps); var isNewMapping = existingProperty == null; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = existingProperty, ObjectType = typeof(ManagedProperty), ObjectDefinition = definition, ModelHost = modelHost }); if (existingProperty == null) { existingProperty = properties.Create(definition.Name, (ManagedDataType)Enum.Parse(typeof(ManagedDataType), definition.ManagedType)); } existingProperty.Description = definition.Description ?? string.Empty; if (definition.Searchable.HasValue) { existingProperty.HasMultipleValues = definition.Searchable.Value; } if (definition.Queryable.HasValue) { existingProperty.Queryable = definition.Queryable.Value; } if (definition.Retrievable.HasValue) { existingProperty.Retrievable = definition.Retrievable.Value; } if (definition.HasMultipleValues.HasValue) { existingProperty.HasMultipleValues = definition.HasMultipleValues.Value; } if (definition.Refinable.HasValue) { existingProperty.Refinable = definition.Refinable.Value; } if (definition.Sortable.HasValue) { existingProperty.Sortable = definition.Sortable.Value; } if (definition.SafeForAnonymous.HasValue) { existingProperty.SafeForAnonymous = definition.SafeForAnonymous.Value; } if (definition.TokenNormalization.HasValue) { existingProperty.TokenNormalization = definition.TokenNormalization.Value; } //if (isNewMapping) //{ var mappings = existingProperty.GetMappings(); foreach (var managedPropertyMappping in definition.Mappings) { var crawledProp = crawledProps .FirstOrDefault(p => p.Name.ToUpper() == managedPropertyMappping.CrawledPropertyName.ToUpper()); if (crawledProp == null) { continue; } var mapping = new Mapping { CrawledPropertyName = crawledProp.Name, ManagedPid = existingProperty.PID, CrawledPropset = crawledProp.Propset, }; mappings.Add(mapping); } existingProperty.SetMappings(mappings); //} InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = existingProperty, ObjectType = typeof(ManagedProperty), ObjectDefinition = definition, ModelHost = modelHost }); // Write the changes back existingProperty.Update(); }
private void DeploySiteManagedProperty(object modelHost, SiteModelHost siteModelHost, ManagedPropertyDefinition managedProperty) { throw new SPMeta2NotImplementedException("Managed property deployment under site is not implemented yet"); }
private void DeploySiteManagedProperty(object modelHost, SiteModelHost siteModelHost, ManagedPropertyDefinition managedProperty) { throw new NotImplementedException(); }
public static ModelNode AddManagedProperty(this ModelNode model, ManagedPropertyDefinition definition, Action <ModelNode> action) { return(model.AddDefinitionNode(definition, action)); }
public static ModelNode AddManagedProperty(this ModelNode model, ManagedPropertyDefinition definition) { return(AddManagedProperty(model, definition, null)); }