public void CanProvisionObjects() { var template = new ProvisioningTemplate(); TermGroup termGroup = new TermGroup(_termGroupGuid, "TestProvisioningGroup", null); List <TermSet> termSets = new List <TermSet>(); TermSet termSet = new TermSet(_termSetGuid, "TestProvisioningTermSet", null, true, false, null, null); List <Term> terms = new List <Term>(); var term1 = new Term(Guid.NewGuid(), "TestProvisioningTerm 1", null, null, null, null, null); term1.Properties.Add("TestProp1", "Test Value 1"); term1.LocalProperties.Add("TestLocalProp1", "Test Value 1"); term1.Labels.Add(new TermLabel() { Language = 1033, Value = "Testing" }); term1.Terms.Add(new Term(Guid.NewGuid(), "Sub Term 1", null, null, null, null, null)); terms.Add(term1); terms.Add(new Term(Guid.NewGuid(), "TestProvisioningTerm 2", null, null, null, null, null)); termSet.Terms.AddRange(terms); termSets.Add(termSet); termGroup.TermSets.AddRange(termSets); template.TermGroups.Add(termGroup); using (var ctx = TestCommon.CreateClientContext()) { var parser = new TokenParser(ctx.Web, template); new ObjectTermGroups().ProvisionObjects(ctx.Web, template, parser, new ProvisioningTemplateApplyingInformation()); TaxonomySession session = TaxonomySession.GetTaxonomySession(ctx); var store = session.GetDefaultKeywordsTermStore(); var group = store.GetGroup(_termGroupGuid); var set = store.GetTermSet(_termSetGuid); ctx.Load(group); ctx.Load(set, s => s.Terms); ctx.ExecuteQueryRetry(); Assert.IsInstanceOfType(group, typeof(Microsoft.SharePoint.Client.Taxonomy.TermGroup)); Assert.IsInstanceOfType(set, typeof(Microsoft.SharePoint.Client.Taxonomy.TermSet)); Assert.IsTrue(set.Terms.Count == 2); var creationInfo = new ProvisioningTemplateCreationInformation(ctx.Web) { BaseTemplate = ctx.Web.GetBaseTemplate() }; var template2 = new ProvisioningTemplate(); template2 = new ObjectTermGroups().ExtractObjects(ctx.Web, template, creationInfo); Assert.IsTrue(template.TermGroups.Any()); Assert.IsInstanceOfType(template.TermGroups, typeof(Core.Framework.Provisioning.Model.TermGroupCollection)); } }
public void CanProvisionObjects() { var template = new ProvisioningTemplate(); var termGroup = new TermGroup(_termGroupGuid, "TestProvisioningGroup", null); var termSets = new List <TermSet>(); var termSet = new TermSet(_termSetGuid, "TestProvisioningTermSet", null, true, false, null, null); var terms = new List <Term>(); var term1Id = Guid.NewGuid(); const string term1Name = "TestProvisioningTerm 1"; var term1 = new Term(term1Id, term1Name, null, null, null, null, null); term1.Properties.Add("TestProp1", "Test Value 1"); term1.LocalProperties.Add("TestLocalProp1", "Test Value 1"); term1.Labels.Add(new TermLabel() { Language = 1033, Value = "Testing" }); var term1Subterm1Id = Guid.NewGuid(); term1.Terms.Add(new Term(term1Subterm1Id, "Sub Term 1", null, null, null, null, null)); terms.Add(term1); var term2Id = Guid.NewGuid(); const string term2Name = "TestProvisioningTerm 2"; terms.Add(new Term(term2Id, term2Name, null, null, null, null, null)); termSet.Terms.AddRange(terms); termSets.Add(termSet); termGroup.TermSets.AddRange(termSets); template.TermGroups.Add(termGroup); using (var ctx = TestCommon.CreateClientContext()) { var parser = new TokenParser(ctx.Web, template); new ObjectTermGroups().ProvisionObjects(ctx.Web, template, parser, new ProvisioningTemplateApplyingInformation()); TaxonomySession session = TaxonomySession.GetTaxonomySession(ctx); var store = session.GetDefaultKeywordsTermStore(); var group = store.GetGroup(_termGroupGuid); var set = store.GetTermSet(_termSetGuid); ctx.Load(group); ctx.Load(set, s => s.Terms); ctx.ExecuteQueryRetry(); Assert.IsInstanceOfType(group, typeof(Microsoft.SharePoint.Client.Taxonomy.TermGroup)); Assert.IsInstanceOfType(set, typeof(Microsoft.SharePoint.Client.Taxonomy.TermSet)); var orderedTerms = set.Terms.OrderBy(t => t.Name, StringComparer.Ordinal).ToArray(); Assert.AreEqual(2, orderedTerms.Length); var remoteTerm1 = orderedTerms[0]; Assert.AreEqual(term1Id, remoteTerm1.Id); StringAssert.Matches(remoteTerm1.Name, new Regex(Regex.Escape(term1Name))); var remoteTerm2 = orderedTerms[1]; Assert.AreEqual(term2Id, remoteTerm2.Id); StringAssert.Matches(remoteTerm2.Name, new Regex(Regex.Escape(term2Name))); var creationInfo = new ProvisioningTemplateCreationInformation(ctx.Web) { BaseTemplate = ctx.Web.GetBaseTemplate() }; var template2 = new ProvisioningTemplate(); template2 = new ObjectTermGroups().ExtractObjects(ctx.Web, template, creationInfo); Assert.IsTrue(template.TermGroups.Any()); Assert.IsInstanceOfType(template.TermGroups, typeof(PnP.Framework.Provisioning.Model.TermGroupCollection)); } }
public void CanProvisionObjects() { var template = new ProvisioningTemplate(); TermGroup termGroup = new TermGroup(_termGroupGuid, "TestProvisioningGroup", null); List<TermSet> termSets = new List<TermSet>(); TermSet termSet = new TermSet(_termSetGuid, "TestProvisioningTermSet", null, true, false, null, null); List<Term> terms = new List<Term>(); var term1 = new Term(Guid.NewGuid(), "TestProvisioningTerm 1", null, null, null, null, null); term1.Properties.Add("TestProp1", "Test Value 1"); term1.LocalProperties.Add("TestLocalProp1", "Test Value 1"); term1.Labels.Add(new TermLabel() { Language = 1033, Value = "Testing" }); term1.Terms.Add(new Term(Guid.NewGuid(), "Sub Term 1", null, null, null, null, null)); terms.Add(term1); terms.Add(new Term(Guid.NewGuid(), "TestProvisioningTerm 2", null, null, null, null, null)); termSet.Terms.AddRange(terms); termSets.Add(termSet); termGroup.TermSets.AddRange(termSets); template.TermGroups.Add(termGroup); using (var ctx = TestCommon.CreateClientContext()) { var parser = new TokenParser(ctx.Web, template); new ObjectTermGroups().ProvisionObjects(ctx.Web, template, parser, new ProvisioningTemplateApplyingInformation()); TaxonomySession session = TaxonomySession.GetTaxonomySession(ctx); var store = session.GetDefaultKeywordsTermStore(); var group = store.GetGroup(_termGroupGuid); var set = store.GetTermSet(_termSetGuid); ctx.Load(group); ctx.Load(set, s => s.Terms); ctx.ExecuteQueryRetry(); Assert.IsInstanceOfType(group, typeof(Microsoft.SharePoint.Client.Taxonomy.TermGroup)); Assert.IsInstanceOfType(set, typeof(Microsoft.SharePoint.Client.Taxonomy.TermSet)); Assert.IsTrue(set.Terms.Count == 2); var creationInfo = new ProvisioningTemplateCreationInformation(ctx.Web) { BaseTemplate = ctx.Web.GetBaseTemplate() }; var template2 = new ProvisioningTemplate(); template2 = new ObjectTermGroups().ExtractObjects(ctx.Web, template, creationInfo); Assert.IsTrue(template.TermGroups.Any()); Assert.IsInstanceOfType(template.TermGroups, typeof(Core.Framework.Provisioning.Model.TermGroupCollection)); } }
protected override void ExecuteCmdlet() { var template = new ProvisioningTemplate(); var templateCi = new ProvisioningTemplateCreationInformation(ClientContext.Web) { IncludeAllTermGroups = true }; template = new ObjectTermGroups().CreateEntities(ClientContext.Web, template, templateCi); template.Security = null; template.Features = null; template.CustomActions = null; template.ComposedLook = null; if (this.MyInvocation.BoundParameters.ContainsKey("Identity")) { if (Identity.Id != Guid.Empty) { template.TermGroups.RemoveAll(t => t.Id != Identity.Id); } else if (Identity.Name != string.Empty) { template.TermGroups.RemoveAll(t => t.Name != Identity.Name); } } var outputStream = XMLPnPSchemaFormatter.LatestFormatter.ToFormattedTemplate(template); var reader = new StreamReader(outputStream); var fullxml = reader.ReadToEnd(); var xml = string.Empty; if (!FullTemplate) { var document = XDocument.Parse(fullxml); XNamespace pnp = XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05; var termGroupsElement = document.Root.Descendants(pnp + "TermGroups").FirstOrDefault(); if (termGroupsElement != null) { xml = termGroupsElement.ToString(); } } else { xml = fullxml; } if (!string.IsNullOrEmpty(Out)) { if (!Path.IsPathRooted(Out)) { Out = Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Out); } if (File.Exists(Out)) { if (Force || ShouldContinue(string.Format(Resources.File0ExistsOverwrite, Out), Resources.Confirm)) { File.WriteAllText(Out, xml, Encoding); } } else { File.WriteAllText(Out, xml, Encoding); } } else { WriteObject(xml); } }