Index: TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/SifonLadenMapper.vb
===================================================================
diff -u -r1646 -r1648
--- TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/SifonLadenMapper.vb (.../SifonLadenMapper.vb) (revision 1646)
+++ TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/SifonLadenMapper.vb (.../SifonLadenMapper.vb) (revision 1648)
@@ -1,68 +1,52 @@
Public Class SifonLadenMapper
- Implements ISpecialLadeMapper(Of ISifonLade)
+ Inherits MustInheritSpecialLadeMapper(Of ISifonLade)
+ Protected Overrides Function GeefOnderdelenAantalDictionary() As Dictionary(Of Type, Integer)
+ 'Onderdelen en hun aantal registreren.
+ 'Positief betekent verplicht aantal, negatief betekent optioneel, maar indien aanwezig, wel het juiste aantal.
+ Return New Dictionary(Of Type, Integer) From {
+ {GetType(Zijkant), 2},
+ {GetType(Front), -1},
+ {GetType(Bodem), 1},
+ {GetType(Rug), 1}
+ }
+ End Function
+
'''
- Public Function GeefAlle(onderdelen As List(Of IOnderdeel)) As List(Of ISifonLade) Implements IMapper(Of List(Of IOnderdeel), ISifonLade).GeefAlle
- 'Onderdelen en hun aantal registreren. Negatieve waarden betekent optioneel.
- Dim onderdelenAantalDictionary As New Dictionary(Of Type, Integer) From {
- {GetType(Zijkant), 2},
- {GetType(Front), -1},
- {GetType(Bodem), 1},
- {GetType(Rug), 1}
- }
+ Protected Overrides Function ConverteerLade(ladeIndex As Integer, aantalLaden As Integer, onderdelen As List(Of IOnderdeel), onderdelenAantalDictionary As Dictionary(Of Type, Integer)) As ISifonLade
+ 'Onderdelen ophalen.
+ Dim zijkantL = SpecialLadeMapperUtil.GeefOnderdelenUitLade(Of Zijkant)(ladeIndex, onderdelen, onderdelenAantalDictionary)(0)
+ Dim zijkantR = SpecialLadeMapperUtil.GeefOnderdelenUitLade(Of Zijkant)(ladeIndex, onderdelen, onderdelenAantalDictionary)(1)
+ Dim bodem = SpecialLadeMapperUtil.GeefOnderdeelUitLade(Of Bodem)(ladeIndex, onderdelen)
+ Dim rug = SpecialLadeMapperUtil.GeefOnderdeelUitLade(Of Rug)(ladeIndex, onderdelen)
+ 'Optioneel front.
+ Dim front = SpecialLadeMapperUtil.GeefOnderdeelUitLade(Of Front)(ladeIndex, onderdelen)
- 'Onderdelen valideren.
- If Not SpecialLadeMapperUtil.ValideerOnderdelen(onderdelen, onderdelenAantalDictionary) Then
- 'Ongeldig.
- Throw New Exception("Er zijn teveel of te weinig onderdelen aanwezig voor een of meerdere sifon laden.")
+ 'Initialisatie sifonlade.
+ Dim sifonLade As ISifonLade
+
+ 'Nieuwe sifonlade initialiseren met informatie.
+ If front Is Nothing Then
+ 'Optioneel front is niet aanwezig.
+ sifonLade = New SifonLadeV2(
+ zijkantL,
+ zijkantR,
+ bodem,
+ rug
+ )
+ Else
+ 'Front is aanwezig.
+ sifonLade = New SifonLadeV2Compleet(
+ zijkantL,
+ zijkantR,
+ bodem,
+ rug,
+ front
+ )
End If
- 'Lijst met sifon laden initialiseren.
- Dim sifonLaden As New List(Of ISifonLade)
-
- 'Aantal laden opvragen en loop starten.
- Dim aantalLaden = SpecialLadeMapperUtil.GeefAantalLaden(onderdelen, onderdelenAantalDictionary)
- For i = 0 To aantalLaden - 1
- 'Onderdelen ophalen.
- Dim zijkantL = SpecialLadeMapperUtil.GeefOnderdelenUitLade(Of Zijkant)(i, onderdelen, onderdelenAantalDictionary)(0)
- Dim zijkantR = SpecialLadeMapperUtil.GeefOnderdelenUitLade(Of Zijkant)(i, onderdelen, onderdelenAantalDictionary)(1)
- Dim bodem = SpecialLadeMapperUtil.GeefOnderdeelUitLade(Of Bodem)(i, onderdelen)
- Dim rug = SpecialLadeMapperUtil.GeefOnderdeelUitLade(Of Rug)(i, onderdelen)
- 'Optioneel front.
- Dim front = SpecialLadeMapperUtil.GeefOnderdeelUitLade(Of Front)(i, onderdelen)
-
- 'Initialisatie sifonlade.
- Dim sifonLade As ISifonLade
-
- 'Nieuwe sifonlade initialiseren met informatie.
- If front Is Nothing Then
- 'Optioneel front is niet aanwezig.
- sifonLade = New SifonLadeV2(
- zijkantL,
- zijkantR,
- bodem,
- rug
- )
- Else
- 'Front is aanwezig.
- sifonLade = New SifonLadeV2Compleet(
- zijkantL,
- zijkantR,
- bodem,
- rug,
- front
- )
- End If
-
- 'Toevoegen aan lijst.
- sifonLaden.Add(sifonLade)
- Next
-
- Return sifonLaden
+ 'Waarde retourneren.
+ Return sifonLade
End Function
- '''
- Public Function GeefEnkele(waarde As List(Of IOnderdeel)) As ISifonLade Implements IMapper(Of List(Of IOnderdeel), ISifonLade).GeefEnkele
- Throw New NotImplementedException
- End Function
End Class
Index: TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/SpecialLadeMapperUtil.vb
===================================================================
diff -u -r1642 -r1648
--- TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/SpecialLadeMapperUtil.vb (.../SpecialLadeMapperUtil.vb) (revision 1642)
+++ TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/SpecialLadeMapperUtil.vb (.../SpecialLadeMapperUtil.vb) (revision 1648)
@@ -4,7 +4,7 @@
Module SpecialLadeMapperUtil
'''
''' Valideren van de onderdelen aan de hand van een dictionary met de onderdelen en hun aantallen voor één lade.
- ''' Positief betekent verplicht aantal, negatief betekent optioneel, maar wel maximum aantal.
+ ''' Positief betekent verplicht aantal, negatief betekent optioneel, maar indien aanwezig, wel het juuiste aantal.
'''
''' Lijst met onderdelen
''' Dictionary met als key het type van een onderdeel en waarde die het aantal aangeeft
Index: TAOR-rework-bugfixing/TAOR rework/formulieren/Specials/FormSifonLade.vb
===================================================================
diff -u -r1647 -r1648
--- TAOR-rework-bugfixing/TAOR rework/formulieren/Specials/FormSifonLade.vb (.../FormSifonLade.vb) (revision 1647)
+++ TAOR-rework-bugfixing/TAOR rework/formulieren/Specials/FormSifonLade.vb (.../FormSifonLade.vb) (revision 1648)
@@ -142,7 +142,7 @@
Private Sub ToonOnderdelenEnBarcodes()
Try
'Label aantal updaten.
- AantalLadenLabel.Text = SifonLadeController.GetInstance().GeefAantalSifonLaden()
+ AantalLadenLabel.Text = SifonLadeController.GetInstance().GeefAantalLaden()
'Datagridview vullen met de onderdelen, dit gebeurt eenmalig bij het opzoeken van de lade.
For Each onderdeelEnBarcode As String() In SifonLadeController.GetInstance.GeefSpecialLadenOrigineleOnderdelenEnBarcodes()
OnderdelenOplijstingDataGridView.Rows.Add(onderdeelEnBarcode.ToArray)
Index: TAOR-rework-bugfixing/TAOR rework/controllers/SifonLadeController.vb
===================================================================
diff -u -r1642 -r1648
--- TAOR-rework-bugfixing/TAOR rework/controllers/SifonLadeController.vb (.../SifonLadeController.vb) (revision 1642)
+++ TAOR-rework-bugfixing/TAOR rework/controllers/SifonLadeController.vb (.../SifonLadeController.vb) (revision 1648)
@@ -30,7 +30,9 @@
Return _sifonladeManager.ZoekEnLaadLaden(ladeCode)
End Function
-#Region "Opvragen informatie"
+#Region "Informatie"
+
+#Region "Normale sifon lade"
'''
''' Informatie opvragen over de sifonLade als DTO.
'''
@@ -52,10 +54,24 @@
End Function
'''
- ''' Opvragen van aantal sifonladen.
+ ''' Gewijzigde waarden van de sifon lade updaten.
'''
+ ''' De DTO van de sifon lade
+ Public Sub UpdateWaardenSifonLade(sifonLadeDto As SifonLadeDto)
+ 'De DTO converter aanmaken.
+ Dim dtoConverter = New SifonLadeDtoConverter
+ 'Dto converteren naar sifon lade.
+ Dim sifonlade = dtoConverter.FromDto(sifonLadeDto)
+ 'Manager aanroepen om te updaten.
+ _sifonladeManager.UpdateAlleLaden(sifonlade)
+ End Sub
+#End Region
+
+ '''
+ ''' Opvragen van aantal laden.
+ '''
''' Het aantal sifonladen
- Public Function GeefAantalSifonLaden() As Integer
+ Public Function GeefAantalLaden() As Integer
Return _sifonladeManager.AantalLaden()
End Function
@@ -68,19 +84,6 @@
End Function
#End Region
- '''
- ''' Gewijzigde waarden van de sifon lade updaten.
- '''
- ''' De DTO van de sifon lade
- Public Sub UpdateWaardenSifonLade(sifonLadeDto As SifonLadeDto)
- 'De DTO converter aanmaken.
- Dim dtoConverter = New SifonLadeDtoConverter
- 'Dto converteren naar sifon lade.
- Dim sifonlade = dtoConverter.FromDto(sifonLadeDto)
- 'Manager aanroepen om te updaten.
- _sifonladeManager.UpdateAlleLaden(sifonlade)
- End Sub
-
Private Sub verdeelSifonLadenOverReworkTrays()
Dim zijkanten As New List(Of ArdisData)
'For Each sifonLade In _specialLadenRep.sifonLaden
Index: TAOR-rework-bugfixing/TAOR rework/TAOR rework.vbproj
===================================================================
diff -u -r1645 -r1648
--- TAOR-rework-bugfixing/TAOR rework/TAOR rework.vbproj (.../TAOR rework.vbproj) (revision 1645)
+++ TAOR-rework-bugfixing/TAOR rework/TAOR rework.vbproj (.../TAOR rework.vbproj) (revision 1648)
@@ -168,6 +168,7 @@
+
Index: TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/MustInheritSpecialLadeMapper.vb
===================================================================
diff -u
--- TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/MustInheritSpecialLadeMapper.vb (revision 0)
+++ TAOR-rework-bugfixing/TAOR rework/nieuwdomein/mappers/MustInheritSpecialLadeMapper.vb (revision 1648)
@@ -0,0 +1,50 @@
+Public MustInherit Class MustInheritSpecialLadeMapper(Of T)
+ Implements ISpecialLadeMapper(Of T)
+
+ Public Function GeefAlle(onderdelen As List(Of IOnderdeel)) As List(Of T) Implements IMapper(Of List(Of IOnderdeel), T).GeefAlle
+ 'Onderdelen en hun aantal opvragen aan de hand van de hook.
+ Dim onderdelenAantalDictionary = GeefOnderdelenAantalDictionary()
+
+ 'Onderdelen valideren.
+ If Not SpecialLadeMapperUtil.ValideerOnderdelen(onderdelen, onderdelenAantalDictionary) Then
+ 'Ongeldig.
+ Throw New Exception("Er zijn teveel of te weinig onderdelen aanwezig voor een of meerdere laden.")
+ End If
+
+ 'Aantal laden opvragen.
+ Dim aantalLaden = SpecialLadeMapperUtil.GeefAantalLaden(onderdelen, onderdelenAantalDictionary)
+
+ 'Lijst met sifon laden initialiseren.
+ Dim laden As New List(Of T)
+
+ 'De laden overlopen.
+ For i = 0 To aantalLaden - 1
+ 'Lade converteren met hook en toevoegen aan lijst.
+ laden.Add(ConverteerLade(i, aantalLaden, onderdelen, onderdelenAantalDictionary))
+ Next
+
+ 'De laden converteren.
+ Return laden
+ End Function
+
+ '''
+ ''' Hook om de dictionary met onderdelen en hun aantallen voor één lade op te vragen.
+ ''' Negatieve waarden betekent optioneel.
+ ''' Positief betekent verplicht aantal, negatief betekent optioneel, maar indien aanwezig, wel het juuiste aantal.
+ '''
+ ''' De dictionary met als key het type onderdeel en als value het aantal (neg=optioneel, pos=verplicht)
+ Protected MustOverride Function GeefOnderdelenAantalDictionary() As Dictionary(Of Type, Integer)
+
+ '''
+ ''' Een hook om een enkele lade te converteren.
+ '''
+ ''' Index van de lade
+ ''' Het totaal aantal laden
+ ''' Dictionary met aantal onderdelen en aantal
+ ''' Een enkele geconverteerde lade
+ Protected MustOverride Function ConverteerLade(ladeIndex As Integer, aantalLaden As Integer, onderdelen As List(Of IOnderdeel), onderdelenAantalDictionary As Dictionary(Of Type, Integer)) As T
+
+ Private Function GeefEnkele(waarde As List(Of IOnderdeel)) As T Implements IMapper(Of List(Of IOnderdeel), T).GeefEnkele
+ Throw New NotImplementedException
+ End Function
+End Class