protected virtual CoreProperty GetCurrentCoreProperty(SPSite site, CorePropertyDefinition definition) { CoreProperty result = null; var serverContext = SPServiceContext.GetContext(site); var profileManager = new UserProfileManager(serverContext); var profilePropertiesManager = new UserProfileConfigManager(serverContext).ProfilePropertyManager; var corePropertiesManager = profilePropertiesManager.GetCoreProperties(); // would return NULL, no try-catch is required result = corePropertiesManager.GetPropertyByName(definition.Name); return(result); }
private void MapProperties(CoreProperty currentProperty, CorePropertyDefinition definition) { if (definition.IsAlias.HasValue) { currentProperty.IsAlias = definition.IsAlias.Value; } if (definition.IsSearchable.HasValue) { currentProperty.IsSearchable = definition.IsSearchable.Value; } // this is cannot be updated //if (definition.IsMultivalued.HasValue) // currentProperty.IsMultivalued = definition.IsMultivalued.Value; }
protected virtual CoreProperty CreateNewCoreProperty(SPSite site, CorePropertyDefinition definition) { var serverContext = SPServiceContext.GetContext(site); var profileManager = new UserProfileManager(serverContext); var profilePropertiesManager = new UserProfileConfigManager(serverContext).ProfilePropertyManager; var corePropertiesManager = profilePropertiesManager.GetCoreProperties(); var coreProp = corePropertiesManager.Create(false); coreProp.Name = definition.Name; coreProp.DisplayName = definition.DisplayName; coreProp.Type = definition.Type; if (!string.IsNullOrEmpty(definition.Description)) { coreProp.Description = definition.Description; } if (definition.Length.HasValue) { coreProp.Length = definition.Length.Value; } if (definition.IsAlias.HasValue) { coreProp.IsAlias = definition.IsAlias.Value; } if (definition.IsSearchable.HasValue) { coreProp.IsSearchable = definition.IsSearchable.Value; } if (definition.IsMultivalued.HasValue) { coreProp.IsMultivalued = definition.IsMultivalued.Value; } corePropertiesManager.Add(coreProp); return(coreProp); }
private void DeployDefinition(object modelHost, SiteModelHost siteModelHost, CorePropertyDefinition definition) { var site = siteModelHost.HostSite; // TODO, implementation // Add user profile property provision support #820 // https://github.com/SubPointSolutions/spmeta2/issues/820 CoreProperty currentProperty = GetCurrentCoreProperty(site, definition); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = currentProperty, ObjectType = typeof(CoreProperty), ObjectDefinition = definition, ModelHost = modelHost }); if (currentProperty == null) { currentProperty = CreateNewCoreProperty(site, definition); } MapProperties(currentProperty, definition); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = currentProperty, ObjectType = typeof(CoreProperty), ObjectDefinition = definition, ModelHost = modelHost }); }
public static TModelNode AddCoreProperty <TModelNode>(this TModelNode model, CorePropertyDefinition definition, Action <CorePropertyModelNode> action) where TModelNode : ModelNode, ICorePropertyHostModelNode, new() { return(model.AddTypedDefinitionNode(definition, action)); }
public static TModelNode AddCoreProperty <TModelNode>(this TModelNode model, CorePropertyDefinition definition) where TModelNode : ModelNode, ICorePropertyHostModelNode, new() { return(AddCoreProperty(model, definition, null)); }