Property class
SharePoint 2013
Represents the definition for a user profile property.
Namespace:
Microsoft.Office.Server.UserProfiles
Assembly: Microsoft.Office.Server.UserProfiles (in Microsoft.Office.Server.UserProfiles.dll)
There are two types of user profile properties:
Regular Defines the property data type and the corresponding user profile flags.
Section Property that serves as a separator for user interface grouping purposes.
In Microsoft SharePoint Server 2010, this type delegates most of its methods to CoreProperty, ProfileTypeProperty, and ProfileSubtypeProperty. Exceptions are thrown from these classes.
The following code example shows the use of the Property class.
static public void PropertyTypeAndMappingSample() { using (SPSite site = new SPSite("site url")) { SPServiceContext context = SPServiceContext.GetContext(site); //Initialize user profile config manager object. UserProfileConfigManager upcm = new UserProfileConfigManager(context); ConnectionManager cm = upcm.ConnectionManager; //Sample to get a property type. PropertyDataTypeCollection pdtc = upcm.GetPropertyDataTypes(); PropertyDataType ptype = null; foreach (PropertyDataType datatype in pdtc) { if (datatype.Name.Equals("string")) { ptype = datatype; break; } } //Sample to create a new custom property. ProfilePropertyManager ppm = upcm.ProfilePropertyManager; CorePropertyManager cpm = ppm.GetCoreProperties(); ProfileTypePropertyManager ptpm = ppm.GetProfileTypeProperties(ProfileType.User); ProfileSubtypeManager psm = ProfileSubtypeManager.Get(context); ProfileSubtype ps = psm.GetProfileSubtype(ProfileSubtypeManager.GetDefaultProfileName(ProfileType.User)); ProfileSubtypePropertyManager pspm = ps.Properties; CoreProperty coreProp = cpm.Create(false); coreProp.Name = "division"; coreProp.DisplayName = "my custom division"; coreProp.Type = ptype.Name; coreProp.Length = ptype.MaxCharCount; coreProp.Commit(); ProfileTypeProperty profileTypeProp = ptpm.Create(coreProp); profileTypeProp.IsVisibleOnEditor = true; profileTypeProp.IsVisibleOnViewer = true; profileTypeProp.Commit(); ProfileSubtypeProperty profileSubTypeProp = pspm.Create(profileTypeProp); profileSubTypeProp.DefaultPrivacy = Privacy.Private; profileSubTypeProp.IsUserEditable = true; profileSubTypeProp.Commit(); pspm.SetDisplayOrderByPropertyName(profileSubTypeProp.Name, 1); pspm.CommitDisplayOrder(); //Edit property sample. CoreProperty ptitle = cpm.GetPropertyByName(PropertyConstants.Title); // Or get property by URI. ptitle = cpm.GetPropertyByURI(Property.URI_Title); ptitle.DisplayName = "Designation"; ptitle.Commit(); //Property map sample. string connectionName = "Test Connection"; Connection connection = cm[connectionName]; PropertyMapCollection pmc = connection.PropertyMapping; pmc.AddNewMapping(ProfileType.User, profileSubTypeProp.Name, "division"); //Remove property sample. cpm.RemovePropertyByName("division"); ptpm.RemovePropertyByName("division"); pspm.RemovePropertyByName("division"); } }