This commit is contained in:
Jonathan Jenne 2023-08-15 13:27:50 +02:00
parent 775418fb7a
commit ea8ed48d25
7 changed files with 101 additions and 18 deletions

View File

@ -1,4 +1,5 @@
Imports System.IO
Imports System.Runtime.Remoting.Messaging
Imports System.Threading.Tasks
Imports DevExpress.DocumentView
Imports DigitalData.Modules.Base
@ -12,14 +13,23 @@ Public MustInherit Class BaseModule
Friend ReadOnly Config As Config
Friend ReadOnly Database As MSSQLServer
Public Const DIVIDER_TEXT = "-------------------------------------"
Public Enum LogLevel
Info
Warn
[Error]
End Enum
Public MustOverride Property Name As String Implements ISync.Name
Public MustOverride Property IsLoggedIn As Boolean Implements ISync.IsLoggedIn
Public MustOverride Async Function Run() As Task Implements ISync.Run
Public MustOverride Function Cleanup() As Task Implements ISync.Cleanup
Public MustOverride Function TestConfigIsComplete() As Boolean Implements ISync.TestConfigIsComplete
Public Event OnLogEntry As EventHandler(Of String) Implements ISync.OnLogEntry
Public Event OnLogEntry As EventHandler(Of Tuple(Of String, LogLevel)) Implements ISync.OnLogEntry
Public Event OnFileProcessed As EventHandler(Of String) Implements ISync.OnFileProcessed
Public Event OnFileError As EventHandler(Of String) Implements ISync.OnFileError
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pConfig As Config)
MyBase.New(pLogConfig)
@ -127,18 +137,25 @@ Public MustInherit Class BaseModule
End Function
Friend Sub AddInfoEntry(pMessage As String, ParamArray pArgs As Object())
RaiseEvent OnLogEntry(Me, String.Format(pMessage, pArgs))
RaiseEvent OnLogEntry(Me, New Tuple(Of String, LogLevel)(String.Format(pMessage, pArgs), LogLevel.Info))
End Sub
Friend Sub AddWarnEntry(pMessage As String, ParamArray pArgs As Object())
RaiseEvent OnLogEntry(Me, String.Format(pMessage, pArgs))
RaiseEvent OnLogEntry(Me, New Tuple(Of String, LogLevel)(String.Format(pMessage, pArgs), LogLevel.Warn))
End Sub
Friend Sub AddErrorEntry(pMessage As String, ParamArray pArgs As Object())
RaiseEvent OnLogEntry(Me, New Tuple(Of String, LogLevel)(String.Format(pMessage, pArgs), LogLevel.Error))
End Sub
Friend Sub AddDivider()
RaiseEvent OnLogEntry(Me, "---")
RaiseEvent OnLogEntry(Me, New Tuple(Of String, LogLevel)(DIVIDER_TEXT, LogLevel.Info))
End Sub
Friend Sub RaiseFileProcessed(pFilePath As String)
RaiseEvent OnFileProcessed(Me, pFilePath)
End Sub
Friend Sub RaiseFileError(pFilePath As String)
RaiseEvent OnFileError(Me, pFilePath)
End Sub
End Class

View File

@ -7,6 +7,7 @@ Public Interface ISync
Function Cleanup() As Task
Function TestConfigIsComplete() As Boolean
Event OnLogEntry As EventHandler(Of String)
Event OnLogEntry As EventHandler(Of Tuple(Of String, BaseModule.LogLevel))
Event OnFileProcessed As EventHandler(Of String)
Event OnFileError As EventHandler(Of String)
End Interface

View File

@ -51,11 +51,15 @@ Namespace Sharepoint
End If
Dim oSQL = String.Format(Config.SQLQueryExport, oDocument.Id, oFileName)
Await Database.ExecuteNonQueryAsync(oSQL)
If Await Database.ExecuteNonQueryAsync(oSQL) = True Then
RaiseFileProcessed(oFilePath)
Else
Throw New ApplicationException("Database entry could not be written!")
End If
Catch ex As Exception
RaiseFileError(oDocId)
Logger.Error(ex)
AddWarnEntry("Error while running Sync: " & ex.Message)
End Try

View File

@ -63,11 +63,15 @@ Namespace slt
End If
Dim oSQL = String.Format(Config.SQLQueryExport, oDocument.ExtDocId, oFileName)
Await Database.ExecuteNonQueryAsync(oSQL)
If Await Database.ExecuteNonQueryAsync(oSQL) = True Then
RaiseFileProcessed(oFilePath)
Else
Throw New ApplicationException("Database entry could not be written!")
End If
Catch ex As Exception
RaiseFileError(oDocId)
Logger.Error(ex)
AddWarnEntry("Error while running Sync: " & ex.Message)
End Try

View File

