Skip to content

Commit

Permalink
Update after refactoring by Tobias
Browse files Browse the repository at this point in the history
  • Loading branch information
reshmee011 authored and gautamdsheth committed Apr 27, 2024
1 parent f0adc22 commit 94f93e8
Showing 1 changed file with 136 additions and 116 deletions.
252 changes: 136 additions & 116 deletions src/Commands/Model/SPOTenant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace PnP.PowerShell.Commands.Model
{
public class SPOTenant
public partial class SPOTenant
{
#region Properties

Expand Down Expand Up @@ -196,30 +196,6 @@ public class SPOTenant
public bool? AppBypassInformationBarriers { private set; get; }

public InformationBarriersMode? DefaultOneDriveInformationBarrierMode { private set; get; }

public bool SitePagesEnabled { private set; get; }
public bool DisableSelfServiceSiteCreation { private set; get; }
public bool EnableAutoNewsDigest { private set;get; }
public string CustomFormUrl { private set; get; }
public bool AutoQuotaEnabled { get; private set; }
public bool DisableGroupify { get; private set; }
public bool IncludeAtAGlanceInShareEmails { get; private set; }
public string MailFromAddress { get; private set; }
public bool MobileNotificationIsEnabledForSharepoint { get; private set; }
public string NewSiteManagedPath { get; private set; }
public bool NewSubsiteInModernOffForAll { get; private set; }
public bool NewSubsiteInModernOffForModernTemplates { get; private set; }
public string NewTeamSiteManagedPath { get; private set; }
public string ParentSiteUrl { get; private set; }
public string PolicyOption { get; private set; }
public bool RequireSecondaryContact { get; private set; }
public bool ShowSelfServiceSiteCreation { get; private set; }
public int SiteCreationDefaultStorageQuota { get; private set; }
public bool SiteCreationNewUX { get; private set; }
public string SmtpServer { get; private set; }
public bool SPListModernUXOff { get; private set; }
public int TenantDefaultTimeZoneId { get; private set; }
public string[] AvailableManagedPathsForSiteCreation { get; private set; }
#endregion

public SPOTenant(Tenant tenant, ClientContext clientContext)
Expand Down Expand Up @@ -737,126 +713,170 @@ public SPOTenant(Tenant tenant, ClientContext clientContext)

try
{
var httpClient = PnP.Framework.Http.PnPHttpClient.Instance.GetHttpClient(clientContext);
var tenantInternalSettings = Utilities.REST.RestHelper.GetAsync<SPOTenantInternalSettings>(httpClient, $"{clientContext.Url}_api/SPOInternalUseOnly.TenantAdminSettings", clientContext.GetAccessToken(),false).GetAwaiter().GetResult();

SitePagesEnabled = tenantInternalSettings.SitePagesEnabled.Value;
DisableSelfServiceSiteCreation = tenantInternalSettings.DisableSelfServiceSiteCreation.Value;
EnableAutoNewsDigest = tenantInternalSettings.EnableAutoNewsDigest.Value;
CustomFormUrl = tenantInternalSettings.CustomFormUrl.Value;
AutoQuotaEnabled = tenantInternalSettings.AutoQuotaEnabled.Value;
DisableGroupify = tenantInternalSettings.DisableGroupify.Value;
IncludeAtAGlanceInShareEmails = tenantInternalSettings.IncludeAtAGlanceInShareEmails.Value;
MailFromAddress = tenantInternalSettings.MailFromAddress.Value;
MobileNotificationIsEnabledForSharepoint = tenantInternalSettings.MobileNotificationIsEnabledForSharepoint.Value;
NewSiteManagedPath = tenantInternalSettings.NewSiteManagedPath.Value;
NewSubsiteInModernOffForAll = tenantInternalSettings.NewSubsiteInModernOffForAll.Value;
NewSubsiteInModernOffForModernTemplates = tenantInternalSettings.NewSubsiteInModernOffForModernTemplates.Value;
NewTeamSiteManagedPath = tenantInternalSettings.NewTeamSiteManagedPath.Value;
ParentSiteUrl = tenantInternalSettings.ParentSiteUrl.Value;
PolicyOption = tenantInternalSettings.PolicyOption.Value;
RequireSecondaryContact = tenantInternalSettings.RequireSecondaryContact.Value;
ShowSelfServiceSiteCreation = tenantInternalSettings.ShowSelfServiceSiteCreation.Value;
SiteCreationNewUX = tenantInternalSettings.SiteCreationNewUX.Value;
SmtpServer = tenantInternalSettings.SmtpServer.Value;
SPListModernUXOff = tenantInternalSettings.SPListModernUXOff.Value;
TenantDefaultTimeZoneId = tenantInternalSettings.TenantDefaultTimeZoneId.Value;
AvailableManagedPathsForSiteCreation = tenantInternalSettings.AvailableManagedPathsForSiteCreation;
this.initSPOTenantInternalSettings(clientContext);
}
catch
{
}
}
}

