Framework/Abstracts/FixControl/FixSubscriptionBase.ps1
Set-StrictMode -Version Latest class FixSubscriptionBase: FixControlBase { [string] $ResourceGroupName = ""; [string] $ResourceName = ""; hidden [ResourceConfig] $ResourceConfig = $null; FixSubscriptionBase([string] $subscriptionId, [ArrayWrapper] $controls): Base($subscriptionId) { if($controls) { $this.CreateInstance($controls.Values); } else { $this.CreateInstance(@()); } } hidden [void] CreateInstance([ControlParam[]] $controls) { [Helpers]::AbstractClass($this, [FixSubscriptionBase]); $typeMapping = [SVTMapping]::SubscriptionMapping; if (-not $typeMapping) { throw [System.ArgumentException] ("No subscription type mapping found"); } $this.LoadSvtConfig($typeMapping.JsonFileName); if(-not $controls) { throw [System.ArgumentException] ("No controls found to fix"); } $this.Controls += $controls; } [MessageData[]] FixStarted() { return $this.PublishCustomMessage([Constants]::DoubleDashLine + "`r`nStarting control fixes: [FeatureName: $($this.SVTConfig.FeatureName)] [SubscriptionName: $($this.SubscriptionContext.SubscriptionName)] [SubscriptionId: $($this.SubscriptionContext.SubscriptionId)] `r`n" + [Constants]::SingleDashLine); } [MessageData[]] FixCompleted() { return $this.PublishCustomMessage([Constants]::SingleDashLine + "`r`nCompleted control fixes: [FeatureName: $($this.SVTConfig.FeatureName)] [SubscriptionName: $($this.SubscriptionContext.SubscriptionName)] [SubscriptionId: $($this.SubscriptionContext.SubscriptionId)] `r`n" + [Constants]::DoubleDashLine, [MessageType]::Update); } } |