Private/Invoke-TeamSettingsClasses.ps1
|
enum BugsBehavior { off asRequirements asTasks } enum DayOfWeek { sunday monday tuesday wednesday thursday friday saturday } <# .SYNOPSIS Data contract for what Azure DevOps API expect to receive when using PATCH #> class TeamSettingsPatch { [string]$backlogIteration [object]$backlogVisibilities [BugsBehavior]$bugsBehavior [string]$defaultIteration [string]$defaultIterationMacro [DayOfWeek[]]$workingDays # Default constructor TeamSettingsPatch() { $this.backlogIteration = $null $this.backlogVisibilities = @{ 'Microsoft.EpicCategory' = $false 'Microsoft.FeatureCategory' = $true 'Microsoft.RequirementCategory' = $true } $this.bugsBehavior = [BugsBehavior]::asTasks $this.defaultIteration = $null $this.defaultIterationMacro = '@currentIteration' $this.workingDays = [DayOfWeek[]]@( [DayOfWeek]::monday, [DayOfWeek]::tuesday, [DayOfWeek]::wednesday, [DayOfWeek]::thursday, [DayOfWeek]::friday ) } # Common parameterized constructor TeamSettingsPatch([string]$backlogIteration, [object]$backlogVisibilities, [BugsBehavior]$bugsBehavior, [string]$defaultIteration, [string]$defaultIterationMacro, [DayOfWeek[]]$workingDays) { $this.backlogIteration = $backlogIteration $this.backlogVisibilities = $backlogVisibilities $this.bugsBehavior = $bugsBehavior $this.defaultIteration = $defaultIteration $this.defaultIterationMacro = $defaultIterationMacro $this.workingDays = $workingDays } # Method to return a JSON representation of the object [string] ToJson() { $jsonObject = @{ backlogIteration = $this.backlogIteration backlogVisibilities = $this.backlogVisibilities bugsBehavior = [string]$this.bugsBehavior defaultIteration = $this.defaultIteration defaultIterationMacro = $this.defaultIterationMacro workingDays = @($this.workingDays | ForEach-Object { [string]$_ }) } return ($jsonObject | ConvertTo-Json -Depth 3) } } |