some fixes, added transfer method

This commit is contained in:
janik
2021-11-18 11:25:31 +01:00
parent 68932c43f4
commit 12357e9a91

View File

@ -4,23 +4,24 @@ class abteilung {
[mitarbeiter]$Abteilungsleiter [mitarbeiter]$Abteilungsleiter
abteilung([mitarbeiter]$AL) { abteilung([mitarbeiter]$AL) {
$Abteilungsleiter = $AL $this.Abteilungsleiter = $AL
$this.Mitarbeiter += $AL
} }
[int]einstellen([mitarbeiter]$MA) { [int]einstellen([mitarbeiter]$MA) {
if $MA in $Mitarbeiter { if ($MA -In $this.Mitarbeiter) {
return 1 return 1
} }
$Mitarbeiter += $MA $this.Mitarbeiter += $MA
return 0 return 0
} }
[int]entlassen([mitarbeiter]$MA) { [int]entlassen([mitarbeiter]$MA) {
if ($MA == $Abteilungsleiter) { if ($MA -Eq $this.Abteilungsleiter) {
return 2 return 2
} }
if $MA in $Mitarbeiter { if ($MA -In $this.Mitarbeiter) {
$Mitarbeiter = $Mitarbeiter | Where-Object { $_ -ne $MA } $this.Mitarbeiter = $this.Mitarbeiter | Where-Object { $_ -ne $MA }
return 0 return 0
} else { } else {
return 1 return 1
@ -28,8 +29,46 @@ class abteilung {
} }
[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 { class mitarbeiter {
[string]$Name [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