diff --git a/VERAG_REST_SERVER/Controllers/AvisoController/AVISOController.vb b/VERAG_REST_SERVER/Controllers/AvisoController/AVISOController.vb index 4279534..69f8f1d 100644 --- a/VERAG_REST_SERVER/Controllers/AvisoController/AVISOController.vb +++ b/VERAG_REST_SERVER/Controllers/AvisoController/AVISOController.vb @@ -122,6 +122,7 @@ Namespace ApiController.Controllers Return response End Function + Private Async Function ProcessFilesAsync(anhangsart As String, arrayOfFiles() As String, id As Integer, isSendung As Boolean, saveOnServer As Boolean, DS_name As String, DS_Domain As String, DS_pw As String) As Task(Of String) Try ' Sendung oder Aviso laden @@ -129,12 +130,16 @@ Namespace ApiController.Controllers If isSendung Then entity = New VERAG_PROG_ALLGEMEIN.cSendungen(id) If entity Is Nothing Then - Return "Die angegebene Sendung wurde nicht gefunden." + Dim errMsg As String = "Die angegebene Sendung wurde nicht gefunden. ID: " & id + Debug.WriteLine(errMsg) + Return errMsg End If Else entity = VERAG_PROG_ALLGEMEIN.cAviso.getAvisoById(id) If entity Is Nothing Then - Return "Das angegebene Aviso wurde nicht gefunden." + Dim errMsg As String = "Das angegebene Aviso wurde nicht gefunden. ID: " & id + Debug.WriteLine(errMsg) + Return errMsg End If End If @@ -143,13 +148,14 @@ Namespace ApiController.Controllers Dim retries As Integer = 0 While NetzwerkVerbindungOffen(DS_name, DS_Domain) AndAlso retries < 20 If retries = 10 Then - Return "Die Verbindung zum Datenserver konnte nicht hergestellt werden." + Dim errMsg As String = "Die Verbindung zum Datenserver konnte nicht hergestellt werden. Versuche: " & retries + Debug.WriteLine(errMsg) + Return errMsg End If Await Task.Delay(1000) retries += 1 End While - NetzwerkVerbindungHerstellen(DS_Domain, DS_name, DS_pw) End If @@ -158,7 +164,9 @@ Namespace ApiController.Controllers ' Validierung des Base64-Formats If Not IsValidBase64String(filetemp) Then - Return "Das Base64-Format der Datei ist ungültig." + Dim errMsg As String = "Das Base64-Format der Datei ist ungültig. Datei: " & image + Debug.WriteLine(errMsg) + Return errMsg End If ' Dateierweiterung ermitteln @@ -171,13 +179,17 @@ Namespace ApiController.Controllers ' Datei auf Datenserver hochladen Dim uploadResult As String = Await UploadFileToDataServerAsync(entity, id, isSendung, filetemp, fileextension, anhangsart) If uploadResult <> "OK" Then - Return uploadResult + Dim errMsg As String = "Fehler beim Hochladen der Datei auf den Datenserver. Upload-Ergebnis: " & uploadResult + Debug.WriteLine(errMsg) + Return errMsg End If Else ' Datei direkt auf dem Server speichern Dim saveResult As String = Await SaveFileOnServerAsync(id, isSendung, filetemp, fileextension, anhangsart) If saveResult <> "OK" Then - Return saveResult + Dim errMsg As String = "Fehler beim Speichern der Datei auf dem Server. Save-Ergebnis: " & saveResult + Debug.WriteLine(errMsg) + Return errMsg End If End If Next @@ -189,11 +201,32 @@ Namespace ApiController.Controllers Return "OK" Catch ex As Exception - VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine, System.Reflection.MethodInfo.GetCurrentMethod.Name) - Return "Ein Fehler ist beim Verarbeiten der Dateien aufgetreten." + Dim methodName As String = System.Reflection.MethodBase.GetCurrentMethod().Name + Dim lineNumber As Integer = GetExceptionLineNumber(ex) + Dim errMsg As String = $"Ein Fehler ist beim Verarbeiten der Dateien aufgetreten in {methodName}, Zeile {lineNumber}: {ex.Message}" + Debug.WriteLine(errMsg) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(errMsg, ex.StackTrace & vbNewLine, methodName) + Return errMsg End Try End Function + + Private Function GetExceptionLineNumber(ByVal ex As Exception) As Integer + Dim st As New StackTrace(ex, True) + Dim frame As StackFrame = st.GetFrame(0) + If frame IsNot Nothing Then + Dim line As Integer = frame.GetFileLineNumber() + If line = 0 Then + ' Falls GetFileLineNumber 0 zurückgibt, könnte es daran liegen, dass keine Debug-Informationen verfügbar sind. + Return -1 + Else + Return line + End If + End If + Return -1 + End Function + + Private Function RemoveBase64Prefix(base64String As String) As String If base64String.Contains("base64,") Then Return base64String.Substring(base64String.IndexOf("base64,") + 7) diff --git a/VERAG_REST_SERVER/Models/Aviso.vb b/VERAG_REST_SERVER/Models/Aviso.vb new file mode 100644 index 0000000..80c926c --- /dev/null +++ b/VERAG_REST_SERVER/Models/Aviso.vb @@ -0,0 +1,38 @@ +Imports System.ComponentModel.DataAnnotations +Imports System.ComponentModel.DataAnnotations.Schema + +Namespace Models +