Veramente banale gestire la visualizzazione dei termini di un Term Set di SharePoint, ma sono veramente insoddisfatto per come ho dovuto reperire il dato (sembra come se gli sviluppatori Microsoft andavano di corsa....), comunque, nel Term Store Management Tool della Central Administration dopo aver selezionato il gruppo e il Term Set sul pannello di destra compariranno i tabs come da figura:
Cliccando sul tab CUSTOM SORT si potranno assegnare le priorità di visualizzazione (assolutamente no!) desiderata per il vostro Term Set:
Perchè prima ho scritto e sottolineato "assolutamente no!"?
Perchè per reperire la lista dei termini con object model si utilizzerà questo codice:
TaxonomySession session = new TaxonomySession(site);
TermStore termstore = session.TermStores[TaxonomyUtils.TERM_STORE_NAME];
group = termstore.Groups.GetByName(TaxonomyUtils.TERM_GROUP);
termSets = group.TermSets[termSetName];
if (!string.IsNullOrEmpty(termSets.CustomSortOrder))
{
string[] taxorder = termSets.CustomSortOrder.Split(':');
foreach (var item in taxorder)
{
Term oTerm = termSets.GetTerm(new Guid(item));
//...
}
}
else
{
foreach (var item in termSets.Terms)
{
//....
}
}
E fino qui, tutto ok, ma non c'è nessuna proprietà che mi permetta di indicare a SharePoint di prendere i termini ai quali ho applicato il Custom Sort Order e avere in output la stessa struttura dati, ma dovrò vedere se la stringa CustomSortOrder è diversa da null... e indovinate, se non è null avete la lista dei termini ma solamente nel formato Guid:Guid:Guid......
Mah...
Comunque alla fine quello che conta è che è stato un kid's stuff