Reload after export, Show and filter by Document Kind, Fix crash when reloading settings, change filename pattern for export files

This commit is contained in:
Jonathan Jenne
2022-01-28 16:17:15 +01:00
parent f224c73a2e
commit 9b3436686f
8 changed files with 111 additions and 114 deletions

View File

@@ -15,7 +15,6 @@ Namespace Winline
Private ReadOnly Config As WebServiceConfig
Private ReadOnly Serializer As Serializer
Private ReadOnly GeneralConfig As GeneralConfig
Private ReadOnly Winline As WinlineData
Private ReadOnly FileEx As File
Private ReadOnly Patterns As Patterns
@@ -26,9 +25,8 @@ Namespace Winline
MyBase.New(pLogConfig, pDatabase)
Serializer = New Serializer(pLogConfig)
Config = pWebserviceConfig
GeneralConfig = pGeneralConfig
Patterns = New Patterns(pLogConfig, pGeneralConfig)
FileEx = New DigitalData.Modules.Filesystem.File(LogConfig)
FileEx = New File(LogConfig)
Winline = pWinline
End Sub
@@ -124,7 +122,7 @@ Namespace Winline
Select Case oContentType
Case "text/xml"
Dim oOutputDirectory = FileEx.CreateDateDirectory(pTemplate.OutputWebserviceDirectory)
WriteResponseFile(oOutputDirectory, pBaseFileNAme, oResponseBody, "xml")
WriteResponseFileWithPrefix(oOutputDirectory, pBaseFileNAme, oResponseBody, "xml", "Response")
Dim oBytes As Byte() = Encoding.UTF8.GetBytes(oResponseBody)
Using oStream As New IO.MemoryStream(oBytes)
@@ -153,7 +151,7 @@ Namespace Winline
End Using
Case "text/html"
WriteResponseFile(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "txt")
WriteResponseFileWithSuffix(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "txt", "Response")
Throw New ApplicationException(oResponseBody)
@@ -235,11 +233,6 @@ Namespace Winline
oActionCode = 0
End If
' Byref: Should data be supplied as file or as string?
' 0 = As String
' 1 = As File (relative to Winline Server directory)
Dim oByref = 0
Dim oURL As String = $"{oWS.BaseUrl}/ewlservice/export?User={oWS.Username}&Password={oWS.Password}&Company={pMandator.Id}&Type={oTemplateType}&Vorlage={oTemplateName}&ActionCode={oActionCode}&Key={oKey}"
Dim oClient As New HttpClient()
@@ -264,7 +257,7 @@ Namespace Winline
End Try
End Function
Private Async Function HandleExportResponse(pResponse As HttpResponseMessage, pDocument As Entities.ExportDocument, pTemplate As Template, pMandator As Mandator, pBaseFileNAme As String) As Task
Private Async Function HandleExportResponse(pResponse As HttpResponseMessage, pDocument As Entities.ExportDocument, pTemplate As Template, pMandator As Mandator, pBaseFileName As String) As Task
pResponse.EnsureSuccessStatusCode()
Dim oResponseBody As String = Await pResponse.Content.ReadAsStringAsync()
Dim oContentType = pResponse.Content.Headers.ContentType.MediaType
@@ -274,14 +267,16 @@ Namespace Winline
oResponseBody = ApplyItemFunctionsForExport(pDocument, pTemplate, pMandator, oResponseBody)
' TODO: Change WriteResponseFile as TEMPLATENAME-DATE.xml
Select Case oContentType
Case "text/xml"
WriteResponseFile(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "xml")
WriteResponseFile(pTemplate.OutputXmlFileDirectory, pBaseFileNAme, oResponseBody, "xml")
WriteResponseFile(FileEx.CreateDateDirectory(pTemplate.ArchiveDirectory), pBaseFileNAme, oResponseBody, "xml")
WriteResponseFileWithSuffix(pTemplate.OutputWebserviceDirectory, pBaseFileName, oResponseBody, "xml", "Response")
WriteResponseFileWithPrefix(pTemplate.OutputXmlFileDirectory, pBaseFileName, oResponseBody, "xml", pTemplate.Name)
WriteResponseFileWithPrefix(FileEx.CreateDateDirectory(pTemplate.ArchiveDirectory), pBaseFileName, oResponseBody, "xml", pTemplate.Name)
Case "text/html"
WriteResponseFile(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "txt")
WriteResponseFileWithSuffix(pTemplate.OutputWebserviceDirectory, pBaseFileName, oResponseBody, "txt", "Response")
Throw New ApplicationException(oResponseBody)
@@ -328,7 +323,7 @@ Namespace Winline
oNode.InnerText = oEAN
ElseIf oItem.Config.Function.Name = "SQL" Then
Dim oSQL = Patterns.ReplaceForExport(pTemplate, pDocument, pMandator, oItem.Config.Function.Params)
Dim oSQL = Patterns.ReplaceForExport(pDocument, pMandator, oItem.Config.Function.Params)
Dim oValue = Database.GetScalarValue(oSQL)
If oValue Is Nothing Then
@@ -354,9 +349,22 @@ Namespace Winline
End Function
#End Region
Private Function WriteResponseFile(pPath As String, pBaseFileName As String, pResponseBody As String, pExtension As String) As Boolean
Private Function WriteResponseFileWithSuffix(pPath As String, pBaseFileName As String, pResponseBody As String, pExtension As String, pSuffix As String) As Boolean
Try
Dim oRequestFileName As String = FileEx.GetFilenameWithSuffix(pBaseFileName, "Response", pExtension)
Dim oRequestFileName As String = FileEx.GetFilenameWithSuffix(pBaseFileName, pSuffix, pExtension)
Dim oFilePath As String = IO.Path.Combine(pPath, oRequestFileName)
IO.File.WriteAllText(oFilePath, pResponseBody)
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function WriteResponseFileWithPrefix(pPath As String, pBaseFileName As String, pResponseBody As String, pExtension As String, pPrefix As String) As Boolean
Try
Dim oRequestFileName As String = FileEx.GetFilenameWithPrefix(pBaseFileName, pPrefix, pExtension)
Dim oFilePath As String = IO.Path.Combine(pPath, oRequestFileName)
IO.File.WriteAllText(oFilePath, pResponseBody)