add progress box for webservice calls

This commit is contained in:
Jonathan Jenne 2021-11-01 12:37:48 +01:00
parent 63d61c0e22
commit 8692dc595e
2 changed files with 20 additions and 6 deletions

View File

@ -92,6 +92,7 @@ Public Class frmImportMain
Database = New MSSQLServer(LogConfig, oConnectionString)
Winline = New Data(LogConfig, Database, ConfigManager.Config)
WebService = New WebService(LogConfig, ConfigManager.Config, Application.UserAppDataPath)
AddHandler WebService.WebServiceProgress, AddressOf WebService_Progress
Catch ex As Exception
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Initialisieren_der_Anwendungs_Daten)
End Try
@ -145,8 +146,6 @@ Public Class frmImportMain
SplashScreenManager.CloseWaitForm()
btnLoadFiles.Enabled = True
End Try
End Sub
@ -353,8 +352,9 @@ Public Class frmImportMain
Private Async Sub btnTransferFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnTransferFile.ItemClick
Try
GridViewFiles.ShowLoadingPanel()
SplashScreenManager.ShowWaitForm()
SetDocumentButtonsEnabled(False)
GridControlFiles.Enabled = False
btnLoadFiles.Enabled = False
SplitContainerGrids.Enabled = False
@ -371,12 +371,16 @@ Public Class frmImportMain
Finally
SplitContainerGrids.Enabled = True
btnLoadFiles.Enabled = True
SetDocumentButtonsEnabled(False)
GridViewFiles.HideLoadingPanel()
GridControlFiles.Enabled = True
SetDocumentButtonsEnabled(True)
SplashScreenManager.CloseWaitForm()
End Try
End Sub
Private Sub WebService_Progress(sender As Object, e As String)
SplashScreenManager.SetWaitFormDescription(e)
End Sub
Private Sub btnOpenInputDirectory_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnOpenInputDirectory.ItemClick
TryOpenDirectory(ConfigManager.Config.InputDirectory, My.Resources.frmImportMainExtra.Eingangsverzeichnis)
End Sub

View File

@ -13,6 +13,8 @@ Namespace Winline
Private ReadOnly Serializer As Serializer
Private ReadOnly AppDataPath As String
Public Event WebServiceProgress As EventHandler(Of String)
Public Sub New(pLogConfig As LogConfig, pConfig As Config, pAppDataPath As String)
MyBase.New(pLogConfig, pLogConfig.GetLogger())
Serializer = New Serializer(pLogConfig)
@ -32,6 +34,8 @@ Namespace Winline
IO.Directory.CreateDirectory(oPath)
End If
RaiseEvent WebServiceProgress(Me, "Einstellungen laden")
' --- Build all teh filenamez and pathz
Dim oBaseFileName As String = GetBaseFilenameForRequest()
@ -46,6 +50,8 @@ Namespace Winline
' --- Serialize Data into XML string
RaiseEvent WebServiceProgress(Me, "Dateien schreiben")
Dim oOutputFilePath = IO.Path.Combine(GetBaseWebServicePath(), oFileName)
IO.File.WriteAllBytes(oOutputFilePath, oBytes)
@ -77,6 +83,8 @@ Namespace Winline
Logger.Info("Creating HTTP Request to [{0}]", oWS.BaseUrl)
RaiseEvent WebServiceProgress(Me, "Anfrage absenden")
' --- Bring the action!
Try
Dim oResponse As HttpResponseMessage = Await oClient.GetAsync(oURL)
@ -97,6 +105,8 @@ Namespace Winline
Dim oContentType = pResponse.Content.Headers.ContentType.MediaType
Dim oSerializer = Serializer.GetSerializer(GetType(Schemas.MESOWebServiceResult))
RaiseEvent WebServiceProgress(Me, "Antwort verarbeiten")
Select Case oContentType
Case "text/xml"
WriteResponseFile(pPath, pBaseFileNAme, oResponseBody, "xml")