public TermDrivenPageSettingInfo(TermSetInfo termSet, string targetUrlForChildTerms, string catalogTargetUrlForChildTerms) { this.TermSet = termSet; this.TargetUrlForChildTerms = targetUrlForChildTerms; this.CatalogTargetUrlForChildTerms = catalogTargetUrlForChildTerms; this.IsTermSet = true; this.IsTerm = false; }
public void GetTermsAsSimpleLinkNavNodeForTermSet_WhenNoChildTerms_ShouldReturnAllFirstLevelTerms() { using (var testScope = SiteTestScope.BlankSite()) { // Arrange var testTermSetInfo = new TermSetInfo(Guid.NewGuid(), "Test Term Set"); var levelOneTermA = new SimpleLinkTermInfo(Guid.NewGuid(), "Term A", testTermSetInfo, "URL-A"); var levelOneTermB = new SimpleLinkTermInfo(Guid.NewGuid(), "Term B", testTermSetInfo, "URL-B"); var levelOneTermC = new SimpleLinkTermInfo(Guid.NewGuid(), "Term C", testTermSetInfo, "URL-C"); var expecteNumberOfTerms = 3; var session = new TaxonomySession(testScope.SiteCollection); var defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; var defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(testScope.SiteCollection); var newTermSet = defaultSiteCollectionGroup.CreateTermSet(testTermSetInfo.Label, testTermSetInfo.Id); var createdTermA = newTermSet.CreateTerm(levelOneTermA.Label, Language.English.Culture.LCID, levelOneTermA.Id); createdTermA.SetLocalCustomProperty(CustomPropertyKey, levelOneTermA.SimpleLinkTarget); var createdTermB = newTermSet.CreateTerm(levelOneTermB.Label, Language.English.Culture.LCID, levelOneTermB.Id); createdTermB.SetLocalCustomProperty(CustomPropertyKey, levelOneTermB.SimpleLinkTarget); var createdTermC = newTermSet.CreateTerm(levelOneTermC.Label, Language.English.Culture.LCID, levelOneTermC.Id); createdTermC.SetLocalCustomProperty(CustomPropertyKey, levelOneTermC.SimpleLinkTarget); defaultSiteCollectionTermStore.CommitAll(); using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope()) { var taxonomyService = injectionScope.Resolve <ITaxonomyService>(); // Act var retrievedTerms = taxonomyService.GetTermsAsSimpleLinkNavNodeForTermSet(testScope.SiteCollection, defaultSiteCollectionGroup.Name, newTermSet.Name); // Assert Assert.IsNotNull(retrievedTerms); Assert.AreEqual(retrievedTerms.Count, expecteNumberOfTerms); Assert.AreEqual(retrievedTerms[0].SimpleLinkTarget, levelOneTermA.SimpleLinkTarget); Assert.AreEqual(retrievedTerms[0].Label, levelOneTermA.Label); Assert.AreEqual(retrievedTerms[0].ChildTerms.Count(), 0); Assert.AreEqual(retrievedTerms[1].SimpleLinkTarget, levelOneTermB.SimpleLinkTarget); Assert.AreEqual(retrievedTerms[1].Label, levelOneTermB.Label); Assert.AreEqual(retrievedTerms[1].ChildTerms.Count(), 0); Assert.AreEqual(retrievedTerms[2].SimpleLinkTarget, levelOneTermC.SimpleLinkTarget); Assert.AreEqual(retrievedTerms[2].Label, levelOneTermC.Label); Assert.AreEqual(retrievedTerms[2].ChildTerms.Count(), 0); } // Cleanup term set so that we don't pollute the metadata store newTermSet.Delete(); defaultSiteCollectionTermStore.CommitAll(); } }
/// <summary> /// Initializes a new <see cref="ManagedNavigationInfo"/> instance /// </summary> /// <param name="termSet">Metadata about the term set driving navigation</param> /// <param name="language">The current language being configured</param> /// <param name="addNewPagesToNavigation">Whether new pages should be added to navigation term set automatically</param> /// <param name="createFriendlyUrlsForNewsPages">Whether catalog-type pages (such as news items) should use friendly URLs</param> /// <param name="preserveTaggingOnTermSet">Whether tagging with the term set should still be allowed</param> public ManagedNavigationInfo( TermSetInfo termSet, CultureInfo language, bool addNewPagesToNavigation, bool createFriendlyUrlsForNewsPages, bool preserveTaggingOnTermSet) { this.PreserveTaggingOnTermSet = preserveTaggingOnTermSet; this.AssociatedLanguage = language; this.TermSet = termSet; this.CreateFriendlyUrlsForNewsPages = createFriendlyUrlsForNewsPages; this.AddNewPagesToNavigation = addNewPagesToNavigation; }
/// <summary> /// 用語セットのグループリストを取得します。 /// </summary> /// <param name="this">ClientContext</param> /// <returns>用語セットのグループリストを返します。</returns> public static Dictionary <string, List <TermSetInfo> > GetGroups(this ClientContext @this) { var termStore = @this.GetTaxonomySession().GetDefaultSiteCollectionTermStore(); @this.Load(termStore , store => store.Name , store => store.Groups.Include( group => group.Name , group => group.TermSets.Include( termSet => termSet.Id , termSet => termSet.Name , termSet => termSet.Contact , termSet => termSet.Description , termSet => termSet.IsOpenForTermCreation , termSet => termSet.Terms.Include( term => term.Id , term => term.Name , term => term.IsAvailableForTagging , term => term.Description ) ) ) ); @this.ExecuteQuery(); var groupLs = new Dictionary <string, List <TermSetInfo> >(); foreach (var g in termStore.Groups) { groupLs[g.Name] = new List <TermSetInfo>(); var gInfo = groupLs[g.Name]; foreach (var termSet in g.TermSets) { var tInfo = new TermSetInfo(termSet.Name); foreach (var term in termSet.Terms) { tInfo.Terms.Add(new TermInfo(term.Name) { IsAvailableForTagging = term.IsAvailableForTagging, }); } gInfo.Add(tInfo); } } return(groupLs); }
private void Run() { var url = this.textBoxUrl.Text; var username = this.textBoxUser.Text; var password = this.textBoxPassword.Text; var groupName = this.textBoxGroup.Text; var tm = new TermStoreManager(url, username, password, groupName) { DefaultLcID = 1041, }; var tbl = this.gridCsv.ToDataTable(); tbl.Select(r => new { セット名 = r[0].ToString().Trim(), セット説明 = r[1].ToString().Trim(), 公開 = r[2].ToBoolean(), タグ = r[3].ToBoolean(), 用語 = r[4].ToString().Trim(), 説明 = r[5].ToString().Trim(), }).GroupBy(r => new { r.セット名, r.セット説明, r.公開, }).ToList().ForEach(v => { var row = v.Select(x => new TermInfo(x.用語) { IsAvailableForTagging = x.タグ, Description = x.説明, }).ToArray(); var info = new TermSetInfo(v.Key.セット名, row) { IsOpenForTermCreation = v.Key.公開, Description = v.Key.セット説明, }; tm.AddTerm(info); }); this.ShowMessageBox("用語セットを登録しました。"); }
public void EnsureProfileProperty_WhenMappedToTermSet_GivenUserProfilePropertyInfo_ThenMapsPropertyToTermSet() { using (var testScope = SiteTestScope.BlankSite()) { // Arrange var site = testScope.SiteCollection; var termSetInfo = new TermSetInfo(Guid.NewGuid(), TermSetName); var userProfilePropertyInfo = new UserProfilePropertyInfo( ProfilePropertyName, "Test Profile Property", PropertyDataType.StringSingleValue) { TermSetInfo = termSetInfo }; // Create term set var session = new TaxonomySession(site); var defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; var defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(site); defaultSiteCollectionGroup.CreateTermSet(termSetInfo.Label, termSetInfo.Id); defaultSiteCollectionTermStore.CommitAll(); using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope(site)) { try { // Act var userProfileHelper = injectionScope.Resolve <IUserProfilePropertyHelper>(); var userProfileProperty = userProfileHelper.EnsureProfileProperty(site, userProfilePropertyInfo); // Assert Assert.AreEqual(userProfileProperty.TermSet.Id, termSetInfo.Id); } finally { this.TestCleanup(); } } } }
public void GetTermsAsSimpleLinkNavNodeForTermSet_WithChildTermsAndCustomSortOrder_ShouldKeepTheTermsOrder() { using (var testScope = SiteTestScope.BlankSite()) { var guidTermA = Guid.NewGuid(); var guidTermB = Guid.NewGuid(); var guidTermAA = Guid.NewGuid(); var guidTermAB = Guid.NewGuid(); // Arrange var testTermSetInfo = new TermSetInfo(Guid.NewGuid(), "Test Term Set"); var levelOneTermA = new SimpleLinkTermInfo(guidTermA, "Term A", testTermSetInfo, "URL-A"); var levelOneTermB = new SimpleLinkTermInfo(guidTermB, "Term B", testTermSetInfo); var levelTwoTermAA = new SimpleLinkTermInfo(guidTermAA, "Term AA", testTermSetInfo); var levelTwoTermAB = new SimpleLinkTermInfo(guidTermAB, "Term AB", testTermSetInfo, "URL-AB"); var levelTwoTermBA = new SimpleLinkTermInfo(Guid.NewGuid(), "Term BA", testTermSetInfo, "URL-BA"); var expecteNumberOfLevelOneTerms = 2; var expectedTotalNumberOfTerms = 5; var session = new TaxonomySession(testScope.SiteCollection); var defaultSiteCollectionTermStore = session.DefaultSiteCollectionTermStore; var defaultSiteCollectionGroup = defaultSiteCollectionTermStore.GetSiteCollectionGroup(testScope.SiteCollection); var newTermSet = defaultSiteCollectionGroup.CreateTermSet(testTermSetInfo.Label, testTermSetInfo.Id); var createdTermA = newTermSet.CreateTerm(levelOneTermA.Label, Language.English.Culture.LCID, levelOneTermA.Id); createdTermA.SetLocalCustomProperty(CustomPropertyKey, levelOneTermA.SimpleLinkTarget); var createdTermAA = createdTermA.CreateTerm(levelTwoTermAA.Label, Language.English.Culture.LCID, levelTwoTermAA.Id); var createdTermAB = createdTermA.CreateTerm(levelTwoTermAB.Label, Language.English.Culture.LCID, levelTwoTermAB.Id); createdTermAB.SetLocalCustomProperty(CustomPropertyKey, levelTwoTermAB.SimpleLinkTarget); var createdTermB = newTermSet.CreateTerm(levelOneTermB.Label, Language.English.Culture.LCID, levelOneTermB.Id); var createdTermBA = createdTermB.CreateTerm(levelTwoTermBA.Label, Language.English.Culture.LCID, levelTwoTermBA.Id); createdTermBA.SetLocalCustomProperty(CustomPropertyKey, levelTwoTermBA.SimpleLinkTarget); // Create a custom sort order where term B is first, term A is second newTermSet.CustomSortOrder = string.Format(CultureInfo.InvariantCulture, "{0}:{1}", guidTermB, guidTermA); // Create a custom sort order where term AB is first, term AA is second createdTermA.CustomSortOrder = string.Format(CultureInfo.InvariantCulture, "{0}:{1}", guidTermAB, guidTermAA); defaultSiteCollectionTermStore.CommitAll(); using (var injectionScope = IntegrationTestServiceLocator.BeginLifetimeScope()) { var taxonomyService = injectionScope.Resolve <ITaxonomyService>(); // Act var retrievedTerms = taxonomyService.GetTermsAsSimpleLinkNavNodeForTermSet(testScope.SiteCollection, defaultSiteCollectionGroup.Name, newTermSet.Name); // Assert Assert.IsNotNull(retrievedTerms); Assert.AreEqual(retrievedTerms.Count, expecteNumberOfLevelOneTerms); var actualTotalNumberOfTermsRetrieved = retrievedTerms.Count + retrievedTerms[0].ChildTerms.Count() + retrievedTerms[1].ChildTerms.Count(); Assert.AreEqual(actualTotalNumberOfTermsRetrieved, expectedTotalNumberOfTerms); Assert.AreEqual(retrievedTerms[0].SimpleLinkTarget, levelOneTermB.SimpleLinkTarget); Assert.AreEqual(retrievedTerms[0].Label, levelOneTermB.Label); Assert.AreEqual(retrievedTerms[0].ChildTerms.Count(), 1); Assert.AreEqual(retrievedTerms[1].SimpleLinkTarget, levelOneTermA.SimpleLinkTarget); Assert.AreEqual(retrievedTerms[1].Label, levelOneTermA.Label); Assert.AreEqual(retrievedTerms[1].ChildTerms.Count(), 2); var actualLevelTwoAATerm = retrievedTerms[1].ChildTerms.ElementAt(1); var actualLevelTwoABTerm = retrievedTerms[1].ChildTerms.ElementAt(0); var actualLevelTwoBATerm = retrievedTerms[0].ChildTerms.ElementAt(0); Assert.AreEqual(actualLevelTwoAATerm.SimpleLinkTarget, levelTwoTermAA.SimpleLinkTarget); Assert.AreEqual(actualLevelTwoAATerm.Label, levelTwoTermAA.Label); Assert.AreEqual(actualLevelTwoAATerm.ChildTerms.Count(), 0); Assert.AreEqual(actualLevelTwoABTerm.SimpleLinkTarget, levelTwoTermAB.SimpleLinkTarget); Assert.AreEqual(actualLevelTwoABTerm.Label, levelTwoTermAB.Label); Assert.AreEqual(actualLevelTwoABTerm.ChildTerms.Count(), 0); Assert.AreEqual(actualLevelTwoBATerm.SimpleLinkTarget, levelTwoTermBA.SimpleLinkTarget); Assert.AreEqual(actualLevelTwoBATerm.Label, levelTwoTermBA.Label); Assert.AreEqual(actualLevelTwoBATerm.ChildTerms.Count(), 0); } // Cleanup term set so that we don't pollute the metadata store newTermSet.Delete(); defaultSiteCollectionTermStore.CommitAll(); } }
/// <summary> /// Initializes a new <see cref="ManagedNavigationInfo"/> instance /// </summary> /// <param name="termSet">Metadata about the term set driving navigation</param> /// <param name="language">The current language being configured</param> public ManagedNavigationInfo(TermSetInfo termSet, CultureInfo language) : this(termSet, language, false, false, true) { }