Files
kla-opp-schulzeug/12fi5/AEuP/Abteilung/abteilung.ps1
2021-11-18 11:25:31 +01:00

74 lines
1.4 KiB
PowerShell

class abteilung {
[string]$Name
[mitarbeiter[]]$Mitarbeiter = @()
[mitarbeiter]$Abteilungsleiter
abteilung([mitarbeiter]$AL) {
$this.Abteilungsleiter = $AL
$this.Mitarbeiter += $AL
}
[int]einstellen([mitarbeiter]$MA) {
if ($MA -In $this.Mitarbeiter) {
return 1
}
$this.Mitarbeiter += $MA
return 0
}
[int]entlassen([mitarbeiter]$MA) {
if ($MA -Eq $this.Abteilungsleiter) {
return 2
}
if ($MA -In $this.Mitarbeiter) {
$this.Mitarbeiter = $this.Mitarbeiter | Where-Object { $_ -ne $MA }
return 0
} else {
return 1
}
}
[int]transfer([mitarbeiter]$MA, [abteilung]$AB) {
$ent = $this.entlassen($MA)
if ($ent -eq 0) {
$ein = $AB.einstellen($MA)
if ($ein -eq 0) {
return 0
} else {
$this.einstellen($MA)
return 4 + $ein
}
} else {
return 4 + $ent
}
}
}
class mitarbeiter {
[string]$Name
mitarbeiter($name) {
$this.Name = $name
}
}
#Tests
$MaA = [mitarbeiter]::new("Anna")
$MaB = [mitarbeiter]::new("Bertha")
$MaC = [mitarbeiter]::new("Christhof")
$AbA = [abteilung]::new($MaA)
$AbB = [abteilung]::new($MaB)
$AbB.einstellen($MaC)
$AbA
$AbB
$AbB.transfer($MaC, $AbA)
$AbA
$AbB