Namespace Rework Public Class Slot Private _type As SlotType Private _zijkanten As List(Of Rework) Private _zijkantenSpecial As List(Of ArdisData) Private _nummer As Integer Public Sub New() _zijkanten = New List(Of Rework) _zijkantenSpecial = New List(Of ArdisData) End Sub Public Sub New(nummer As Integer) _zijkanten = New List(Of Rework) _zijkantenSpecial = New List(Of ArdisData) controleerNummer(nummer) _nummer = nummer End Sub Public Property type As SlotType Get Return _type End Get Set(ByVal value As SlotType) _type = value End Set End Property Public ReadOnly Property zijkanten As List(Of Rework) Get Return New List(Of Rework)(_zijkanten) End Get End Property Public ReadOnly Property zijkantenSpeciaal As List(Of ArdisData) Get Return New List(Of ArdisData)(_zijkantenSpecial) End Get End Property Public Property nummer As Integer Get Return _nummer End Get Set(value As Integer) controleerNummer(value) _nummer = value End Set End Property Public Sub voegZijkantToe(ByVal zijkant As Rework) If (type = SlotType.enkel) And (zijkanten.Count < 1) Then _zijkanten.Add(zijkant) ElseIf _zijkanten.Count < 2 Then _zijkanten.Add(zijkant) Else Throw New Exception("Het slot zit al vol") End If End Sub Public Sub voegZijkantToe(ByVal zijkant As List(Of Rework)) If (type = SlotType.enkel) And (zijkanten.Count < 1) Then _zijkanten.AddRange(zijkant) ElseIf _zijkanten.Count < 2 Then _zijkanten.AddRange(zijkant) Else Throw New Exception("Het slot zit al vol") End If End Sub 'special zijkant Public Sub voegZijkantToe(ByRef zijkant As List(Of ArdisData)) If _zijkantenSpecial.Count < 2 Then For Each data As ArdisData In zijkant data.KamerfreesSlotNr = _nummer Next _zijkantenSpecial.AddRange(zijkant) Else Throw New Exception("Het slot zit al vol") End If End Sub Public Overrides Function ToString() As String Dim returnString As String = "TYPE SLOT: " & _type & " ---ZIJKANT: " For Each zijkant As Rework In _zijkanten returnString += vbNewLine & vbTab & zijkant.ToString Next Return returnString End Function Public Sub updateReworkOnderdeel() If _type = SlotType.dubbel Then If _zijkanten.Count > 0 Then 'updaten van veld opslaan ardis in beide If Not _zijkanten(1).opslaanArdis Then zijkanten(0).opslaanArdis = False ElseIf Not _zijkanten(0).opslaanArdis Then zijkanten(1).opslaanArdis = False End If 'duidelijk maken dat beide tot een paar behoren _zijkanten(0).onderdeel = "ZIJKANT LR" _zijkanten(1).onderdeel = "ZIJKANT LR" End If End If End Sub Public Sub verwijderTweedeVanPaar() If _zijkanten.Count > 1 Then _zijkanten.RemoveAt(1) End If End Sub Private Sub controleerNummer(nummer As Integer) If nummer <= 0 Then Throw New Exception("Slotnummer moet groter zijn dan 0 (nummer, geen index)") End If End Sub Public Function ShallowCopy() As Slot Return DirectCast(Me.MemberwiseClone(), Slot) End Function End Class Public Enum SlotType enkel = 0 dubbel = 1 End Enum End Namespace