Server.ps1

<#
 .Synopsis
 Definiert einen einzelnen Server
#>


Set-StrictMode -Version Latest

Import-LocalizedData -BindingVariable MsgTable -FileName PSRechenzentrumMessages.psd1

enum Serverstatus {
    Running
    Stopped
    Initialized
    NotInitialized
}

enum ServerSize {
    Small
    Medium
    Big
}

class Server
{
    # Hier müssen nur Properties definiert werden, die nicht per Konstruktor festgelegt werden
    [String]$Id
    [String]$Description
    [ServerStatus]$Status
    [ServerSize]$Size
    [Konto]$Konto
    [DateTime]$Startzeit
    [Double]$RunningTime

    Server([String]$ServerId, [String]$Description, [ServerSize]$Size="Small", [Konto]$Konto)
    {
        $this.Id = $ServerId
        $this.Description = $Description
        $this.Size = $Size
        $this.Status = [ServerStatus]::NotInitialized
        $this.Konto = $Konto
    }

    [void]Start()
    {
        $this.Status = [ServerStatus]::Running
        $this.Startzeit = [DateTime]::Now
    }

    [void]Stop()
    {
        $this.Status = [ServerStatus]::Stopped
    }

    [void]Initialize()
    {
        $this.Status = [ServerStatus]::Initialized
    }

}