public class SPOTenantInternalSettings
public partial class SPOTenant
{
[JsonProperty("AutoQuotaEnabled")]
public ReadOnlyBool AutoQuotaEnabled { get; set; }
#region Internal Settings properties

public bool SitePagesEnabled { private set; get; }
public bool DisableSelfServiceSiteCreation { private set; get; }
public bool EnableAutoNewsDigest { private set;get; }
public string CustomFormUrl { private set; get; }
public bool AutoQuotaEnabled { get; private set; }
public bool DisableGroupify { get; private set; }
public bool IncludeAtAGlanceInShareEmails { get; private set; }
public string MailFromAddress { get; private set; }
public bool MobileNotificationIsEnabledForSharepoint { get; private set; }
public string NewSiteManagedPath { get; private set; }
public bool NewSubsiteInModernOffForAll { get; private set; }
public bool NewSubsiteInModernOffForModernTemplates { get; private set; }
public string NewTeamSiteManagedPath { get; private set; }
public string ParentSiteUrl { get; private set; }
public string PolicyOption { get; private set; }
public bool RequireSecondaryContact { get; private set; }
public bool ShowSelfServiceSiteCreation { get; private set; }
public int SiteCreationDefaultStorageQuota { get; private set; }
public bool SiteCreationNewUX { get; private set; }
public string SmtpServer { get; private set; }
public bool SPListModernUXOff { get; private set; }
public int TenantDefaultTimeZoneId { get; private set; }
public string[] AvailableManagedPathsForSiteCreation { get; private set; }

[JsonProperty("AvailableManagedPathsForSiteCreation")]
public string[] AvailableManagedPathsForSiteCreation { get; set; }
#endregion

[JsonProperty("IncludeAtAGlanceInShareEmails")]
public ReadOnlyBool IncludeAtAGlanceInShareEmails { get; set; }
private void initSPOTenantInternalSettings(ClientContext clientContext)
{
var httpClient = PnP.Framework.Http.PnPHttpClient.Instance.GetHttpClient(clientContext);
var internalSettingsData = Utilities.REST.RestHelper.GetAsync<InternalSettings>(httpClient, $"{clientContext.Url}_api/SPOInternalUseOnly.TenantAdminSettings", clientContext.GetAccessToken(), false).GetAwaiter().GetResult();

SitePagesEnabled = internalSettingsData.SitePagesEnabled.Value;
DisableSelfServiceSiteCreation = internalSettingsData.DisableSelfServiceSiteCreation.Value;
EnableAutoNewsDigest = internalSettingsData.EnableAutoNewsDigest.Value;
CustomFormUrl = internalSettingsData.CustomFormUrl.Value;
AutoQuotaEnabled = internalSettingsData.AutoQuotaEnabled.Value;
DisableGroupify = internalSettingsData.DisableGroupify.Value;
IncludeAtAGlanceInShareEmails = internalSettingsData.IncludeAtAGlanceInShareEmails.Value;
MailFromAddress = internalSettingsData.MailFromAddress.Value;
MobileNotificationIsEnabledForSharepoint = internalSettingsData.MobileNotificationIsEnabledForSharepoint.Value;
NewSiteManagedPath = internalSettingsData.NewSiteManagedPath.Value;
NewSubsiteInModernOffForAll = internalSettingsData.NewSubsiteInModernOffForAll.Value;
NewSubsiteInModernOffForModernTemplates = internalSettingsData.NewSubsiteInModernOffForModernTemplates.Value;
NewTeamSiteManagedPath = internalSettingsData.NewTeamSiteManagedPath.Value;
ParentSiteUrl = internalSettingsData.ParentSiteUrl.Value;
PolicyOption = internalSettingsData.PolicyOption.Value;
RequireSecondaryContact = internalSettingsData.RequireSecondaryContact.Value;
ShowSelfServiceSiteCreation = internalSettingsData.ShowSelfServiceSiteCreation.Value;
SiteCreationNewUX = internalSettingsData.SiteCreationNewUX.Value;
SmtpServer = internalSettingsData.SmtpServer.Value;
SPListModernUXOff = internalSettingsData.SPListModernUXOff.Value;
TenantDefaultTimeZoneId = internalSettingsData.TenantDefaultTimeZoneId.Value;
AvailableManagedPathsForSiteCreation = internalSettingsData.AvailableManagedPathsForSiteCreation;
}

[JsonProperty("MailFromAddress")]
public ReadOnlyString MailFromAddress { get; set; }
private class InternalSettings
{
# region Properties

[JsonProperty("MobileNotificationIsEnabledForSharepoint")]
public ReadOnlyBool MobileNotificationIsEnabledForSharepoint { get; set; }
[JsonProperty("AutoQuotaEnabled")]
public SettingsBoolProperty AutoQuotaEnabled { get; set; }

[JsonProperty("NewSiteManagedPath")]
public ReadOnlyString NewSiteManagedPath { get; set; }
[JsonProperty("AvailableManagedPathsForSiteCreation")]
public string[] AvailableManagedPathsForSiteCreation { get; set; }

[JsonProperty("ParentSiteUrl")]
public ReadOnlyString ParentSiteUrl { get; set; }
[JsonProperty("IncludeAtAGlanceInShareEmails")]
public SettingsBoolProperty IncludeAtAGlanceInShareEmails { get; set; }

[JsonProperty("PolicyOption")]
public ReadOnlyString PolicyOption { get; set; }
[JsonProperty("MailFromAddress")]
public SettingsStringProperty MailFromAddress { get; set; }

[JsonProperty("RequireSecondaryContact")]
public ReadOnlyBool RequireSecondaryContact { get; set; }
[JsonProperty("MobileNotificationIsEnabledForSharepoint")]
public SettingsBoolProperty MobileNotificationIsEnabledForSharepoint { get; set; }

[JsonProperty("ShowSelfServiceSiteCreation")]
public ReadOnlyBool ShowSelfServiceSiteCreation { get; set; }
[JsonProperty("NewSiteManagedPath")]
public SettingsStringProperty NewSiteManagedPath { get; set; }

[JsonProperty("SiteCreationNewUX")]
public ReadOnlyBool SiteCreationNewUX { get; set; }
[JsonProperty("ParentSiteUrl")]
public SettingsStringProperty ParentSiteUrl { get; set; }

[JsonProperty("SmtpServer")]
public ReadOnlyString SmtpServer { get; set; }
[JsonProperty("PolicyOption")]
public SettingsStringProperty PolicyOption { get; set; }

[JsonProperty("SPListModernUXOff")]
public ReadOnlyBool SPListModernUXOff { get; set; }
[JsonProperty("RequireSecondaryContact")]
public SettingsBoolProperty RequireSecondaryContact { get; set; }

[JsonProperty("TenantDefaultTimeZoneId")]
public ReadOnlyInt TenantDefaultTimeZoneId { get; set; }
[JsonProperty("ShowSelfServiceSiteCreation")]
public SettingsBoolProperty ShowSelfServiceSiteCreation { get; set; }

[JsonProperty("SitePagesEnabled")]
public ReadOnlyBool SitePagesEnabled { get; set; }
[JsonProperty("SiteCreationNewUX")]
public SettingsBoolProperty SiteCreationNewUX { get; set; }

[JsonProperty("DisableGroupify")]
public ReadOnlyBool DisableGroupify { get; set; }
[JsonProperty("SmtpServer")]
public SettingsStringProperty SmtpServer { get; set; }

[JsonProperty("CustomFormUrl")]
public ReadOnlyString CustomFormUrl { get; set; }
[JsonProperty("SPListModernUXOff")]
public SettingsBoolProperty SPListModernUXOff { get; set; }

[JsonProperty("EnableAutoNewsDigest")]
public ReadOnlyBool EnableAutoNewsDigest { get; set; }
[JsonProperty("TenantDefaultTimeZoneId")]
public SettingsIntProperty TenantDefaultTimeZoneId { get; set; }

[JsonProperty("DisableSelfServiceSiteCreation")]
public ReadOnlyBool DisableSelfServiceSiteCreation { get; set; }
[JsonProperty("SitePagesEnabled")]
public SettingsBoolProperty SitePagesEnabled { get; set; }

[JsonProperty("NewSubsiteInModernOffForAll")]
public ReadOnlyBool NewSubsiteInModernOffForAll { get; set; }
[JsonProperty("NewSubsiteInModernOffForModernTemplates")]
public ReadOnlyBool NewSubsiteInModernOffForModernTemplates { get; set; }
[JsonProperty("NewTeamSiteManagedPath")]
public ReadOnlyString NewTeamSiteManagedPath { get; set; }
}
public class ReadOnlyBool
{
[JsonProperty("IsReadOnly")]
public bool IsReadOnly { get; set; }
[JsonProperty("DisableGroupify")]
public SettingsBoolProperty DisableGroupify { get; set; }

[JsonProperty("Value")]
public bool Value { get; set; }
}
public class ReadOnlyInt
{
[JsonProperty("IsReadOnly")]
public bool IsReadOnly { get; set; }
[JsonProperty("CustomFormUrl")]
public SettingsStringProperty CustomFormUrl { get; set; }

[JsonProperty("Value")]
public int Value { get; set; }
}
public class ReadOnlyString
{
[JsonProperty("IsReadOnly")]
public bool IsReadOnly { get; set; }
[JsonProperty("EnableAutoNewsDigest")]
public SettingsBoolProperty EnableAutoNewsDigest { get; set; }

[JsonProperty("DisableSelfServiceSiteCreation")]
public SettingsBoolProperty DisableSelfServiceSiteCreation { get; set; }

[JsonProperty("NewSubsiteInModernOffForAll")]
public SettingsBoolProperty NewSubsiteInModernOffForAll { get; set; }
[JsonProperty("NewSubsiteInModernOffForModernTemplates")]
public SettingsBoolProperty NewSubsiteInModernOffForModernTemplates { get; set; }
[JsonProperty("NewTeamSiteManagedPath")]
public SettingsStringProperty NewTeamSiteManagedPath { get; set; }

#endregion

# region Helper Types
public class SettingsBoolProperty
{
[JsonProperty("IsReadOnly")]
public bool IsReadOnly { get; set; }

[JsonProperty("Value")]
public string Value { get; set; }
[JsonProperty("Value")]
public bool Value { get; set; }
}
public class SettingsIntProperty
{
[JsonProperty("IsReadOnly")]
public bool IsReadOnly { get; set; }

[JsonProperty("Value")]
public int Value { get; set; }
}
public class SettingsStringProperty
{
[JsonProperty("IsReadOnly")]
public bool IsReadOnly { get; set; }

[JsonProperty("Value")]
public string Value { get; set; }
}

#endregion
}
}
}

0 comments on commit 94f93e8

Please sign in to comment.