Index: TAOR-rework-bugfixing/TAOR rework/LogBestandTextMapper.vb
===================================================================
diff -u -r1596 -r1620
--- TAOR-rework-bugfixing/TAOR rework/LogBestandTextMapper.vb (.../LogBestandTextMapper.vb) (revision 1596)
+++ TAOR-rework-bugfixing/TAOR rework/LogBestandTextMapper.vb (.../LogBestandTextMapper.vb) (revision 1620)
@@ -1,112 +1,92 @@
Imports System.IO
Module LogBestandTextMapper
- Const aantalLogs As Integer = 5
- Dim busy As Boolean
+ Const AantalLogs As Integer = 5
+ Dim _busy As Boolean
Private _currentLogPath As String = ""
- Public ReadOnly Property currentLogPath() As String
+ Public ReadOnly Property CurrentLogPath() As String
Get
Return _currentLogPath
End Get
End Property
-
- Sub writeToFile(databank As String, logMessage As String, Optional voltooid As Boolean = False)
- If Not busy Then
- startNewLog()
+ '''
+ ''' Wegschrijven van entry in het logbestand.
+ '''
+ ''' De naam van de databank
+ ''' Het bericht
+ ''' Ofdat het stuk code is voltooid
+ Public Sub WriteToFile(databank As String, logMessage As String, Optional voltooid As Boolean = False)
+ 'Controleren of er nog geen log bestand was gemaakt.
+ If Not _busy Then
+ 'Geen log bestand was reeds aanwezig, aanmaken.
+ StartNewLog()
+ 'Bijhouden dat nieuw log bestand is aangemaakt.
+ _busy = True
End If
- Try
- Dim file As System.IO.StreamWriter
- file = My.Computer.FileSystem.OpenTextFileWriter(_currentLogPath, True)
-
- Dim logText As String = String.Format("{0,-15}{1}{2}", databank, logMessage, If(voltooid, " VOLTOOID!", ""))
- file.WriteLine(logText)
-
- file.Close()
+ Try
+ 'Stream writer initialiseren met pad naar het log bestand. Tekst wordt niet overschreven, maar toegevoegd.
+ Dim streamWriter = My.Computer.FileSystem.OpenTextFileWriter(_currentLogPath, True)
+ 'De tekst die wordt weggeschreven opbouwen: datum databank naam status bericht.
+ Dim logText = String.Format("{0,-23}{1,-10}{3,-13}{2}", Now.ToString("yyyy-MM-dd HH:mm:ss"), databank, logMessage, If(voltooid, "VOLTOOID!", ""))
+ 'Wegschrijven.
+ streamWriter.WriteLine(logText)
+ 'De stream writer sluiten.
+ streamWriter.Close()
Catch ex As Exception
- Throw New Exception("Log bestand kon niet worden gevuld " & vbNewLine & ex.Message)
+ Throw New Exception($"Log bestand kon niet worden gevuld.{vbNewLine}{ex.Message}")
End Try
End Sub
- Private Sub startNewLog()
+ Private Sub StartNewLog()
Try
- Dim regDate As Date = Now.ToString("yyyy-MM-dd HH:mm:ss")
-
- Dim file As System.IO.StreamWriter
-
- _currentLogPath = maakNieuweLogFile()
- busy = True
-
- file = My.Computer.FileSystem.OpenTextFileWriter(_currentLogPath, False)
-
- file.WriteLine(regDate)
-
- file.Close()
+ 'Hoofding opbouwen.
+ Dim hoofding = String.Format("{0,-23}{1,-10}{3,-13}{2}", "Datum", "Databank", "Bericht", "Status")
+ 'Nieuw log bestand aanmaken en pad er naartoe opslaan.
+ _currentLogPath = MaakNieuweLogFile()
+ 'Streamwriter initialiseren.
+ Dim streamWriter = My.Computer.FileSystem.OpenTextFileWriter(_currentLogPath, False)
+ 'Hoofding wegschrijven.
+ streamWriter.WriteLine(hoofding)
+ 'Stream sluiten.
+ streamWriter.Close()
Catch ex As Exception
- Throw New Exception("Log bestand kon niet worden aangemaakt." & vbNewLine & ex.Message)
+ Throw New Exception($"Log bestand kon niet worden aangemaakt.{vbNewLine}{ex.Message}")
End Try
End Sub
- Public Function getPathLogFolder() As String
- 'opvragen van het path naar het bureaublad
- Dim logFolderPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
- Dim logfolder As String = "TAOR REWORK LOGS"
- logFolderPath = Path.Combine(logFolderPath, logfolder)
- 'als de folder nog niet bestaat, aanmaken
- If (Not System.IO.Directory.Exists(logFolderPath)) Then
- System.IO.Directory.CreateDirectory(logFolderPath)
- End If
- Return logFolderPath
- End Function
+ Public Function GeefPathLaatsteLogFile() As String
+ 'Variabelen declareren.
+ Dim bestandsnaam as String = String.Empty
+ Dim laatsteWijzigingTijdstip As Date
- Private _pathLaatsteLogFile As String
- Public Function geefPathLaatsteLogFile() As String
- If _pathLaatsteLogFile Is Nothing OrElse Not System.IO.File.Exists(_pathLaatsteLogFile) Then
- Dim logFolderPath As String = getPathLogFolder()
- 'kijken of er niks is misgelopen, max-1 aantal bestanden moeten er zijn plus 1'tje met een dubbel cijfer
- controleerEnFixBestanden(logFolderPath)
+ 'Log map opvragen.
+ dim pathLogFolder = GetPathLogFolder()
+ 'Alle bestanden hierin overlopen.
+ For each fileName in Directory.EnumerateFiles(pathLogFolder)
+ 'Pad naar bestand opbouwen.
+ dim filePath = Path.Combine(pathLogFolder, fileName)
+ 'Tijdstip laatste wijziging.
+ dim lastChanged = System.IO.File.GetLastWriteTimeUtc(filePath)
+ 'Controleren of de datum van dit bestand recenter is.
+ If bestandsnaam is String.Empty OrElse (lastChanged > laatsteWijzigingTijdstip) Then
+ 'Zo ja, registreer dit bestand.
+ bestandsnaam = fileName
+ laatsteWijzigingTijdstip = lastChanged
+ End If
+ Next
- Dim volledigPadMogelijkeLogFile As String
- For teller As Integer = 1 To aantalLogs
- volledigPadMogelijkeLogFile = Path.Combine(logFolderPath, "log" & teller & teller & ".txt")
- If System.IO.File.Exists(volledigPadMogelijkeLogFile) Then
- 'als er nog geen nieuwe log is aangemaakt kunnen we kijken naar de huidige log met 2 cijfers, anders moeten we die ervoor nemen
- If busy Then
- 'als de huidige log '11' is, moeten we kijken of 'aantalLogs' bestaat
- Dim padNaarVorigeLog As String
- If teller = 1 Then
- padNaarVorigeLog = Path.Combine(logFolderPath, "log" & aantalLogs & ".txt")
- Else
- padNaarVorigeLog = Path.Combine(logFolderPath, "log" & teller - 1 & ".txt")
- End If
- If System.IO.File.Exists(padNaarVorigeLog) Then
- _pathLaatsteLogFile = padNaarVorigeLog
- Return _pathLaatsteLogFile
- Else
- _pathLaatsteLogFile = ""
- Return _pathLaatsteLogFile
- End If
- End If
- _pathLaatsteLogFile = volledigPadMogelijkeLogFile
- Return _pathLaatsteLogFile
- End If
- Next
- _pathLaatsteLogFile = ""
- Return _pathLaatsteLogFile
- End If
- Return _pathLaatsteLogFile
+ Return bestandsnaam
End Function
- Private Function maakNieuweLogFile() As String
- Dim logFolderPath As String = getPathLogFolder()
- 'kijken of er niks is misgelopen, max-1 aantal bestanden moeten er zijn plus 1'tje met een dubbel cijfer
- controleerEnFixBestanden(logFolderPath)
+ Private Function MaakNieuweLogFile() As String
+ Dim logFolderPath As String = GetPathLogFolder()
Dim vorigeLogFileAanwezig As Boolean
Dim volledigPadVorigeLogFile As String
- For teller As Integer = 1 To aantalLogs
+ For teller As Integer = 1 To AantalLogs
volledigPadVorigeLogFile = Path.Combine(logFolderPath, "log" & teller & teller & ".txt")
If System.IO.File.Exists(volledigPadVorigeLogFile) Then
vorigeLogFileAanwezig = True
@@ -127,38 +107,16 @@
Throw New Exception("Er is iets fout gelopen bij het opvragen van het Path voor de log bestanden")
End Function
- Private Sub controleerEnFixBestanden(strPath As String)
- Dim aantalGevonden As Integer = 0
- For teller As Integer = 1 To aantalLogs
- Dim volledigPath As String = Path.Combine(strPath, "log" & teller & teller & ".txt")
- If System.IO.File.Exists(volledigPath) Then
- aantalGevonden += 1
- End If
- Next
- If aantalGevonden <> 1 Then
- fixbestanden(strPath, aantalGevonden)
+ Public Function GetPathLogFolder() As String
+ 'Opvragen van het pad naar het bureaublad
+ Dim logFolderPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
+ Dim logfolder As String = "TAOR REWORK LOGS"
+ logFolderPath = Path.Combine(logFolderPath, logfolder)
+ 'als de folder nog niet bestaat, aanmaken
+ If (Not System.IO.Directory.Exists(logFolderPath)) Then
+ System.IO.Directory.CreateDirectory(logFolderPath)
End If
- End Sub
+ Return logFolderPath
+ End Function
- Private Sub fixbestanden(strPath As String, aantalGevonden As Integer)
- If aantalGevonden > 1 Then
- Dim teller As Integer = 1
- While aantalGevonden > 1 And teller <= aantalLogs
- Dim volledigPath As String = Path.Combine(strPath, "log" & teller & teller & ".txt")
- If System.IO.File.Exists(volledigPath) Then
- My.Computer.FileSystem.RenameFile(volledigPath, "log" & teller & ".txt")
- aantalGevonden -= 1
- End If
- teller += 1
- End While
- Else
- 'terug beginnen tellen vanaf 1
- Dim volledigPath As String = Path.Combine(strPath, "log" & 1 & ".txt")
- 'als er nog geen enkele log file aanwezig is, moeten we niks doen
- If System.IO.File.Exists(volledigPath) Then
- My.Computer.FileSystem.DeleteFile(volledigPath)
- End If
- End If
- End Sub
-
End Module
\ No newline at end of file