From 3cf58e335020a629d10021aa44aa8404793fa81d Mon Sep 17 00:00:00 2001 From: reshmee011 Date: Tue, 10 Sep 2024 06:57:07 +0100 Subject: [PATCH] Update to parameter set instead of dynmaic set --- ...dd-PnPTenantRestrictedSearchAllowedList.md | 4 +- .../AddTenantRestrictedSearchAllowedList.cs | 52 +++++++------------ 2 files changed, 21 insertions(+), 35 deletions(-) diff --git a/documentation/Add-PnPTenantRestrictedSearchAllowedList.md b/documentation/Add-PnPTenantRestrictedSearchAllowedList.md index dfe59c23b..f40789dbb 100644 --- a/documentation/Add-PnPTenantRestrictedSearchAllowedList.md +++ b/documentation/Add-PnPTenantRestrictedSearchAllowedList.md @@ -15,7 +15,7 @@ Adds site URLs to the allowed list when Restricted SharePoint Search is enabled. ## SYNTAX ```powershell -Add-PnPTenantRestrictedSearchAllowedList [-SitesListFileUrl ] [-SiteList ] [-ContainsHeaders ] [-Connection ] +Add-PnPTenantRestrictedSearchAllowedList [-SitesListFileUrl ] [-SitesList ] [-ContainsHeaders ] [-Connection ] ``` ## DESCRIPTION @@ -40,7 +40,7 @@ Adds site URLs to the allowed list from a CSV file. ### EXAMPLE 3 ```powershell -Add-PnPTenantRestrictedSearchAllowedList @("https://contoso.sharepoint.com/sites/Company311","https://contoso.sharepoint.com/sites/contosoportal") +Add-PnPTenantRestrictedSearchAllowedList -SitesList @("https://contoso.sharepoint.com/sites/Company311","https://contoso.sharepoint.com/sites/contosoportal") ``` Adds the specified sites to the allowed list. diff --git a/src/Commands/Admin/AddTenantRestrictedSearchAllowedList.cs b/src/Commands/Admin/AddTenantRestrictedSearchAllowedList.cs index 8a84eb619..2db07a6b3 100644 --- a/src/Commands/Admin/AddTenantRestrictedSearchAllowedList.cs +++ b/src/Commands/Admin/AddTenantRestrictedSearchAllowedList.cs @@ -8,46 +8,37 @@ namespace PnP.PowerShell.Commands.Files { - [Cmdlet(VerbsCommon.Add, "PnPTenantRestrictedSearchAllowedList")] - public class AddTenantRestrictedSearchAllowedList : PnPAdminCmdlet,IDynamicParameters + [Cmdlet(VerbsCommon.Add, "PnPTenantRestrictedSearchAllowedList", DefaultParameterSetName = ParameterSet_SiteList)] + public class AddTenantRestrictedSearchAllowedList : PnPAdminCmdlet { - private const string ParameterSet_file = "file"; - private FileParameters _fileParameters; + private const string ParameterSet_SiteList = "SiteList"; + private const string ParameterSet_File = "File"; - [Parameter(Mandatory = false)] - public string[] SiteList; + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_SiteList)] + public string[] SitesList; - [Parameter(Mandatory = false)] + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_File)] public string SitesListFileUrl; - public object GetDynamicParameters() - { - if (!ParameterSpecified(nameof(SiteList)) && !ParameterSpecified(nameof(SitesListFileUrl))) - { - throw new ArgumentException("Parameter set cannot be resolved using the specified named parameters."); - } - else if (ParameterSpecified(nameof(SitesListFileUrl))) - { - _fileParameters = new FileParameters(); - return _fileParameters; - } - - return null; - } + + [Parameter(Mandatory = false, ParameterSetName = ParameterSet_File)] + public SwitchParameter ContainsHeader; + protected override void ExecuteCmdlet() { IList _sitelist = null; - if (_fileParameters != null) + if (ParameterSetName == ParameterSet_File) { _sitelist = ReadFileContents(); } - else if (SiteList != null) + else if (ParameterSetName == ParameterSet_SiteList) { - _sitelist = SiteList; + _sitelist = SitesList; } else { throw new ArgumentException("Parameter set cannot be resolved using the specified named parameters."); } + if (_sitelist == null) { throw new InvalidOperationException("SiteList cannot be null"); @@ -57,10 +48,10 @@ protected override void ExecuteCmdlet() AdminContext.ExecuteQueryRetry(); } - public IList ReadFileContents() - { + private IList ReadFileContents() + { var lines = System.IO.File.ReadAllLines(SitesListFileUrl); - if (_fileParameters.ContainsHeader) + if (ContainsHeader) { lines = lines.Skip(1).ToArray(); } @@ -76,10 +67,5 @@ public IList ReadFileContents() return lines.ToList(); } - public class FileParameters - { - [Parameter(Mandatory = false,ParameterSetName = ParameterSet_file)] - public SwitchParameter ContainsHeader; - } } -} +} \ No newline at end of file