private ManagedNavigation GetManagedNavigation(Web web, WebNavigationSettings navigationSettings, Boolean currentNavigation) { var result = new ManagedNavigation { TermStoreId = currentNavigation ? navigationSettings.CurrentNavigation.TermStoreId.ToString() : navigationSettings.GlobalNavigation.TermStoreId.ToString(), TermSetId = currentNavigation ? navigationSettings.CurrentNavigation.TermSetId.ToString() : navigationSettings.GlobalNavigation.TermSetId.ToString(), }; // Apply any token replacement for taxonomy IDs TokenizeManagedNavigationTaxonomyIds(web, result); return(result); }
protected void TokenizeManagedNavigationTaxonomyIds(Web web, ManagedNavigation managedNavigation) { // Replace Taxonomy field references to SspId, TermSetId with tokens TaxonomySession session = TaxonomySession.GetTaxonomySession(web.Context); TermStore defaultStore = session.GetDefaultSiteCollectionTermStore(); web.Context.Load(defaultStore, ts => ts.Name, ts => ts.Id); web.Context.ExecuteQueryRetry(); Guid navigationTermStoreId = Guid.Parse(managedNavigation.TermStoreId); if (navigationTermStoreId != Guid.Empty) { TermStore navigationTermStore = session.TermStores.GetById(navigationTermStoreId); web.Context.Load(navigationTermStore, ts => ts.Name, ts => ts.Id); web.Context.ExecuteQueryRetry(); if (!navigationTermStore.ServerObjectIsNull()) { if (navigationTermStore.Id == defaultStore.Id) { managedNavigation.TermStoreId = "{sitecollectiontermstoreid}"; } else { managedNavigation.TermStoreId = $"{{termstoreid:{navigationTermStore.Name}}}"; } Guid navigationTermSetId = Guid.Parse(managedNavigation.TermSetId); if (navigationTermSetId != Guid.Empty) { var navigationTermSet = navigationTermStore.GetTermSet(navigationTermSetId); web.Context.Load(navigationTermSet, ts => ts.Name, ts => ts.Id, ts => ts.Group); web.Context.ExecuteQueryRetry(); if (!navigationTermSet.ServerObjectIsNull()) { managedNavigation.TermSetId = $"{{termsetid:{navigationTermSet.Group.Name}:{navigationTermSet.Name}}}"; } } } } }
private ManagedNavigation GetManagedNavigation(Web web, WebNavigationSettings navigationSettings, Boolean currentNavigation) { var result = new ManagedNavigation { TermStoreId = currentNavigation ? navigationSettings.CurrentNavigation.TermStoreId.ToString() : navigationSettings.GlobalNavigation.TermStoreId.ToString(), TermSetId = currentNavigation ? navigationSettings.CurrentNavigation.TermSetId.ToString() : navigationSettings.GlobalNavigation.TermSetId.ToString(), }; // Apply any token replacement for taxonomy IDs TokenizeManagedNavigationTaxonomyIds(web, result); return (result); }