From b7c9f6da7e042af84c336d8a7a6f67c73bdad291 Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Wed, 3 May 2023 17:41:39 +0530 Subject: [PATCH 01/10] #532 - Export-PnPTaxonomy - exclude deprecated terms --- documentation/Export-PnPTaxonomy.md | 16 +++++++- src/Commands/Taxonomy/ExportTaxonomy.cs | 50 ++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/documentation/Export-PnPTaxonomy.md b/documentation/Export-PnPTaxonomy.md index d64d5434b..9c12cbe9a 100644 --- a/documentation/Export-PnPTaxonomy.md +++ b/documentation/Export-PnPTaxonomy.md @@ -15,7 +15,7 @@ Exports a taxonomy to either the output or to a file. ## SYNTAX ```powershell -Export-PnPTaxonomy [-TermSetId ] [-IncludeID] [-Path ] [-TermStoreName ] [-Force] +Export-PnPTaxonomy [-TermSetId ] [-IncludeID] [-ExcludeDeprecated] [-Path ] [-TermStoreName ] [-Force] [-Delimiter ] [-Lcid ] [-Encoding ] [-Connection ] ``` @@ -142,6 +142,20 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ExcludeDeprecated +If specified will exclude the deprecated taxonomy items in the output. Applicable only if you specify TermSetId or TermStoreName. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Lcid Specify the language code for the exported terms diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index 6791e008a..fa4210f90 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -1,9 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Management.Automation; -using Microsoft.SharePoint.Client; +using Microsoft.SharePoint.Client; using Microsoft.SharePoint.Client.Taxonomy; using PnP.PowerShell.Commands.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; using File = System.IO.File; using Resources = PnP.PowerShell.Commands.Properties.Resources; @@ -18,6 +19,9 @@ public class ExportTaxonomy : PnPSharePointCmdlet [Parameter(Mandatory = false)] public SwitchParameter IncludeID = false; + [Parameter(Mandatory = false)] + public SwitchParameter ExcludeDeprecated = false; + [Parameter(Mandatory = false)] public string Path; @@ -46,6 +50,9 @@ protected override void ExecuteCmdlet() { throw new Exception("Restricted delimiter specified"); } + + if (ExcludeDeprecated) IncludeID = true; + if (!string.IsNullOrEmpty(TermStoreName)) { var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); @@ -56,6 +63,11 @@ protected override void ExecuteCmdlet() { exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID, Delimiter, Lcid); } + + if (ExcludeDeprecated) + { + RemoveDeprecatedTerms(exportedTerms); + } } else { @@ -74,7 +86,7 @@ protected override void ExecuteCmdlet() } System.Text.Encoding textEncoding = System.Text.Encoding.Unicode; - if(Encoding == Encoding.UTF7) + if (Encoding == Encoding.UTF7) { WriteWarning("UTF-7 Encoding is no longer supported. Defaulting to UTF-8"); Encoding = Encoding.UTF8; @@ -107,7 +119,6 @@ protected override void ExecuteCmdlet() textEncoding = System.Text.Encoding.Unicode; break; } - } if (File.Exists(Path)) @@ -124,5 +135,32 @@ protected override void ExecuteCmdlet() } } + private void RemoveDeprecatedTerms(List exportedTerms) + { + var termIds = exportedTerms.Select(t => t.Split(";#").Last().ToGuid()); + var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); + if (termIds.Any()) + { + //refetch all the terms (500 per call) again just to check the term is deprecated or not + var termGroups = termIds.Select((termId, index) => new { termId, index }) + .GroupBy(x => x.index / 500, g => g.termId); + foreach (var termGroup in termGroups) + { + var terms = taxSession.GetTermsById(termGroup.ToArray()); + ClientContext.Load(terms); + ClientContext.ExecuteQuery(); + var deprecatedTerms = terms.Where(t => t.IsDeprecated); + //remove all deprecated terms + foreach (var deprecatedTerm in deprecatedTerms) + { + var index = exportedTerms.FindIndex(s => s.EndsWith(deprecatedTerm.Id.ToString())); + if (index > -1) + { + exportedTerms.RemoveAt(index); + } + } + } + } + } } } From f34c2119c05b2595efe047ed9b6d9d38ee3aebb5 Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Wed, 3 May 2023 18:49:01 +0530 Subject: [PATCH 02/10] Feature: Export-PnPTaxonomy - exclude deprecated terms --- src/Commands/Taxonomy/ExportTaxonomy.cs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index fa4210f90..618da70a7 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -51,22 +51,20 @@ protected override void ExecuteCmdlet() throw new Exception("Restricted delimiter specified"); } - if (ExcludeDeprecated) IncludeID = true; - if (!string.IsNullOrEmpty(TermStoreName)) { var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); var termStore = taxSession.TermStores.GetByName(TermStoreName); - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID, termStore, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, termStore, Delimiter, Lcid); } else { - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, Delimiter, Lcid); } if (ExcludeDeprecated) { - RemoveDeprecatedTerms(exportedTerms); + exportedTerms = RemoveDeprecatedTerms(exportedTerms); } } else @@ -135,7 +133,7 @@ protected override void ExecuteCmdlet() } } - private void RemoveDeprecatedTerms(List exportedTerms) + private List RemoveDeprecatedTerms(List exportedTerms) { var termIds = exportedTerms.Select(t => t.Split(";#").Last().ToGuid()); var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); @@ -161,6 +159,18 @@ private void RemoveDeprecatedTerms(List exportedTerms) } } } + + if (!IncludeID) + { + //remove the ids from the term string. + var exportedTermsWithoutId = new List(); + foreach (var term in exportedTerms) + { + exportedTermsWithoutId.Add(string.Join("|", term.Split("|").Select(t => t.Split(";#").First()))); + } + return exportedTermsWithoutId; + } + return exportedTerms; } } } From 16d7169f37588085a4d89d81eda084b7afd42546 Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Wed, 3 May 2023 19:02:12 +0530 Subject: [PATCH 03/10] Export-PnPTaxonomy - exclude deprecated terms --- src/Commands/Taxonomy/ExportTaxonomy.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index 618da70a7..c7f778bd5 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -166,7 +166,7 @@ private List RemoveDeprecatedTerms(List exportedTerms) var exportedTermsWithoutId = new List(); foreach (var term in exportedTerms) { - exportedTermsWithoutId.Add(string.Join("|", term.Split("|").Select(t => t.Split(";#").First()))); + exportedTermsWithoutId.Add(string.Join(Delimiter, term.Split(Delimiter).Select(t => t.Split(";#").First()))); } return exportedTermsWithoutId; } From 2b6dc6d6f56c53620e47e9a6fa19d3fe0dcf75b5 Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Thu, 4 May 2023 11:58:44 +0530 Subject: [PATCH 04/10] Feature: Export-PnPTaxonomy - exclude deprecated terms --- src/Commands/Taxonomy/ExportTaxonomy.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index c7f778bd5..c0b70c506 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -51,15 +51,20 @@ protected override void ExecuteCmdlet() throw new Exception("Restricted delimiter specified"); } + if (ExcludeDeprecated && Delimiter != "|") + { + throw new Exception("ExcludeDeprecated works only on the default delimiter"); + } + if (!string.IsNullOrEmpty(TermStoreName)) { var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); var termStore = taxSession.TermStores.GetByName(TermStoreName); - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, termStore, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, (IncludeID || ExcludeDeprecated), termStore, Delimiter, Lcid); } else { - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, (IncludeID || ExcludeDeprecated), Delimiter, Lcid); } if (ExcludeDeprecated) From 4adb3335efd43ee82cafd501a3372609781a842d Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Wed, 3 May 2023 17:41:39 +0530 Subject: [PATCH 05/10] #532 - Export-PnPTaxonomy - exclude deprecated terms --- documentation/Export-PnPTaxonomy.md | 16 +++++++- src/Commands/Taxonomy/ExportTaxonomy.cs | 50 ++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/documentation/Export-PnPTaxonomy.md b/documentation/Export-PnPTaxonomy.md index d64d5434b..9c12cbe9a 100644 --- a/documentation/Export-PnPTaxonomy.md +++ b/documentation/Export-PnPTaxonomy.md @@ -15,7 +15,7 @@ Exports a taxonomy to either the output or to a file. ## SYNTAX ```powershell -Export-PnPTaxonomy [-TermSetId ] [-IncludeID] [-Path ] [-TermStoreName ] [-Force] +Export-PnPTaxonomy [-TermSetId ] [-IncludeID] [-ExcludeDeprecated] [-Path ] [-TermStoreName ] [-Force] [-Delimiter ] [-Lcid ] [-Encoding ] [-Connection ] ``` @@ -142,6 +142,20 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ExcludeDeprecated +If specified will exclude the deprecated taxonomy items in the output. Applicable only if you specify TermSetId or TermStoreName. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Lcid Specify the language code for the exported terms diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index 6791e008a..fa4210f90 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -1,9 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Management.Automation; -using Microsoft.SharePoint.Client; +using Microsoft.SharePoint.Client; using Microsoft.SharePoint.Client.Taxonomy; using PnP.PowerShell.Commands.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; using File = System.IO.File; using Resources = PnP.PowerShell.Commands.Properties.Resources; @@ -18,6 +19,9 @@ public class ExportTaxonomy : PnPSharePointCmdlet [Parameter(Mandatory = false)] public SwitchParameter IncludeID = false; + [Parameter(Mandatory = false)] + public SwitchParameter ExcludeDeprecated = false; + [Parameter(Mandatory = false)] public string Path; @@ -46,6 +50,9 @@ protected override void ExecuteCmdlet() { throw new Exception("Restricted delimiter specified"); } + + if (ExcludeDeprecated) IncludeID = true; + if (!string.IsNullOrEmpty(TermStoreName)) { var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); @@ -56,6 +63,11 @@ protected override void ExecuteCmdlet() { exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID, Delimiter, Lcid); } + + if (ExcludeDeprecated) + { + RemoveDeprecatedTerms(exportedTerms); + } } else { @@ -74,7 +86,7 @@ protected override void ExecuteCmdlet() } System.Text.Encoding textEncoding = System.Text.Encoding.Unicode; - if(Encoding == Encoding.UTF7) + if (Encoding == Encoding.UTF7) { WriteWarning("UTF-7 Encoding is no longer supported. Defaulting to UTF-8"); Encoding = Encoding.UTF8; @@ -107,7 +119,6 @@ protected override void ExecuteCmdlet() textEncoding = System.Text.Encoding.Unicode; break; } - } if (File.Exists(Path)) @@ -124,5 +135,32 @@ protected override void ExecuteCmdlet() } } + private void RemoveDeprecatedTerms(List exportedTerms) + { + var termIds = exportedTerms.Select(t => t.Split(";#").Last().ToGuid()); + var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); + if (termIds.Any()) + { + //refetch all the terms (500 per call) again just to check the term is deprecated or not + var termGroups = termIds.Select((termId, index) => new { termId, index }) + .GroupBy(x => x.index / 500, g => g.termId); + foreach (var termGroup in termGroups) + { + var terms = taxSession.GetTermsById(termGroup.ToArray()); + ClientContext.Load(terms); + ClientContext.ExecuteQuery(); + var deprecatedTerms = terms.Where(t => t.IsDeprecated); + //remove all deprecated terms + foreach (var deprecatedTerm in deprecatedTerms) + { + var index = exportedTerms.FindIndex(s => s.EndsWith(deprecatedTerm.Id.ToString())); + if (index > -1) + { + exportedTerms.RemoveAt(index); + } + } + } + } + } } } From 69379eb98b32023f1542044736ca0cf23b3b8038 Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Wed, 3 May 2023 18:49:01 +0530 Subject: [PATCH 06/10] Feature: Export-PnPTaxonomy - exclude deprecated terms --- src/Commands/Taxonomy/ExportTaxonomy.cs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index fa4210f90..618da70a7 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -51,22 +51,20 @@ protected override void ExecuteCmdlet() throw new Exception("Restricted delimiter specified"); } - if (ExcludeDeprecated) IncludeID = true; - if (!string.IsNullOrEmpty(TermStoreName)) { var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); var termStore = taxSession.TermStores.GetByName(TermStoreName); - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID, termStore, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, termStore, Delimiter, Lcid); } else { - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, Delimiter, Lcid); } if (ExcludeDeprecated) { - RemoveDeprecatedTerms(exportedTerms); + exportedTerms = RemoveDeprecatedTerms(exportedTerms); } } else @@ -135,7 +133,7 @@ protected override void ExecuteCmdlet() } } - private void RemoveDeprecatedTerms(List exportedTerms) + private List RemoveDeprecatedTerms(List exportedTerms) { var termIds = exportedTerms.Select(t => t.Split(";#").Last().ToGuid()); var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); @@ -161,6 +159,18 @@ private void RemoveDeprecatedTerms(List exportedTerms) } } } + + if (!IncludeID) + { + //remove the ids from the term string. + var exportedTermsWithoutId = new List(); + foreach (var term in exportedTerms) + { + exportedTermsWithoutId.Add(string.Join("|", term.Split("|").Select(t => t.Split(";#").First()))); + } + return exportedTermsWithoutId; + } + return exportedTerms; } } } From 53dc1bcfe8346fc6f93473e4c11b8e1f807e7e0a Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Wed, 3 May 2023 19:02:12 +0530 Subject: [PATCH 07/10] Export-PnPTaxonomy - exclude deprecated terms --- src/Commands/Taxonomy/ExportTaxonomy.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index 618da70a7..c7f778bd5 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -166,7 +166,7 @@ private List RemoveDeprecatedTerms(List exportedTerms) var exportedTermsWithoutId = new List(); foreach (var term in exportedTerms) { - exportedTermsWithoutId.Add(string.Join("|", term.Split("|").Select(t => t.Split(";#").First()))); + exportedTermsWithoutId.Add(string.Join(Delimiter, term.Split(Delimiter).Select(t => t.Split(";#").First()))); } return exportedTermsWithoutId; } From ac400c37fc61f282fed9cc706fc28ae57c754e3c Mon Sep 17 00:00:00 2001 From: Sankar Kumar Date: Thu, 4 May 2023 11:58:44 +0530 Subject: [PATCH 08/10] Feature: Export-PnPTaxonomy - exclude deprecated terms --- src/Commands/Taxonomy/ExportTaxonomy.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index c7f778bd5..c0b70c506 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -51,15 +51,20 @@ protected override void ExecuteCmdlet() throw new Exception("Restricted delimiter specified"); } + if (ExcludeDeprecated && Delimiter != "|") + { + throw new Exception("ExcludeDeprecated works only on the default delimiter"); + } + if (!string.IsNullOrEmpty(TermStoreName)) { var taxSession = TaxonomySession.GetTaxonomySession(ClientContext); var termStore = taxSession.TermStores.GetByName(TermStoreName); - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, termStore, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, (IncludeID || ExcludeDeprecated), termStore, Delimiter, Lcid); } else { - exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, IncludeID || ExcludeDeprecated, Delimiter, Lcid); + exportedTerms = ClientContext.Site.ExportTermSet(TermSetId, (IncludeID || ExcludeDeprecated), Delimiter, Lcid); } if (ExcludeDeprecated) From 4e1a89d8616e0586e82971203497150139754f1b Mon Sep 17 00:00:00 2001 From: Koen Zomers Date: Sun, 30 Jun 2024 23:06:55 +0200 Subject: [PATCH 09/10] Code cleanup --- documentation/Export-PnPTaxonomy.md | 8 ++++---- src/Commands/Taxonomy/ExportTaxonomy.cs | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/documentation/Export-PnPTaxonomy.md b/documentation/Export-PnPTaxonomy.md index 9c12cbe9a..ebc63daed 100644 --- a/documentation/Export-PnPTaxonomy.md +++ b/documentation/Export-PnPTaxonomy.md @@ -147,7 +147,7 @@ If specified will exclude the deprecated taxonomy items in the output. Applicabl ```yaml Type: SwitchParameter -Parameter Sets: (All) +Parameter Sets: TermSet Required: False Position: Named @@ -161,7 +161,7 @@ Specify the language code for the exported terms ```yaml Type: Int32 -Parameter Sets: (All) +Parameter Sets: TermSet Required: False Position: Named @@ -189,7 +189,7 @@ If specified, will export the specified termset only ```yaml Type: Guid -Parameter Sets: (All) +Parameter Sets: TermSet Required: False Position: Named @@ -203,7 +203,7 @@ Term store to export; if not specified the default term store is used. ```yaml Type: String -Parameter Sets: (All) +Parameter Sets: TermSet Required: False Position: Named diff --git a/src/Commands/Taxonomy/ExportTaxonomy.cs b/src/Commands/Taxonomy/ExportTaxonomy.cs index c0b70c506..6627712ad 100644 --- a/src/Commands/Taxonomy/ExportTaxonomy.cs +++ b/src/Commands/Taxonomy/ExportTaxonomy.cs @@ -13,19 +13,21 @@ namespace PnP.PowerShell.Commands.Taxonomy [Cmdlet(VerbsData.Export, "PnPTaxonomy")] public class ExportTaxonomy : PnPSharePointCmdlet { - [Parameter(Mandatory = false, ParameterSetName = "TermSet")] + private const string ParameterSet_TermSet = "TermSet"; + + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_TermSet)] public Guid TermSetId; [Parameter(Mandatory = false)] public SwitchParameter IncludeID = false; - [Parameter(Mandatory = false)] + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_TermSet)] public SwitchParameter ExcludeDeprecated = false; [Parameter(Mandatory = false)] public string Path; - [Parameter(Mandatory = false, ParameterSetName = "TermSet")] + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_TermSet)] public string TermStoreName; [Parameter(Mandatory = false)] @@ -34,17 +36,16 @@ public class ExportTaxonomy : PnPSharePointCmdlet [Parameter(Mandatory = false)] public string Delimiter = "|"; - [Parameter(Mandatory = false, ParameterSetName = "TermSet")] + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_TermSet)] public int Lcid = 0; [Parameter(Mandatory = false)] public Encoding Encoding = Encoding.Unicode; - protected override void ExecuteCmdlet() { List exportedTerms; - if (ParameterSetName == "TermSet") + if (ParameterSetName == ParameterSet_TermSet) { if (Delimiter != "|" && Delimiter == ";#") { @@ -53,7 +54,7 @@ protected override void ExecuteCmdlet() if (ExcludeDeprecated && Delimiter != "|") { - throw new Exception("ExcludeDeprecated works only on the default delimiter"); + throw new PSArgumentException($"{nameof(ExcludeDeprecated)} works only on the default delimiter", nameof(ExcludeDeprecated)); } if (!string.IsNullOrEmpty(TermStoreName)) From f9dd94b89fe22acc6a33158d89bd0bea76380edd Mon Sep 17 00:00:00 2001 From: Koen Zomers Date: Fri, 11 Oct 2024 10:40:07 +0200 Subject: [PATCH 10/10] Added changelog entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1118ce8f9..51c7d4626 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Added `-Icon` and `-Color` parameters to `Set-PnPList` cmdlet. [#4409](https://github.com/pnp/powershell/pull/4409) - Added `Remove-PnPTenantRestrictedSearchAllowedList` cmdlet to removes site URLs from the allowed list when Restricted SharePoint Search is enabled. [#4399](https://github.com/pnp/powershell/pull/4399) - Added `Get-PnPDeletedFlow` cmdlet to retrieve a list of flows which are soft deleted. [#4396](https://github.com/pnp/powershell/pull/4396) +- Added `-ExcludeDeprecated` to `Export-PnpTaxonomy` which allows for deprecated terms to be excluded from the export [#4053](https://github.com/pnp/powershell/pull/4053) ### Changed @@ -67,6 +68,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ### Contributors +- San [sankarkumar23] - Christian Veenhuis [ChVeen] - Nishkalank Bezawada [NishkalankBezawada] - Dan Toft [Tanddant]