Tuesday, September 28, 2010

Ottenere la lista dei tags usati nella nostra web application

Mi son ritrovato a dover scrivere una web part che visualizzi tutti i tags utilizzati da parte di un utente (in pratica ho creato un tags cloud Smile.
Il poco codice da scrivere è il seguente:
public static List GetMyILikeIts()
{
var socialTags = new List();

using (SPSite site = SPContext.Current.Site)
{
var ctx = SPServiceContext.GetContext(site);
var profile = ProfileLoader.GetProfileLoader(ctx);
//UserProfileManager upm = new UserProfileManager(ctx, true);
UserProfile up = profile.GetUserProfile();
SocialTagManager stm = new SocialTagManager(ctx);
SocialTag[] tags = stm.GetTags(up);

if (tags != null)
socialTags = tags.Where(t => t.Term.Name == "I like it").ToList();
}

return socialTags;
}


Una nota in particolare va all’uso della classe ProfileLoader invece che della UserProfileManager.
In pratica la seconda mi dava un problema di:
“You must have manage user profiles administrator rights to use administrator mode.”
Così, invece di creare una nuova istanza di UserProfileManager, ho trovato più utile utilizzare l’istanza già presente.
cià

No comments:

Post a Comment