I want to set the user profile property from code behind. The property is of type taxonomy(single value).
Following is a code which is I am executing:
SPList events = web.Lists["Calendar"]; // Term term = null; // Term term1 = null; SPListItem item = events.GetItemById(3); if (item != null) { TaxonomyFieldValueCollection valueColl = item["oiplbDepartment"] as TaxonomyFieldValueCollection; TaxonomyFieldValue value = valueColl[0]; TaxonomyField field = item.Fields.GetFieldByInternalName("oiplbDepartment") as TaxonomyField; if (value != null) { TaxonomySession session = new TaxonomySession(site); TermStore termStore = session.TermStores[0]; TermSet termSet = termStore.GetTermSet(field.TermSetId); //term = termSet.GetTerm(new Guid(value.TermGuid)); //term1 = termSet.GetTerm(new Guid(valueColl[1].TermGuid)); SPUser user = web.EnsureUser(@"xyz"); if (user != null) { SPServiceContext serviceContext = SPServiceContext.GetContext(site); UserProfileManager upm = new UserProfileManager(serviceContext); UserProfile up = upm.GetUserProfile(@user.LoginName); up["oiplbNativeDepartment"].Clear(); for (int i = 0; i < valueColl.Count; i++) { Guid guid = new Guid(valueColl[i].TermGuid); Term t = termSet.GetTerm(guid); up["oiplbNativeDepartment"].AddTaxonomyTerm(t); } up.Commit(); } } }
I debugged the program and the error which is mentioned above comes at line
up["oiplbNativeDepartment"].AddTaxonomyTerm(t);
What am I missing?
- Edited by Mohemmad K Wednesday, February 05, 2014 4:52 AM Added content