some fixes, added transfer method
This commit is contained in:
@ -4,23 +4,24 @@ class abteilung {
|
||||
[mitarbeiter]$Abteilungsleiter
|
||||
|
||||
abteilung([mitarbeiter]$AL) {
|
||||
$Abteilungsleiter = $AL
|
||||
$this.Abteilungsleiter = $AL
|
||||
$this.Mitarbeiter += $AL
|
||||
}
|
||||
|
||||
[int]einstellen([mitarbeiter]$MA) {
|
||||
if $MA in $Mitarbeiter {
|
||||
if ($MA -In $this.Mitarbeiter) {
|
||||
return 1
|
||||
}
|
||||
$Mitarbeiter += $MA
|
||||
$this.Mitarbeiter += $MA
|
||||
return 0
|
||||
}
|
||||
|
||||
[int]entlassen([mitarbeiter]$MA) {
|
||||
if ($MA == $Abteilungsleiter) {
|
||||
if ($MA -Eq $this.Abteilungsleiter) {
|
||||
return 2
|
||||
}
|
||||
if $MA in $Mitarbeiter {
|
||||
$Mitarbeiter = $Mitarbeiter | Where-Object { $_ -ne $MA }
|
||||
if ($MA -In $this.Mitarbeiter) {
|
||||
$this.Mitarbeiter = $this.Mitarbeiter | Where-Object { $_ -ne $MA }
|
||||
return 0
|
||||
} else {
|
||||
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 {
|
||||
[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
|
||||
Reference in New Issue
Block a user