internal/classes/DBOpsDeploymentStatus.class.ps1
class DBOpsDeploymentStatus { [string] $SqlInstance [string] $Database [string[]] $SourcePath [System.Nullable[DBOps.ConnectionType]] $ConnectionType [DBOpsConfig] $Configuration [DBOps.SqlScript[]] $Scripts [Exception] $Error [System.Nullable[bool]] $Successful [System.Nullable[datetime]] $StartTime [System.Nullable[datetime]] $EndTime [string[]] $DeploymentLog [string] $ErrorScript DBOpsDeploymentStatus() { Add-Member -InputObject $this -MemberType ScriptProperty -Name Duration -Value { if ($this.StartTime -and $this.EndTime) { return $this.EndTime.Subtract($this.StartTime) } else { return [timespan]::new(0) } } } [string] ToString() { $status = switch ($this.Successful) { $true { "Successful" } $false { "Failed" } default { "Not deployed" } } $dur = switch ($this.Duration.TotalMilliseconds) { 0 { "Not run yet" } default { $this.Duration.ToString('hh\:mm\:ss') } } $scriptCount = ($this.Scripts | Measure-Object).Count return "Deployment status`: $status. Duration`: $dur. Script count`: $scriptCount" } } |