Imports DubbeleSifonLadeManager = TA_OR_rework.DubbeleSifonLadeManager Public Class SifonLadeController Private Shared _instance As SifonLadeController Private ReadOnly _sifonladeManager As MustInheritSifonLadeManager(Of ISifonLade) Private ReadOnly _sifonladeDubbelManager As MustInheritSifonLadeManager(Of ISifonLadeDubbel) ''' ''' Singleton instantie opvragen. ''' ''' Instantie Public Shared Function GetInstance() As SifonLadeController If _instance Is Nothing Then _instance = New SifonLadeController End If Return _instance End Function Public Sub New() 'Special lade engine initialiseren met de juiste mapper. Dim sifonLadeEngine = New SpecialLadeEngine(Of ISifonLade)(New SifonLadenMapper) 'Manager initialiseren met de engine. _sifonladeManager = New SifonLadeManager(sifonLadeEngine) 'Dubbele special lade engine initialiseren met de juiste mapper. Dim sifonladeDubbelEngine = New SpecialLadeEngine(Of ISifonLadeDubbel)(New SifonLadenDubbelMapper) 'Manager initialiseren met de engine. _sifonladeDubbelManager = New DubbeleSifonLadeManager(sifonladeDubbelEngine) End Sub #Region "Normale sifon lade" ''' ''' Zoek de sifonlade aan de hand van de lade code. ''' ''' Public Function ZoekSifonLade(ladeCode As String) As Boolean 'Manager aanroepen en resultaat retourneren. True als de lade is gevonden. Return _sifonladeManager.ZoekEnLaadLaden(ladeCode) End Function #Region "Informatie" ''' ''' Informatie opvragen over de sifonLade als DTO. ''' ''' DTO met informatie Public Function GeefInformatieSifonLade() As SifonLadeDto 'De eerste sifonlade opvragen. Dim sifonLade As ISifonLade = _sifonladeManager.EersteOfStandaard() 'Controleren of de sifonLade niet leeg is. If sifonLade Is Nothing Then 'Zo ja, retourneer Nothing. Return Nothing End If 'De DTO converter aanmaken. Dim dtoConverter = New SifonLadeDtoConverter 'Sifonlade converteren en retourneren als DTO. Return dtoConverter.ToDto(sifonLade) End Function ''' ''' Opvragen van aantal sifonladen. ''' ''' Het aantal sifonladen Public Function GeefAantalSifonLaden() As Integer Return _sifonladeManager.AantalLaden() End Function ''' ''' Opvragen van de namen van alle onderdelen van een sifonlade met de bijhorende barcodes ''' ''' Public Function GeefSifonLadenOrigineleOnderdelenEnBarcodes() As List(Of String()) Return _sifonladeManager.GeefOrigineleOnderdelenEnBarcodes() 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 #End Region #Region "Dubbele sifon lade" ''' ''' Zoek de dubbele sifonlade aan de hand van de lade code. ''' ''' Public Function ZoekDubbeleSifonLade(ladeCode As String) As Boolean 'Manager aanroepen en resultaat retourneren. True als de lade is gevonden. Return _sifonladeDubbelManager.ZoekEnLaadLaden(ladeCode) End Function #Region "Informatie" ''' ''' Informatie opvragen over de dubbele sifonLade als DTO. ''' ''' DTO met informatie Public Function GeefInformatieDubbeleSifonLade() As SifonLadeDubbelDto 'De eerste sifonlade opvragen. Dim sifonLade As ISifonLade = _sifonladeDubbelManager.EersteOfStandaard() 'Controleren of de sifonLade niet leeg is. If sifonLade Is Nothing Then 'Zo ja, retourneer Nothing. Return Nothing End If 'De DTO converter aanmaken. Dim dtoConverter = New SifonLadeDubbelDtoConverter 'Sifonlade converteren en retourneren als DTO. Return dtoConverter.ToDto(sifonLade) End Function ''' ''' Opvragen van aantal dubbele sifonladen. ''' ''' Het aantal sifonladen Public Function GeefAantalDubbeleSifonLaden() As Integer Return _sifonladeDubbelManager.AantalLaden() End Function ''' ''' Opvragen van de namen van alle onderdelen van een dubbele sifonlade met de bijhorende barcodes ''' ''' Public Function GeefDubbeleSifonLadenOrigineleOnderdelenEnBarcodes() As List(Of String()) Return _sifonladeDubbelManager.GeefOrigineleOnderdelenEnBarcodes() End Function #End Region ''' ''' Gewijzigde waarden van de sifonlade updaten. ''' ''' De DTO van de dubbele sifonlade Public Sub UpdateWaardenDubbeleSifonLade(sifonLadeDubbelDto As SifonLadeDubbelDto) 'De DTO converter aanmaken. Dim dtoConverter = New SifonLadeDubbelDtoConverter 'Dto converteren naar sifon lade. Dim sifonlade = dtoConverter.FromDto(sifonLadeDubbelDto) 'Manager aanroepen om te updaten. _sifonladeDubbelManager.UpdateAlleLaden(sifonlade) End Sub #End Region Private Sub verdeelSifonLadenOverReworkTrays() Dim zijkanten As New List(Of ArdisData) 'For Each sifonLade In _specialLadenRep.sifonLaden 'zijkanten ' zijkanten.AddRange(sifonLade.zijkanten) 'Next 'special rework trays laten verwerken 'todo voegReworkTraysSpecialLadeToe(zijkanten) End Sub Private Sub slaSifonLadenOp() 'todo Dim hoofdAansturingSifonLade As HoofdAansturingSpecialLade = New HoofdAansturingSifonLade(reworkTrayRep) 'hoofdAansturingSifonLade.verwerkenSpecialLadeMetTrays(_specialLadenRep.sifonLaden) End Sub End Class