Skip to content

Commit

Permalink
Update to parameter set instead of dynmaic set
Browse files Browse the repository at this point in the history
  • Loading branch information
reshmee011 committed Sep 10, 2024
1 parent 668a47b commit 3cf58e3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 35 deletions.
4 changes: 2 additions & 2 deletions documentation/Add-PnPTenantRestrictedSearchAllowedList.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Adds site URLs to the allowed list when Restricted SharePoint Search is enabled.
## SYNTAX

```powershell
Add-PnPTenantRestrictedSearchAllowedList [-SitesListFileUrl <String>] [-SiteList <String[]>] [-ContainsHeaders <SwitchParameter>] [-Connection <PnPConnection>]
Add-PnPTenantRestrictedSearchAllowedList [-SitesListFileUrl <String>] [-SitesList <String[]>] [-ContainsHeaders <SwitchParameter>] [-Connection <PnPConnection>]
```

## DESCRIPTION
Expand All @@ -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.

Expand Down
52 changes: 19 additions & 33 deletions src/Commands/Admin/AddTenantRestrictedSearchAllowedList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<string> _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");
Expand All @@ -57,10 +48,10 @@ protected override void ExecuteCmdlet()
AdminContext.ExecuteQueryRetry();
}

public IList<string> ReadFileContents()
{
private IList<string> ReadFileContents()
{
var lines = System.IO.File.ReadAllLines(SitesListFileUrl);
if (_fileParameters.ContainsHeader)
if (ContainsHeader)
{
lines = lines.Skip(1).ToArray();
}
Expand All @@ -76,10 +67,5 @@ public IList<string> ReadFileContents()

return lines.ToList();
}
public class FileParameters
{
[Parameter(Mandatory = false,ParameterSetName = ParameterSet_file)]
public SwitchParameter ContainsHeader;
}
}
}
}

0 comments on commit 3cf58e3

Please sign in to comment.