From 8692dc595e968e1d9fdda77a7df427a754c28514 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 1 Nov 2021 12:37:48 +0100 Subject: [PATCH] add progress box for webservice calls --- MultiTool.Form/frmImportMain.vb | 16 ++++++++++------ MultiTool.Shared/Winline/WebService.vb | 10 ++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/MultiTool.Form/frmImportMain.vb b/MultiTool.Form/frmImportMain.vb index f9c2e64..27b1059 100644 --- a/MultiTool.Form/frmImportMain.vb +++ b/MultiTool.Form/frmImportMain.vb @@ -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 diff --git a/MultiTool.Shared/Winline/WebService.vb b/MultiTool.Shared/Winline/WebService.vb index e779860..ecce99b 100644 --- a/MultiTool.Shared/Winline/WebService.vb +++ b/MultiTool.Shared/Winline/WebService.vb @@ -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")