Index: TAOR-rework-bugfixing/TAOR rework/nieuwdomein/managers/MustInheritSifonLadeManager.vb =================================================================== diff -u -r1656 -r1657 --- TAOR-rework-bugfixing/TAOR rework/nieuwdomein/managers/MustInheritSifonLadeManager.vb (.../MustInheritSifonLadeManager.vb) (revision 1656) +++ TAOR-rework-bugfixing/TAOR rework/nieuwdomein/managers/MustInheritSifonLadeManager.vb (.../MustInheritSifonLadeManager.vb) (revision 1657) @@ -5,14 +5,22 @@ Private ReadOnly _specialLadenEngine As ISpecialLadeEngine(Of TLadeType) Private ReadOnly _reworkTrayEngine As IReworkTrayEngine + Private ReadOnly _reworkTrayRepository As ReworkTrayRepository + Public ReadOnly Property SpecialLaden() As List(Of TLadeType) + Get + Return New List(Of TLadeType)(Laden) + End Get + End Property + ''' ''' Initialiseren met een special laden engine. ''' ''' De special laden engine Public Sub New(specialLadenEngine As ISpecialLadeEngine(Of TLadeType), reworkTrayEngine As IReworkTrayEngine) _specialLadenEngine = specialLadenEngine _reworkTrayEngine = reworkTrayEngine + _reworkTrayRepository = New ReworkTrayRepository() End Sub ''' @@ -58,11 +66,6 @@ Catch ex As Exception Throw New Exception($"Kon zijkanten niet verdelen over rework trays.{vbNewLine}{ex.Message}") End Try - Try - GenereerOnderdeelDatas(lade) - Catch ex As Exception - Throw New Exception($"Kon de andere data's voor elk onderdeel niet genereren.{vbNewLine}{ex.Message}") - End Try Next Catch ex As Exception Throw New Exception($"Laden konden niet gebouwd worden.{vbNewLine}{ex.Message}") @@ -80,14 +83,94 @@ ''' Verdelen van de zijkanten over de rework trays. ''' Private Sub VerdeelOverReworkTrays(lade As TLadeType) - Dim zijkanten = lade.GeefAlleOnderdelen().Where(Function(onderdeel) TypeOf onderdeel Is Zijkant).Select(function(onderdeel) CType(onderdeel, Zijkant)).ToList() - 'Data updaten in zijkanten (slotnummer en traynummer door te verdelen over de trays als paar (zijkantL en zijkantR) - _reworkTrayEngine.VerdeelZijkantenOverTrays(zijkanten) + Dim zijkanten = lade.GeefAlleOnderdelen().Where(Function(onderdeel) TypeOf onderdeel Is Zijkant).Select(Function(onderdeel) CType(onderdeel, Zijkant)).ToList() + 'Data updaten in zijkanten (slotnummer en traynummer door te verdelen over de trays als paar (zijkantL en zijkantR). + Dim reworkTrays = _reworkTrayEngine.VerdeelZijkantenOverTrays(zijkanten) + For Each reworktray In reworkTrays + _reworkTrayRepository.addReworkTraySpecialLade(reworktray) + Next End Sub ''' ''' Andere data's genereren, kantenband, automilling, ... ''' - Protected MustOverride Sub GenereerOnderdeelDatas(lade As TLadeType) + public overrides Sub Produceer() + Dim specialLaden As New List(Of SpecialLade) + For Each lade In Laden + 'Opslaan in Caché + OpslaanGegenereerdeOnderdelen(lade) + 'Converteren naar special lade. + Dim specialLade As SpecialLade = New SifonLade() + 'Tpe bepalen en instellen. + If TypeOf lade Is SifonLadeV2 Then + specialLade.typeInstantie = ItemType.Sifonlade + Else + specialLade.typeInstantie = ItemType.DubbeleSifonlade + End If + Dim ruggen As New List(Of ArdisData) + + 'Onderdelen overlopen en toevoegen aan lade. + For Each onderdeel In lade.GeefAlleOnderdelen() + If TypeOf onderdeel Is Front Then + Dim front As Front = onderdeel + specialLade.voegFrontToe(front.ArdisData) + ElseIf TypeOf onderdeel Is Bodem Then + Dim bodem As Bodem = onderdeel + specialLade.voegBodemToe(bodem.ArdisData) + ElseIf TypeOf onderdeel Is Rug Then + Dim rug As Rug = onderdeel + ruggen.Add(rug.ArdisData) + ElseIf TypeOf onderdeel Is Zijkant Then + Dim zijkant As Zijkant = onderdeel + specialLade.voegZijkantToe(zijkant.ArdisDataL) + specialLade.voegZijkantToe(zijkant.ArdisDataR) + End If + Next + + 'Toevoegen aan totale lijst. + specialLade.voegRuggenToe(ruggen) + 'De originele rug ophalen en toevoegen. + specialLade.voegRugToe(lade.OrigineleRug.ArdisData) + + specialLaden.Add(specialLade) + Next + + Dim hoofdaansturingSifonLade = New HoofdAansturingSifonLade(_reworkTrayRepository) + hoofdaansturingSifonLade.verwerkenSpecialLadeMetTrays(specialLaden) + End Sub + + ''' + ''' Opslaan van de gegenereerde onderdelen in Caché: zijkanten en ruggen. + ''' + Private Sub OpslaanGegenereerdeOnderdelen(lade As TLadeType) + For Each onderdeelOrigineelEnGegenereerd In lade.GeefGegenereerdeEnOrigineleOnderdelen() + If Configs.geefVerwerkStatus Then + Dim origineelOnderdeel = onderdeelOrigineelEnGegenereerd(0) + Dim gegenereerdonderdeel = onderdeelOrigineelEnGegenereerd(1) + 'De naam van het onderdeel opvragen. + Dim nieuwOnderdeelNaam As String + If TypeOf origineelOnderdeel Is Zijkant Then + Dim origineleZijkant As Zijkant = origineelOnderdeel + Dim gegenereerdeZijkant As Zijkant = gegenereerdonderdeel + + 'Zijkant L. + nieuwOnderdeelNaam = Configs.specialLadeGeefOnderdeelNaamGegenereerdeZijkant(gegenereerdeZijkant.ArdisDataL.sifonLadeGeefOnderdeelLetter) + 'Opslaan in Caché. + CacheMapper.OpslaanGegenereerdeOnderdelen(origineleZijkant.ArdisDataL, gegenereerdeZijkant.ArdisDataL, nieuwOnderdeelNaam) + + 'Zijkant R. + nieuwOnderdeelNaam = Configs.specialLadeGeefOnderdeelNaamGegenereerdeZijkant(gegenereerdeZijkant.ArdisDataR.sifonLadeGeefOnderdeelLetter) + 'Opslaan in Caché. + CacheMapper.OpslaanGegenereerdeOnderdelen(origineleZijkant.ArdisDataR, gegenereerdeZijkant.ArdisDataR, nieuwOnderdeelNaam) + ElseIf TypeOf origineelOnderdeel Is Rug Then + 'Rug + Dim origineleRug As Rug = origineelOnderdeel + Dim gegenereerdeRug As Rug = gegenereerdonderdeel + CacheMapper.OpslaanGegenereerdeOnderdelen(origineleRug.ArdisData, gegenereerdeRug.ArdisData, Configs.sifonLadeGeefOnderdeelNaamGegenereerdeRug()) + End If + End If + Next + End Sub + End Class