@ -53,7 +53,7 @@
Me.ListBoxControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.ListBoxControl1.Location = New System.Drawing.Point(0, 63)
Me.ListBoxControl1.Name = "ListBoxControl1"
Me.ListBoxControl1.Size = New System.Drawing.Size(632, 215)
Me.ListBoxControl1.Size = New System.Drawing.Size(632, 191)
Me.ListBoxControl1.TabIndex = 0
'
'RibbonControl1
@ -166,21 +166,25 @@
'
Me.txtFilesProcessed.Caption = "Keine Dateien"
Me.txtFilesProcessed.Id = 5
Me.txtFilesProcessed.ImageOptions.SvgImage = CType(resources.GetObject("txtFilesProcessed.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.txtFilesProcessed.Name = "txtFilesProcessed"
Me.txtFilesProcessed.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
'
'txtErrorsOccurred
'
Me.txtErrorsOccurred.Caption = "Keine Dateien"
Me.txtErrorsOccurred.Caption = "Keine Fehler"
Me.txtErrorsOccurred.Id = 6
Me.txtErrorsOccurred.ImageOptions.SvgImage = CType(resources.GetObject("txtErrorsOccurred.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.txtErrorsOccurred.Name = "txtErrorsOccurred"
Me.txtErrorsOccurred.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(632, 278)
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.ListBoxControl1)
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.RibbonControl1)
Me.IconOptions.SvgImage = CType(resources.GetObject("frmMain.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.Name = "frmMain"

View File

@ -190,6 +190,40 @@
MS4xTDIuOSw0LjFDMi40LDMuOCwyLDQsMiw0LjZ2MjAuNmMwLDAuNiwwLjQsMC44LDAuOSwwLjVMMTku
NywxNS41eiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCiAgPGcgaWQ9IkxheWVyXzIiIC8+DQo8L3N2
Zz4L
</value>
</data>
<data name="txtFilesProcessed.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAMUBAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTmV3IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMiAz
MiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3MjcyO30KPC9zdHls
ZT4NCiAgPHBhdGggZD0iTTE5LDJINUM0LjQsMiw0LDIuNCw0LDN2MjRjMCwwLjYsMC40LDEsMSwxaDIw
YzAuNiwwLDEtMC40LDEtMVY5TDE5LDJ6IE0yNCwyNkg2VjRoMTJ2NWMwLDAuNiwwLjQsMSwxLDFoNSAg
VjI2eiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw==
</value>
</data>
<data name="txtErrorsOccurred.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANACAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
UmVke2ZpbGw6I0QxMUMxQzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuR3JlZW57ZmlsbDojMDM5
QzIzO30KPC9zdHlsZT4NCiAgPGcgaWQ9Ildhcm5pbmdDaXJjbGVkMiI+DQogICAgPHBhdGggZD0iTTE2
LDJDOC4zLDIsMiw4LjMsMiwxNnM2LjMsMTQsMTQsMTRzMTQtNi4zLDE0LTE0UzIzLjcsMiwxNiwyeiBN
MTYsMjhDOS40LDI4LDQsMjIuNiw0LDE2QzQsOS40LDkuNCw0LDE2LDQgICBzMTIsNS40LDEyLDEyQzI4
LDIyLjYsMjIuNiwyOCwxNiwyOHoiIGNsYXNzPSJSZWQiIC8+DQogICAgPGNpcmNsZSBjeD0iMTYiIGN5
PSIyMiIgcj0iMiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8cmVjdCB4PSIxNCIgeT0iOCIgd2lkdGg9IjQi
IGhlaWdodD0iMTAiIHJ4PSIwIiByeT0iMCIgY2xhc3M9IlJlZCIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
</value>
</data>
<metadata name="SyncTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -91,11 +91,9 @@ Partial Public Class frmMain
Select Case pActiveModule
Case "slt"
oSync = New slt.sltSync(LogConfig, Database, ConfigManager.Config)
AddHandler oSync.OnLogEntry, AddressOf Sync_OnLogEntry
Case "Sharepoint"
oSync = New Sharepoint.SharepointSync(LogConfig, Database, ConfigManager.Config)
AddHandler oSync.OnLogEntry, AddressOf Sync_OnLogEntry
Case Else
@ -103,11 +101,32 @@ Partial Public Class frmMain
End Select
AddHandler oSync.OnLogEntry, AddressOf Sync_OnLogEntry
AddHandler oSync.OnFileError, AddressOf Sync_OnFileError
AddHandler oSync.OnFileProcessed, AddressOf Sync_OnFileProcessed
Return oSync
End Function
Private Sub Sync_OnLogEntry(sender As Object, e As String)
AddInfoEntry(e)
Private Sub Sync_OnFileProcessed(sender As Object, e As String)
FilesProcessed += 1
txtFilesProcessed.Caption = String.Format("{0} Dateien", FilesProcessed)
End Sub
Private Sub Sync_OnFileError(sender As Object, e As String)
ErrorsOccurred += 1
txtErrorsOccurred.Caption = String.Format("{0} Fehler", ErrorsOccurred)
End Sub
Private Sub Sync_OnLogEntry(sender As Object, e As Tuple(Of String, BaseModule.LogLevel))
Select Case e.Item2
Case BaseModule.LogLevel.Info
AddInfoEntry(e.Item1)
Case BaseModule.LogLevel.Warn
AddWarnEntry(e.Item1)
Case BaseModule.LogLevel.Error
AddErrorEntry(e.Item1)
End Select
End Sub
Private Async Function frmMain_Closing(sender As Object, e As CancelEventArgs) As Threading.Tasks.Task Handles Me.Closing