MergeCommit
This commit is contained in:
commit
7e5cc8dbbf
@ -25,8 +25,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Messaging", "Message\Messag
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDTestService", "DDTestService\DDTestService.vbproj", "{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDTestService", "DDTestService\DDTestService.vbproj", "{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Variables", "Variables\Variables.vbproj", "{836C9ADE-E04E-4E1E-B17A-201E68014790}"
|
|
||||||
EndProject
|
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Config", "Modules.Config\Config.vbproj", "{44982F9B-6116-44E2-85D0-F39650B1EF99}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Config", "Modules.Config\Config.vbproj", "{44982F9B-6116-44E2-85D0-F39650B1EF99}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{F98C0329-C004-417F-B2AB-7466E88D8220}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{F98C0329-C004-417F-B2AB-7466E88D8220}"
|
||||||
@ -76,6 +74,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "JobRunner", "Service.JobRun
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LookupControlGui", "LookupControlGui\LookupControlGui.vbproj", "{B65E24B3-D334-455D-A0BF-B33B8358B013}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LookupControlGui", "LookupControlGui\LookupControlGui.vbproj", "{B65E24B3-D334-455D-A0BF-B33B8358B013}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MonoDiag", "LoggerDiag\MonoDiag.vbproj", "{3D437957-B90B-4D8F-9219-6D19B0C90994}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -110,10 +110,6 @@ Global
|
|||||||
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Release|Any CPU.Build.0 = Release|Any CPU
|
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{836C9ADE-E04E-4E1E-B17A-201E68014790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{836C9ADE-E04E-4E1E-B17A-201E68014790}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{836C9ADE-E04E-4E1E-B17A-201E68014790}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{836C9ADE-E04E-4E1E-B17A-201E68014790}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{44982F9B-6116-44E2-85D0-F39650B1EF99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{44982F9B-6116-44E2-85D0-F39650B1EF99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{44982F9B-6116-44E2-85D0-F39650B1EF99}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{44982F9B-6116-44E2-85D0-F39650B1EF99}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{44982F9B-6116-44E2-85D0-F39650B1EF99}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{44982F9B-6116-44E2-85D0-F39650B1EF99}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
@ -186,6 +182,10 @@ Global
|
|||||||
{B65E24B3-D334-455D-A0BF-B33B8358B013}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B65E24B3-D334-455D-A0BF-B33B8358B013}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3D437957-B90B-4D8F-9219-6D19B0C90994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3D437957-B90B-4D8F-9219-6D19B0C90994}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3D437957-B90B-4D8F-9219-6D19B0C90994}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3D437957-B90B-4D8F-9219-6D19B0C90994}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@ -198,7 +198,6 @@ Global
|
|||||||
{EAF0EA75-5FA7-485D-89C7-B2D843B03A96} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
{EAF0EA75-5FA7-485D-89C7-B2D843B03A96} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
||||||
{AF664D85-0A4B-4BAB-A2F8-83110C06553A} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
{AF664D85-0A4B-4BAB-A2F8-83110C06553A} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
||||||
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
|
{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
|
||||||
{836C9ADE-E04E-4E1E-B17A-201E68014790} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
|
||||||
{44982F9B-6116-44E2-85D0-F39650B1EF99} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
{44982F9B-6116-44E2-85D0-F39650B1EF99} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
||||||
{3DCD6D1A-C830-4241-B7E4-27430E7EA483} = {F98C0329-C004-417F-B2AB-7466E88D8220}
|
{3DCD6D1A-C830-4241-B7E4-27430E7EA483} = {F98C0329-C004-417F-B2AB-7466E88D8220}
|
||||||
{991D0231-4623-496D-8BD0-9CA906029CBC} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
{991D0231-4623-496D-8BD0-9CA906029CBC} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
|
||||||
@ -217,6 +216,7 @@ Global
|
|||||||
{7386AB04-DF8D-4DFB-809D-1FAC8212CB7E} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
|
{7386AB04-DF8D-4DFB-809D-1FAC8212CB7E} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
|
||||||
{926E6474-5613-4373-BB99-B101158B91EF} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
|
{926E6474-5613-4373-BB99-B101158B91EF} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
|
||||||
{B65E24B3-D334-455D-A0BF-B33B8358B013} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
|
{B65E24B3-D334-455D-A0BF-B33B8358B013} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
|
||||||
|
{3D437957-B90B-4D8F-9219-6D19B0C90994} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}
|
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ Public Class ThreadRunner
|
|||||||
Private _successDirectory As String
|
Private _successDirectory As String
|
||||||
Private _errorDirectory As String
|
Private _errorDirectory As String
|
||||||
Private _originalEmailDirectory As String
|
Private _originalEmailDirectory As String
|
||||||
|
Private _attachmentDirectory As String
|
||||||
Private _zugferd As ZUGFeRDInterface
|
Private _zugferd As ZUGFeRDInterface
|
||||||
Private _jobArguments As WorkerArgs
|
Private _jobArguments As WorkerArgs
|
||||||
Private _mssql As MSSQLServer
|
Private _mssql As MSSQLServer
|
||||||
@ -148,6 +149,9 @@ Public Class ThreadRunner
|
|||||||
Case ZUGFERD_REJECTED_EML
|
Case ZUGFERD_REJECTED_EML
|
||||||
args.RejectedEmailDirectory = row.Item("FOLDER_PATH")
|
args.RejectedEmailDirectory = row.Item("FOLDER_PATH")
|
||||||
|
|
||||||
|
Case ZUGFERD_ATTACHMENTS
|
||||||
|
args.AttachmentsSubDirectory = row.Item("FOLDER_PATH")
|
||||||
|
|
||||||
End Select
|
End Select
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports System.Security.Cryptography
|
Imports System.Security.Cryptography
|
||||||
|
Imports System.Text.Encoding
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
@ -19,8 +20,6 @@ Public Class Encryption
|
|||||||
Private ReadOnly _password As String
|
Private ReadOnly _password As String
|
||||||
Private _logger As Logger
|
Private _logger As Logger
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, Password As String)
|
Public Sub New(LogConfig As LogConfig, Password As String)
|
||||||
_logger = LogConfig.GetLogger()
|
_logger = LogConfig.GetLogger()
|
||||||
|
|
||||||
@ -31,13 +30,24 @@ Public Class Encryption
|
|||||||
_password = Password
|
_password = Password
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Async Function EncryptAsync(oPlainTextBytes As Byte()) As Task(Of Byte())
|
Public Async Function EncryptAsync(PlainTextBytes As Byte()) As Task(Of Byte())
|
||||||
Return Await Task.Run(Function() As Byte()
|
Return Await Task.Run(Function() As Byte()
|
||||||
Return Encrypt(oPlainTextBytes)
|
Return Encrypt(PlainTextBytes)
|
||||||
End Function)
|
End Function)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function Encrypt(oPlainTextBytes As Byte()) As Byte()
|
Public Function Encrypt(PlainText As String) As String
|
||||||
|
Try
|
||||||
|
Dim oBytes As Byte() = UTF8.GetBytes(PlainText)
|
||||||
|
Dim oEncrypted As Byte() = Encrypt(oBytes)
|
||||||
|
Return UTF8.GetString(oEncrypted)
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function Encrypt(PlainTextBytes As Byte()) As Byte()
|
||||||
Try
|
Try
|
||||||
' Salt and IV is randomly generated each time, but is preprended to encrypted cipher text
|
' Salt and IV is randomly generated each time, but is preprended to encrypted cipher text
|
||||||
' so that the same Salt and IV values can be used when decrypting.
|
' so that the same Salt and IV values can be used when decrypting.
|
||||||
@ -53,7 +63,7 @@ Public Class Encryption
|
|||||||
Using oEncryptor = oSymmetricKey.CreateEncryptor(oKeyBytes, oIvStringBytes)
|
Using oEncryptor = oSymmetricKey.CreateEncryptor(oKeyBytes, oIvStringBytes)
|
||||||
Using oMemoryStream = New MemoryStream()
|
Using oMemoryStream = New MemoryStream()
|
||||||
Using oCryptoStream = New CryptoStream(oMemoryStream, oEncryptor, CryptoStreamMode.Write)
|
Using oCryptoStream = New CryptoStream(oMemoryStream, oEncryptor, CryptoStreamMode.Write)
|
||||||
oCryptoStream.Write(oPlainTextBytes, 0, oPlainTextBytes.Length)
|
oCryptoStream.Write(PlainTextBytes, 0, PlainTextBytes.Length)
|
||||||
oCryptoStream.FlushFinalBlock()
|
oCryptoStream.FlushFinalBlock()
|
||||||
' Create the final bytes as a concatenation of the random salt bytes, the random iv bytes and the cipher bytes.
|
' Create the final bytes as a concatenation of the random salt bytes, the random iv bytes and the cipher bytes.
|
||||||
Dim oCipherTextBytes = oSaltStringBytes
|
Dim oCipherTextBytes = oSaltStringBytes
|
||||||
@ -79,16 +89,27 @@ Public Class Encryption
|
|||||||
End Function)
|
End Function)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function Decrypt(cipherTextBytesWithSaltAndIv As Byte()) As Byte()
|
Public Function Decrypt(CipherTextPlainWithSaltAndIv As String) As String
|
||||||
|
Try
|
||||||
|
Dim oBytes As Byte() = UTF8.GetBytes(CipherTextPlainWithSaltAndIv)
|
||||||
|
Dim oDecrypted As Byte() = Decrypt(oBytes)
|
||||||
|
Return UTF8.GetString(oDecrypted)
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function Decrypt(CipherTextBytesWithSaltAndIv As Byte()) As Byte()
|
||||||
Try
|
Try
|
||||||
' Get the complete stream of bytes that represent:
|
' Get the complete stream of bytes that represent:
|
||||||
' [32 bytes of Salt] + [32 bytes of IV] + [n bytes of CipherText]
|
' [32 bytes of Salt] + [32 bytes of IV] + [n bytes of CipherText]
|
||||||
' Get the saltbytes by extracting the first 32 bytes from the supplied cipherText bytes.
|
' Get the saltbytes by extracting the first 32 bytes from the supplied cipherText bytes.
|
||||||
Dim oSaltStringBytes = cipherTextBytesWithSaltAndIv.Take(KEY_SIZE / 8).ToArray()
|
Dim oSaltStringBytes = CipherTextBytesWithSaltAndIv.Take(KEY_SIZE / 8).ToArray()
|
||||||
' Get the IV bytes by extracting the next 32 bytes from the supplied cipherText bytes.
|
' Get the IV bytes by extracting the next 32 bytes from the supplied cipherText bytes.
|
||||||
Dim oIvStringBytes = cipherTextBytesWithSaltAndIv.Skip(KEY_SIZE / 8).Take(KEY_SIZE / 8).ToArray()
|
Dim oIvStringBytes = CipherTextBytesWithSaltAndIv.Skip(KEY_SIZE / 8).Take(KEY_SIZE / 8).ToArray()
|
||||||
' Get the actual cipher text bytes by removing the first 64 bytes from the cipherText string.
|
' Get the actual cipher text bytes by removing the first 64 bytes from the cipherText string.
|
||||||
Dim oCipherTextBytes = cipherTextBytesWithSaltAndIv.Skip((KEY_SIZE / 8) * 2).Take(cipherTextBytesWithSaltAndIv.Length - ((KEY_SIZE / 8) * 2)).ToArray()
|
Dim oCipherTextBytes = CipherTextBytesWithSaltAndIv.Skip((KEY_SIZE / 8) * 2).Take(CipherTextBytesWithSaltAndIv.Length - ((KEY_SIZE / 8) * 2)).ToArray()
|
||||||
|
|
||||||
Using oPassword = New Rfc2898DeriveBytes(_password, oSaltStringBytes, DERIVATION_ITERATIONS)
|
Using oPassword = New Rfc2898DeriveBytes(_password, oSaltStringBytes, DERIVATION_ITERATIONS)
|
||||||
Dim oKeyBytes = oPassword.GetBytes(KEY_SIZE / 8)
|
Dim oKeyBytes = oPassword.GetBytes(KEY_SIZE / 8)
|
||||||
|
|||||||
@ -13,6 +13,7 @@ Namespace My
|
|||||||
Private _Logger As Logger
|
Private _Logger As Logger
|
||||||
|
|
||||||
Private _BaseUserConfigPath As String = Windows.Forms.Application.UserAppDataPath
|
Private _BaseUserConfigPath As String = Windows.Forms.Application.UserAppDataPath
|
||||||
|
Private _BaseLocalUserConfigPath As String = Windows.Forms.Application.LocalUserAppDataPath
|
||||||
Private _BaseMachineConfigPath As String = Windows.Forms.Application.CommonAppDataPath
|
Private _BaseMachineConfigPath As String = Windows.Forms.Application.CommonAppDataPath
|
||||||
|
|
||||||
Public Sub App_Startup() Handles Me.Startup
|
Public Sub App_Startup() Handles Me.Startup
|
||||||
@ -20,11 +21,11 @@ Namespace My
|
|||||||
|
|
||||||
' System Config files like Service Url will be saved in %LocalAppdata% so they will remain on the machine
|
' System Config files like Service Url will be saved in %LocalAppdata% so they will remain on the machine
|
||||||
Dim oSystemConfigManager As New ConfigManager(Of ClassConfig)(oLogConfig,
|
Dim oSystemConfigManager As New ConfigManager(Of ClassConfig)(oLogConfig,
|
||||||
Windows.Forms.Application.UserAppDataPath,
|
_BaseLocalUserConfigPath,
|
||||||
Windows.Forms.Application.CommonAppDataPath)
|
_BaseMachineConfigPath)
|
||||||
|
|
||||||
' Layout files will be saved in %Appdata% (Roaming) so they will be syncronized with the user profile
|
' Layout files will be saved in %Appdata% (Roaming) so they will be syncronized with the user profile
|
||||||
Dim oUIConfigPath = IO.Path.Combine(Windows.Forms.Application.UserAppDataPath, ClassConstants.FOLDER_NAME_LAYOUT)
|
Dim oUIConfigPath = IO.Path.Combine(_BaseUserConfigPath, ClassConstants.FOLDER_NAME_LAYOUT)
|
||||||
Dim oUIConfigManager As New ConfigManager(Of ClassUIConfig)(oLogConfig, oUIConfigPath, oUIConfigPath)
|
Dim oUIConfigManager As New ConfigManager(Of ClassUIConfig)(oLogConfig, oUIConfigPath, oUIConfigPath)
|
||||||
|
|
||||||
LogConfig = oLogConfig
|
LogConfig = oLogConfig
|
||||||
|
|||||||
@ -40,9 +40,8 @@ Public Class PanelManager
|
|||||||
|
|
||||||
Private Sub View_DocumentDeactivated(sender As Object, e As DocumentEventArgs)
|
Private Sub View_DocumentDeactivated(sender As Object, e As DocumentEventArgs)
|
||||||
Dim oDocument As BaseDocument = e.Document
|
Dim oDocument As BaseDocument = e.Document
|
||||||
' TODO: oDocument.Control can be nothing
|
|
||||||
Dim oHashcode As Integer = oDocument.Control.GetHashCode
|
|
||||||
|
|
||||||
|
' TODO: oDocument.Control can be nothing
|
||||||
If oDocument Is Nothing Then
|
If oDocument Is Nothing Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
@ -51,7 +50,7 @@ Public Class PanelManager
|
|||||||
For Each oPanel As DockPanel In _dockManager.Panels
|
For Each oPanel As DockPanel In _dockManager.Panels
|
||||||
Dim oTag As Integer = oPanel.Tag
|
Dim oTag As Integer = oPanel.Tag
|
||||||
|
|
||||||
If oTag = oHashcode Then
|
If oTag = oDocument.Control.GetHashCode Then
|
||||||
oPanel.Hide()
|
oPanel.Hide()
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|||||||
@ -69,6 +69,7 @@
|
|||||||
<Reference Include="DevExpress.Dashboard.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
<Reference Include="DevExpress.Dashboard.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
<Reference Include="DevExpress.Data.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
<Reference Include="DevExpress.Data.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
<Reference Include="DevExpress.DataAccess.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
<Reference Include="DevExpress.DataAccess.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.Mvvm.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
<Reference Include="DevExpress.Printing.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
<Reference Include="DevExpress.Printing.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
<Reference Include="DevExpress.Sparkline.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
<Reference Include="DevExpress.Sparkline.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
<Reference Include="DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
<Reference Include="DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
@ -86,9 +87,9 @@
|
|||||||
<Reference Include="FirebirdSql.EntityFrameworkCore.Firebird, Version=6.4.0.0, Culture=neutral, PublicKeyToken=7a73ef09980c56c9, processorArchitecture=MSIL">
|
<Reference Include="FirebirdSql.EntityFrameworkCore.Firebird, Version=6.4.0.0, Culture=neutral, PublicKeyToken=7a73ef09980c56c9, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll</HintPath>
|
<HintPath>..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\NLog.4.5.11\lib\net45\NLog.dll</HintPath>
|
||||||
<HintPath>..\Modules.Logging\bin\Debug\NLog.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="ScintillaNET, Version=3.6.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="ScintillaNET, Version=3.6.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll</HintPath>
|
<HintPath>..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll</HintPath>
|
||||||
@ -101,6 +102,7 @@
|
|||||||
<Reference Include="System.Data.Linq" />
|
<Reference Include="System.Data.Linq" />
|
||||||
<Reference Include="System.Deployment" />
|
<Reference Include="System.Deployment" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.Runtime.Serialization.Formatters.Soap" />
|
<Reference Include="System.Runtime.Serialization.Formatters.Soap" />
|
||||||
<Reference Include="System.Runtime.Serialization.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.Serialization.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
@ -168,10 +170,16 @@
|
|||||||
<Compile Include="FormDesigner\frmFormDesigner.vb">
|
<Compile Include="FormDesigner\frmFormDesigner.vb">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="FormWorkflow\frmWorkflowStep.Designer.vb">
|
<Compile Include="ModuleWorkflow\frmWorkflowOverview.Designer.vb">
|
||||||
|
<DependentUpon>frmWorkflowOverview.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ModuleWorkflow\frmWorkflowOverview.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ModuleWorkflow\frmWorkflowStep.Designer.vb">
|
||||||
<DependentUpon>frmWorkflowStep.vb</DependentUpon>
|
<DependentUpon>frmWorkflowStep.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="FormWorkflow\frmWorkflowStep.vb">
|
<Compile Include="ModuleWorkflow\frmWorkflowStep.vb">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="frmSearch.Designer.vb">
|
<Compile Include="frmSearch.Designer.vb">
|
||||||
@ -197,6 +205,20 @@
|
|||||||
<Compile Include="Workers\IWorker.vb" />
|
<Compile Include="Workers\IWorker.vb" />
|
||||||
<Compile Include="Workers\WorkerManager.vb" />
|
<Compile Include="Workers\WorkerManager.vb" />
|
||||||
<Compile Include="Workers\WorkflowOverviewWorker.vb" />
|
<Compile Include="Workers\WorkflowOverviewWorker.vb" />
|
||||||
|
<Compile Include="ModuleWorkflow\GridOverview.Designer.vb">
|
||||||
|
<DependentUpon>GridOverview.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ModuleWorkflow\GridOverview.vb">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ModuleWorkflow\NavControlOverview.Designer.vb">
|
||||||
|
<DependentUpon>NavControlOverview.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ModuleWorkflow\NavControlOverview.vb">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ModuleWorkflow\WorkflowDetail.vb" />
|
||||||
|
<Compile Include="ModuleWorkflow\WorkflowItem.vb" />
|
||||||
<Compile Include="_TEST\DockManagerTest.Designer.vb">
|
<Compile Include="_TEST\DockManagerTest.Designer.vb">
|
||||||
<DependentUpon>DockManagerTest.vb</DependentUpon>
|
<DependentUpon>DockManagerTest.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -330,7 +352,10 @@
|
|||||||
<EmbeddedResource Include="FormDesigner\frmFormDesigner.resx">
|
<EmbeddedResource Include="FormDesigner\frmFormDesigner.resx">
|
||||||
<DependentUpon>frmFormDesigner.vb</DependentUpon>
|
<DependentUpon>frmFormDesigner.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="FormWorkflow\frmWorkflowStep.resx">
|
<EmbeddedResource Include="ModuleWorkflow\frmWorkflowOverview.resx">
|
||||||
|
<DependentUpon>frmWorkflowOverview.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="ModuleWorkflow\frmWorkflowStep.resx">
|
||||||
<DependentUpon>frmWorkflowStep.vb</DependentUpon>
|
<DependentUpon>frmWorkflowStep.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmSearch.resx">
|
<EmbeddedResource Include="frmSearch.resx">
|
||||||
@ -339,6 +364,12 @@
|
|||||||
<EmbeddedResource Include="Panels\DocumentPanel.resx">
|
<EmbeddedResource Include="Panels\DocumentPanel.resx">
|
||||||
<DependentUpon>DocumentPanel.vb</DependentUpon>
|
<DependentUpon>DocumentPanel.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="ModuleWorkflow\GridOverview.resx">
|
||||||
|
<DependentUpon>GridOverview.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="ModuleWorkflow\NavControlOverview.resx">
|
||||||
|
<DependentUpon>NavControlOverview.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="_TEST\DockManagerTest.resx">
|
<EmbeddedResource Include="_TEST\DockManagerTest.resx">
|
||||||
<DependentUpon>DockManagerTest.vb</DependentUpon>
|
<DependentUpon>DockManagerTest.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@ -490,7 +521,17 @@
|
|||||||
<None Include="Resources\CheckBox.png" />
|
<None Include="Resources\CheckBox.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Resources\StatusAnnotations_Complete_and_ok_32xLG.png" />
|
<Folder Include="My Project\DataSources\" />
|
||||||
|
<Folder Include="Resources\Icons\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\ampel-gelb.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\ampel-gruen.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\ampel-rot.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
@ -51,4 +51,26 @@ Public Class ClassCommonViews
|
|||||||
Throw ex
|
Throw ex
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Async Function VWIDB_GUI_WF_OVERVIEW(UserId As Int64, FormId As Int64) As Task(Of DataTable)
|
||||||
|
Try
|
||||||
|
My.Channel.CreateDatabaseRequest("Load Control Data", True)
|
||||||
|
|
||||||
|
Dim oSQL As String = $"SELECT * FROM VWIDB_GUI_WF_OVERVIEW WHERE USERID = {UserId} AND FORMID = {FormId}"
|
||||||
|
Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL)
|
||||||
|
Dim oTable = oResult.Table
|
||||||
|
|
||||||
|
If Not oResult.OK Then
|
||||||
|
_Logger.Error(New ApplicationException(oResult.ErrorMessage))
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
|
||||||
|
My.Channel.CloseDatabaseRequest()
|
||||||
|
|
||||||
|
Return oResult.Table
|
||||||
|
Catch ex As Exception
|
||||||
|
_Logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
74
GUIs.ClientSuite/ModuleWorkflow/GridOverview.Designer.vb
generated
Normal file
74
GUIs.ClientSuite/ModuleWorkflow/GridOverview.Designer.vb
generated
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class GridOverview
|
||||||
|
Inherits System.Windows.Forms.UserControl
|
||||||
|
|
||||||
|
'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.GridControl = New DevExpress.XtraGrid.GridControl()
|
||||||
|
Me.gvOverview = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
|
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
|
CType(Me.GridControl, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.gvOverview, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'GridControl
|
||||||
|
'
|
||||||
|
Me.GridControl.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.GridControl.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.GridControl.MainView = Me.gvOverview
|
||||||
|
Me.GridControl.Name = "GridControl"
|
||||||
|
Me.GridControl.Size = New System.Drawing.Size(626, 461)
|
||||||
|
Me.GridControl.TabIndex = 1
|
||||||
|
Me.GridControl.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.gvOverview, Me.GridView1})
|
||||||
|
'
|
||||||
|
'gvOverview
|
||||||
|
'
|
||||||
|
Me.gvOverview.GridControl = Me.GridControl
|
||||||
|
Me.gvOverview.Name = "gvOverview"
|
||||||
|
Me.gvOverview.OptionsFind.AlwaysVisible = True
|
||||||
|
Me.gvOverview.OptionsView.GroupDrawMode = DevExpress.XtraGrid.Views.Grid.GroupDrawMode.Office
|
||||||
|
Me.gvOverview.OptionsView.ShowGroupedColumns = True
|
||||||
|
Me.gvOverview.OptionsView.ShowVerticalLines = DevExpress.Utils.DefaultBoolean.[True]
|
||||||
|
'
|
||||||
|
'GridView1
|
||||||
|
'
|
||||||
|
Me.GridView1.GridControl = Me.GridControl
|
||||||
|
Me.GridView1.Name = "GridView1"
|
||||||
|
'
|
||||||
|
'GridOverview
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.Controls.Add(Me.GridControl)
|
||||||
|
Me.Name = "GridOverview"
|
||||||
|
Me.Size = New System.Drawing.Size(626, 461)
|
||||||
|
CType(Me.GridControl, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.gvOverview, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents GridControl As DevExpress.XtraGrid.GridControl
|
||||||
|
Friend WithEvents gvOverview As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
|
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
|
End Class
|
||||||
27
GUIs.ClientSuite/ModuleWorkflow/GridOverview.vb
Normal file
27
GUIs.ClientSuite/ModuleWorkflow/GridOverview.vb
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
Public Class GridOverview
|
||||||
|
Private _DataSource As List(Of WorkflowItem)
|
||||||
|
|
||||||
|
Public Property DataSource As List(Of WorkflowItem)
|
||||||
|
Get
|
||||||
|
Return _DataSource
|
||||||
|
End Get
|
||||||
|
Set(value As List(Of WorkflowItem))
|
||||||
|
_DataSource = value
|
||||||
|
GridControl.DataSource = value
|
||||||
|
|
||||||
|
If Not IsNothing(value) Then
|
||||||
|
ApplyStyles()
|
||||||
|
End If
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private Sub ApplyStyles()
|
||||||
|
With gvOverview.Columns.Item("StateImage")
|
||||||
|
.VisibleIndex = 0
|
||||||
|
.MaxWidth = 20
|
||||||
|
.OptionsColumn.ShowCaption = False
|
||||||
|
End With
|
||||||
|
gvOverview.Columns.Item("Process").VisibleIndex = 1
|
||||||
|
gvOverview.Columns.Item("State").Visible = False
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
60
GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.Designer.vb
generated
Normal file
60
GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.Designer.vb
generated
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class NavControlOverview
|
||||||
|
Inherits System.Windows.Forms.UserControl
|
||||||
|
|
||||||
|
'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.NavBarControl = New DevExpress.XtraNavBar.NavBarControl()
|
||||||
|
Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup()
|
||||||
|
CType(Me.NavBarControl, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'NavBarControl
|
||||||
|
'
|
||||||
|
Me.NavBarControl.ActiveGroup = Me.NavBarGroup1
|
||||||
|
Me.NavBarControl.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.NavBarControl.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1})
|
||||||
|
Me.NavBarControl.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.NavBarControl.Name = "NavBarControl"
|
||||||
|
Me.NavBarControl.Size = New System.Drawing.Size(150, 150)
|
||||||
|
Me.NavBarControl.TabIndex = 0
|
||||||
|
Me.NavBarControl.Text = "NavBarControl1"
|
||||||
|
'
|
||||||
|
'NavBarGroup1
|
||||||
|
'
|
||||||
|
Me.NavBarGroup1.Caption = "Workflow"
|
||||||
|
Me.NavBarGroup1.Expanded = True
|
||||||
|
Me.NavBarGroup1.Name = "NavBarGroup1"
|
||||||
|
'
|
||||||
|
'NavControlOverview
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.Controls.Add(Me.NavBarControl)
|
||||||
|
Me.Name = "NavControlOverview"
|
||||||
|
CType(Me.NavBarControl, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents NavBarControl As DevExpress.XtraNavBar.NavBarControl
|
||||||
|
Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup
|
||||||
|
End Class
|
||||||
120
GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.resx
Normal file
120
GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
40
GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.vb
Normal file
40
GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.vb
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Imports DevExpress.XtraNavBar
|
||||||
|
|
||||||
|
Public Class NavControlOverview
|
||||||
|
Private _DataSource As List(Of WorkflowItem)
|
||||||
|
|
||||||
|
Public Property DataSource As List(Of WorkflowItem)
|
||||||
|
Get
|
||||||
|
Return _DataSource
|
||||||
|
End Get
|
||||||
|
Set(value As List(Of WorkflowItem))
|
||||||
|
_DataSource = value
|
||||||
|
|
||||||
|
'TODO: Update Navbar Items
|
||||||
|
If Not IsNothing(value) Then
|
||||||
|
UpdateItems(value)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private Sub UpdateItems(WorkflowItems As List(Of WorkflowItem))
|
||||||
|
Dim oTotalItems = WorkflowItems.Count
|
||||||
|
Dim oGroupedItems = WorkflowItems.GroupBy(Function(Item As WorkflowItem)
|
||||||
|
Return Item.Process
|
||||||
|
End Function)
|
||||||
|
|
||||||
|
AddItem("Alle Workflows", oTotalItems)
|
||||||
|
|
||||||
|
For Each oGroupedItem As IGrouping(Of String, WorkflowItem) In oGroupedItems
|
||||||
|
AddItem(oGroupedItem.Key, oGroupedItem.Count)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub AddItem(Title As String, Count As Integer)
|
||||||
|
Dim oItem = New NavBarItem() With {
|
||||||
|
.Caption = $"{Title} ({Count})"
|
||||||
|
}
|
||||||
|
NavBarControl.Groups.First().ItemLinks.Add(oItem)
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
3
GUIs.ClientSuite/ModuleWorkflow/WorkflowDetail.vb
Normal file
3
GUIs.ClientSuite/ModuleWorkflow/WorkflowDetail.vb
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Public Class WorkflowDetail
|
||||||
|
Public Property Title
|
||||||
|
End Class
|
||||||
39
GUIs.ClientSuite/ModuleWorkflow/WorkflowItem.vb
Normal file
39
GUIs.ClientSuite/ModuleWorkflow/WorkflowItem.vb
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Imports System.ComponentModel
|
||||||
|
Imports DigitalData.GUIs.ClientSuite
|
||||||
|
|
||||||
|
Public Class WorkflowItem
|
||||||
|
Implements INotifyPropertyChanged
|
||||||
|
|
||||||
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
||||||
|
|
||||||
|
Private _state As String
|
||||||
|
|
||||||
|
Public Property Title As String
|
||||||
|
Public Property CreatedAt As DateTime
|
||||||
|
Public Property Process As String
|
||||||
|
|
||||||
|
Public Property IconMap As Dictionary(Of String, String)
|
||||||
|
Public Property StateImage As Image
|
||||||
|
Public Property State As String
|
||||||
|
Get
|
||||||
|
Return _state
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
_state = value
|
||||||
|
StateImage = GetIcon(value, IconMap)
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Sub New(IconMap As Dictionary(Of String, String))
|
||||||
|
Me.IconMap = IconMap
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function GetIcon(StateName As String, IconMap As Dictionary(Of String, String)) As Image
|
||||||
|
If IconMap.ContainsKey(StateName) Then
|
||||||
|
Dim IconName = IconMap.Item(StateName)
|
||||||
|
Return My.Resources.ResourceManager.GetObject(IconName)
|
||||||
|
Else
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
337
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.Designer.vb
generated
Normal file
337
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.Designer.vb
generated
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||||
|
Partial Class frmWorkflowOverview
|
||||||
|
Inherits DigitalData.GUIs.ClientSuite.Base.BaseRibbonForm
|
||||||
|
|
||||||
|
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()>
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()>
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.components = New System.ComponentModel.Container()
|
||||||
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmWorkflowOverview))
|
||||||
|
Dim TableColumnDefinition1 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
|
||||||
|
Dim TableColumnDefinition2 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
|
||||||
|
Dim TableColumnDefinition3 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
|
||||||
|
Dim TableRowDefinition1 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
|
||||||
|
Dim TableRowDefinition2 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
|
||||||
|
Dim TableRowDefinition3 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
|
||||||
|
Dim TableSpan1 As DevExpress.XtraEditors.TableLayout.TableSpan = New DevExpress.XtraEditors.TableLayout.TableSpan()
|
||||||
|
Dim TileViewItemElement1 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
|
||||||
|
Dim WindowsUIButtonImageOptions1 As DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions = New DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions()
|
||||||
|
Dim WindowsUIButtonImageOptions2 As DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions = New DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions()
|
||||||
|
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||||
|
Me.BarCheckItem1 = New DevExpress.XtraBars.BarCheckItem()
|
||||||
|
Me.BarCheckItem2 = New DevExpress.XtraBars.BarCheckItem()
|
||||||
|
Me.BarCheckItem3 = New DevExpress.XtraBars.BarCheckItem()
|
||||||
|
Me.RibbonPageCategory1 = New DevExpress.XtraBars.Ribbon.RibbonPageCategory()
|
||||||
|
Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
|
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
|
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||||
|
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
|
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||||
|
Me.NavControlOverview = New DigitalData.GUIs.ClientSuite.NavControlOverview()
|
||||||
|
Me.GridWorkflowDetails = New DevExpress.XtraGrid.GridControl()
|
||||||
|
Me.tvDetails = New DevExpress.XtraGrid.Views.Tile.TileView()
|
||||||
|
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
|
||||||
|
Me.WindowsUIButtonPanel1 = New DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel()
|
||||||
|
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
|
||||||
|
Me.SimpleLabelItem1 = New DevExpress.XtraLayout.SimpleLabelItem()
|
||||||
|
Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||||
|
Me.SimpleLabelItem2 = New DevExpress.XtraLayout.SimpleLabelItem()
|
||||||
|
Me.SimpleLabelItem3 = New DevExpress.XtraLayout.SimpleLabelItem()
|
||||||
|
Me.GridOverview = New DigitalData.GUIs.ClientSuite.GridOverview()
|
||||||
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SplitContainerControl1.SuspendLayout()
|
||||||
|
CType(Me.GridWorkflowDetails, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.tvDetails, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.LayoutControl1.SuspendLayout()
|
||||||
|
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.SimpleLabelItem1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.SimpleLabelItem2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.SimpleLabelItem3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'RibbonControl1
|
||||||
|
'
|
||||||
|
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||||
|
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarCheckItem1, Me.BarCheckItem2, Me.BarCheckItem3})
|
||||||
|
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.RibbonControl1.MaxItemId = 7
|
||||||
|
Me.RibbonControl1.Name = "RibbonControl1"
|
||||||
|
Me.RibbonControl1.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategory1})
|
||||||
|
Me.RibbonControl1.Size = New System.Drawing.Size(1134, 146)
|
||||||
|
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||||
|
'
|
||||||
|
'BarCheckItem1
|
||||||
|
'
|
||||||
|
Me.BarCheckItem1.Caption = "Alle"
|
||||||
|
Me.BarCheckItem1.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio
|
||||||
|
Me.BarCheckItem1.Id = 3
|
||||||
|
Me.BarCheckItem1.ImageOptions.Image = CType(resources.GetObject("BarCheckItem1.ImageOptions.Image"), System.Drawing.Image)
|
||||||
|
Me.BarCheckItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem1.ImageOptions.LargeImage"), System.Drawing.Image)
|
||||||
|
Me.BarCheckItem1.Name = "BarCheckItem1"
|
||||||
|
'
|
||||||
|
'BarCheckItem2
|
||||||
|
'
|
||||||
|
Me.BarCheckItem2.Caption = "Aktuell verantwortlich"
|
||||||
|
Me.BarCheckItem2.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio
|
||||||
|
Me.BarCheckItem2.Id = 4
|
||||||
|
Me.BarCheckItem2.ImageOptions.Image = CType(resources.GetObject("BarCheckItem2.ImageOptions.Image"), System.Drawing.Image)
|
||||||
|
Me.BarCheckItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem2.ImageOptions.LargeImage"), System.Drawing.Image)
|
||||||
|
Me.BarCheckItem2.Name = "BarCheckItem2"
|
||||||
|
'
|
||||||
|
'BarCheckItem3
|
||||||
|
'
|
||||||
|
Me.BarCheckItem3.Caption = "Beteiligt"
|
||||||
|
Me.BarCheckItem3.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio
|
||||||
|
Me.BarCheckItem3.Id = 6
|
||||||
|
Me.BarCheckItem3.ImageOptions.Image = CType(resources.GetObject("BarCheckItem3.ImageOptions.Image"), System.Drawing.Image)
|
||||||
|
Me.BarCheckItem3.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckItem3.ImageOptions.LargeImage"), System.Drawing.Image)
|
||||||
|
Me.BarCheckItem3.Name = "BarCheckItem3"
|
||||||
|
'
|
||||||
|
'RibbonPageCategory1
|
||||||
|
'
|
||||||
|
Me.RibbonPageCategory1.Name = "RibbonPageCategory1"
|
||||||
|
Me.RibbonPageCategory1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage3})
|
||||||
|
Me.RibbonPageCategory1.Text = "Worflows"
|
||||||
|
'
|
||||||
|
'RibbonPage3
|
||||||
|
'
|
||||||
|
Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3})
|
||||||
|
Me.RibbonPage3.Name = "RibbonPage3"
|
||||||
|
Me.RibbonPage3.Text = "Allgemein"
|
||||||
|
'
|
||||||
|
'RibbonPageGroup3
|
||||||
|
'
|
||||||
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarCheckItem1)
|
||||||
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarCheckItem3)
|
||||||
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarCheckItem2)
|
||||||
|
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
|
||||||
|
Me.RibbonPageGroup3.Text = "Verantwortlichkeit"
|
||||||
|
'
|
||||||
|
'RibbonStatusBar1
|
||||||
|
'
|
||||||
|
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 702)
|
||||||
|
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||||
|
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||||
|
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1134, 21)
|
||||||
|
'
|
||||||
|
'RibbonPage2
|
||||||
|
'
|
||||||
|
Me.RibbonPage2.Name = "RibbonPage2"
|
||||||
|
Me.RibbonPage2.Text = "RibbonPage2"
|
||||||
|
'
|
||||||
|
'SplitContainerControl1
|
||||||
|
'
|
||||||
|
Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 146)
|
||||||
|
Me.SplitContainerControl1.Name = "SplitContainerControl1"
|
||||||
|
Me.SplitContainerControl1.Panel1.Controls.Add(Me.GridOverview)
|
||||||
|
Me.SplitContainerControl1.Panel1.Controls.Add(Me.NavControlOverview)
|
||||||
|
Me.SplitContainerControl1.Panel1.Text = "Panel1"
|
||||||
|
Me.SplitContainerControl1.Panel2.Controls.Add(Me.GridWorkflowDetails)
|
||||||
|
Me.SplitContainerControl1.Panel2.Controls.Add(Me.LayoutControl1)
|
||||||
|
Me.SplitContainerControl1.Panel2.Text = "Panel2"
|
||||||
|
Me.SplitContainerControl1.Size = New System.Drawing.Size(1134, 556)
|
||||||
|
Me.SplitContainerControl1.SplitterPosition = 841
|
||||||
|
Me.SplitContainerControl1.TabIndex = 5
|
||||||
|
Me.SplitContainerControl1.Text = "SplitContainerControl1"
|
||||||
|
'
|
||||||
|
'NavControlOverview
|
||||||
|
'
|
||||||
|
Me.NavControlOverview.DataSource = Nothing
|
||||||
|
Me.NavControlOverview.Dock = System.Windows.Forms.DockStyle.Left
|
||||||
|
Me.NavControlOverview.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.NavControlOverview.Name = "NavControlOverview"
|
||||||
|
Me.NavControlOverview.Size = New System.Drawing.Size(185, 556)
|
||||||
|
Me.NavControlOverview.TabIndex = 1
|
||||||
|
'
|
||||||
|
'GridWorkflowDetails
|
||||||
|
'
|
||||||
|
Me.GridWorkflowDetails.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.GridWorkflowDetails.Location = New System.Drawing.Point(0, 166)
|
||||||
|
Me.GridWorkflowDetails.MainView = Me.tvDetails
|
||||||
|
Me.GridWorkflowDetails.MenuManager = Me.RibbonControl1
|
||||||
|
Me.GridWorkflowDetails.Name = "GridWorkflowDetails"
|
||||||
|
Me.GridWorkflowDetails.Size = New System.Drawing.Size(281, 390)
|
||||||
|
Me.GridWorkflowDetails.TabIndex = 1
|
||||||
|
Me.GridWorkflowDetails.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.tvDetails})
|
||||||
|
'
|
||||||
|
'tvDetails
|
||||||
|
'
|
||||||
|
Me.tvDetails.GridControl = Me.GridWorkflowDetails
|
||||||
|
Me.tvDetails.Name = "tvDetails"
|
||||||
|
Me.tvDetails.OptionsTiles.ItemSize = New System.Drawing.Size(248, 123)
|
||||||
|
Me.tvDetails.OptionsTiles.LayoutMode = DevExpress.XtraGrid.Views.Tile.TileViewLayoutMode.List
|
||||||
|
Me.tvDetails.TileColumns.Add(TableColumnDefinition1)
|
||||||
|
Me.tvDetails.TileColumns.Add(TableColumnDefinition2)
|
||||||
|
Me.tvDetails.TileColumns.Add(TableColumnDefinition3)
|
||||||
|
TableRowDefinition1.Length.Value = 15.0R
|
||||||
|
TableRowDefinition2.Length.Value = 13.0R
|
||||||
|
TableRowDefinition3.Length.Value = 13.0R
|
||||||
|
Me.tvDetails.TileRows.Add(TableRowDefinition1)
|
||||||
|
Me.tvDetails.TileRows.Add(TableRowDefinition2)
|
||||||
|
Me.tvDetails.TileRows.Add(TableRowDefinition3)
|
||||||
|
TableSpan1.ColumnSpan = 2
|
||||||
|
TableSpan1.RowSpan = 2
|
||||||
|
Me.tvDetails.TileSpans.Add(TableSpan1)
|
||||||
|
TileViewItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
|
||||||
|
TileViewItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
|
||||||
|
TileViewItemElement1.Text = "element1"
|
||||||
|
TileViewItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
|
||||||
|
Me.tvDetails.TileTemplate.Add(TileViewItemElement1)
|
||||||
|
'
|
||||||
|
'LayoutControl1
|
||||||
|
'
|
||||||
|
Me.LayoutControl1.Controls.Add(Me.WindowsUIButtonPanel1)
|
||||||
|
Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Top
|
||||||
|
Me.LayoutControl1.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.LayoutControl1.Name = "LayoutControl1"
|
||||||
|
Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(1186, 56, 650, 400)
|
||||||
|
Me.LayoutControl1.Root = Me.LayoutControlGroup1
|
||||||
|
Me.LayoutControl1.Size = New System.Drawing.Size(281, 166)
|
||||||
|
Me.LayoutControl1.TabIndex = 0
|
||||||
|
Me.LayoutControl1.Text = "LayoutControl1"
|
||||||
|
'
|
||||||
|
'WindowsUIButtonPanel1
|
||||||
|
'
|
||||||
|
WindowsUIButtonImageOptions1.Image = CType(resources.GetObject("WindowsUIButtonImageOptions1.Image"), System.Drawing.Image)
|
||||||
|
WindowsUIButtonImageOptions2.Image = CType(resources.GetObject("WindowsUIButtonImageOptions2.Image"), System.Drawing.Image)
|
||||||
|
Me.WindowsUIButtonPanel1.Buttons.AddRange(New DevExpress.XtraEditors.ButtonPanel.IBaseButton() {New DevExpress.XtraBars.Docking2010.WindowsUIButton("Verlängerung", True, WindowsUIButtonImageOptions1, DevExpress.XtraBars.Docking2010.ButtonStyle.PushButton, "", -1, True, Nothing, True, False, True, Nothing, -1, False), New DevExpress.XtraBars.Docking2010.WindowsUIButton("Kündigung", True, WindowsUIButtonImageOptions2, DevExpress.XtraBars.Docking2010.ButtonStyle.PushButton, "", -1, True, Nothing, True, False, True, Nothing, -1, False)})
|
||||||
|
Me.WindowsUIButtonPanel1.ContentAlignment = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.WindowsUIButtonPanel1.Location = New System.Drawing.Point(12, 96)
|
||||||
|
Me.WindowsUIButtonPanel1.Name = "WindowsUIButtonPanel1"
|
||||||
|
Me.WindowsUIButtonPanel1.Size = New System.Drawing.Size(257, 55)
|
||||||
|
Me.WindowsUIButtonPanel1.TabIndex = 0
|
||||||
|
Me.WindowsUIButtonPanel1.Text = "WindowsUIButtonPanel1"
|
||||||
|
'
|
||||||
|
'LayoutControlGroup1
|
||||||
|
'
|
||||||
|
Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
|
||||||
|
Me.LayoutControlGroup1.GroupBordersVisible = False
|
||||||
|
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.SimpleLabelItem1, Me.LayoutControlItem2, Me.SimpleLabelItem2, Me.SimpleLabelItem3})
|
||||||
|
Me.LayoutControlGroup1.Name = "Root"
|
||||||
|
Me.LayoutControlGroup1.Size = New System.Drawing.Size(281, 166)
|
||||||
|
Me.LayoutControlGroup1.TextVisible = False
|
||||||
|
'
|
||||||
|
'SimpleLabelItem1
|
||||||
|
'
|
||||||
|
Me.SimpleLabelItem1.AllowHotTrack = False
|
||||||
|
Me.SimpleLabelItem1.AppearanceItemCaption.Font = New System.Drawing.Font("Segoe UI", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
|
Me.SimpleLabelItem1.AppearanceItemCaption.ForeColor = System.Drawing.SystemColors.MenuHighlight
|
||||||
|
Me.SimpleLabelItem1.AppearanceItemCaption.Options.UseFont = True
|
||||||
|
Me.SimpleLabelItem1.AppearanceItemCaption.Options.UseForeColor = True
|
||||||
|
Me.SimpleLabelItem1.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.SimpleLabelItem1.Name = "SimpleLabelItem1"
|
||||||
|
Me.SimpleLabelItem1.Size = New System.Drawing.Size(261, 34)
|
||||||
|
Me.SimpleLabelItem1.Text = "Vertragsnr. 4711"
|
||||||
|
Me.SimpleLabelItem1.TextSize = New System.Drawing.Size(151, 30)
|
||||||
|
'
|
||||||
|
'LayoutControlItem2
|
||||||
|
'
|
||||||
|
Me.LayoutControlItem2.Control = Me.WindowsUIButtonPanel1
|
||||||
|
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 84)
|
||||||
|
Me.LayoutControlItem2.Name = "LayoutControlItem2"
|
||||||
|
Me.LayoutControlItem2.Size = New System.Drawing.Size(261, 62)
|
||||||
|
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(0, 0)
|
||||||
|
Me.LayoutControlItem2.TextVisible = False
|
||||||
|
'
|
||||||
|
'SimpleLabelItem2
|
||||||
|
'
|
||||||
|
Me.SimpleLabelItem2.AllowHotTrack = False
|
||||||
|
Me.SimpleLabelItem2.AppearanceItemCaption.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
|
Me.SimpleLabelItem2.AppearanceItemCaption.Options.UseFont = True
|
||||||
|
Me.SimpleLabelItem2.Location = New System.Drawing.Point(0, 59)
|
||||||
|
Me.SimpleLabelItem2.Name = "SimpleLabelItem2"
|
||||||
|
Me.SimpleLabelItem2.Size = New System.Drawing.Size(261, 25)
|
||||||
|
Me.SimpleLabelItem2.Text = "Sunshine GmbH"
|
||||||
|
Me.SimpleLabelItem2.TextSize = New System.Drawing.Size(151, 21)
|
||||||
|
'
|
||||||
|
'SimpleLabelItem3
|
||||||
|
'
|
||||||
|
Me.SimpleLabelItem3.AllowHotTrack = False
|
||||||
|
Me.SimpleLabelItem3.AppearanceItemCaption.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
|
Me.SimpleLabelItem3.AppearanceItemCaption.Options.UseFont = True
|
||||||
|
Me.SimpleLabelItem3.Location = New System.Drawing.Point(0, 34)
|
||||||
|
Me.SimpleLabelItem3.Name = "SimpleLabelItem3"
|
||||||
|
Me.SimpleLabelItem3.Size = New System.Drawing.Size(261, 25)
|
||||||
|
Me.SimpleLabelItem3.Text = "Objekt: Haus Nr. 9"
|
||||||
|
Me.SimpleLabelItem3.TextSize = New System.Drawing.Size(151, 21)
|
||||||
|
'
|
||||||
|
'GridOverview1
|
||||||
|
'
|
||||||
|
Me.GridOverview.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.GridOverview.Location = New System.Drawing.Point(185, 0)
|
||||||
|
Me.GridOverview.Name = "GridOverview1"
|
||||||
|
Me.GridOverview.Size = New System.Drawing.Size(656, 556)
|
||||||
|
Me.GridOverview.TabIndex = 2
|
||||||
|
'
|
||||||
|
'frmWorkflowOverview
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(1134, 723)
|
||||||
|
Me.Controls.Add(Me.SplitContainerControl1)
|
||||||
|
Me.Controls.Add(Me.RibbonStatusBar1)
|
||||||
|
Me.Controls.Add(Me.RibbonControl1)
|
||||||
|
Me.Name = "frmWorkflowOverview"
|
||||||
|
Me.Ribbon = Me.RibbonControl1
|
||||||
|
Me.StatusBar = Me.RibbonStatusBar1
|
||||||
|
Me.Text = "Workflow Übersicht"
|
||||||
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.SplitContainerControl1.ResumeLayout(False)
|
||||||
|
CType(Me.GridWorkflowDetails, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.tvDetails, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.LayoutControl1.ResumeLayout(False)
|
||||||
|
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.SimpleLabelItem1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.SimpleLabelItem2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.SimpleLabelItem3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
Me.PerformLayout()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
|
||||||
|
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
|
||||||
|
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||||
|
Friend WithEvents RibbonPageCategory1 As DevExpress.XtraBars.Ribbon.RibbonPageCategory
|
||||||
|
Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||||
|
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||||
|
Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
|
||||||
|
Friend WithEvents GridWorkflowDetails As DevExpress.XtraGrid.GridControl
|
||||||
|
Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
|
||||||
|
Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup
|
||||||
|
Friend WithEvents BarCheckItem1 As DevExpress.XtraBars.BarCheckItem
|
||||||
|
Friend WithEvents BarCheckItem2 As DevExpress.XtraBars.BarCheckItem
|
||||||
|
Friend WithEvents BarCheckItem3 As DevExpress.XtraBars.BarCheckItem
|
||||||
|
Friend WithEvents WindowsUIButtonPanel1 As DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel
|
||||||
|
Friend WithEvents SimpleLabelItem1 As DevExpress.XtraLayout.SimpleLabelItem
|
||||||
|
Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem
|
||||||
|
Friend WithEvents SimpleLabelItem2 As DevExpress.XtraLayout.SimpleLabelItem
|
||||||
|
Friend WithEvents SimpleLabelItem3 As DevExpress.XtraLayout.SimpleLabelItem
|
||||||
|
Friend WithEvents tvDetails As DevExpress.XtraGrid.Views.Tile.TileView
|
||||||
|
Friend WithEvents NavControlOverview As NavControlOverview
|
||||||
|
Friend WithEvents GridOverview As GridOverview
|
||||||
|
End Class
|
||||||
231
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.resx
Normal file
231
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.resx
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="BarCheckItem1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAYdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1w5
|
||||||
|
6BYAAADzSURBVDhPpdA9CsJAEAVglYBYeQYPoJ2tBxDEMq2FJ5BASsVrWNhqmc4rKHgJsbAXTKXre2En
|
||||||
|
TNZJESw+iPPzzKTlnPuLWWyifJhtT23YwdPbQwfMuhUwBhdgzaxbAbEauMISIm8BZ5B+bAWkvvmBunPe
|
||||||
|
wJnUCujDCy5Qdw57nOn/BPiQBA6gzxGssZfoHb3MW4cwADlHY429EURlAH50YQM3uMMU5BxZLl4b2OMM
|
||||||
|
Z7nTY8AR9D/RCniO/OYza3qGMgbkqvCANcg5E694bWCPMzKfl9/Af4fwnLlXeW29EwZY54QyvRMG6HPq
|
||||||
|
5HqnEtCca30Bw6t+WSTe8moAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarCheckItem1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAYdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1w5
|
||||||
|
6BYAAAJ9SURBVFhHxdbNq41RFMfx461wURSljExuESJCoRiR7kAmTBhgoJiJgUxu/gKGElJckpFEGVFC
|
||||||
|
XiciRt4Zka6IPL6/2/Oc1l7P2veeczs9Bp/u2WuvtfY+z8s+t1UUxX8VBpvUGhi8kbMR1/EZv/EFN7EJ
|
||||||
|
Ub50XRMGsQZ/UAQU34Be1GQ3cB5Ro8ol9KImu4EniJpUnqIXNdkNvIJvUDmHlfA1c7AWZ/EXvu41fE24
|
||||||
|
gWXI3ctBKGcX7sA+bHexGxNwFL5WPZcgWS8ZlAbgi2UYM3DMxCLHMQ3fTKyi3sl6yaA0Fc/gi+9hOr6b
|
||||||
|
WOQHZuG2iYl6qneyXjIwdCltsVzDahfLWQ/l29ge1NaqBUr6pp9gG5zEVhfLUd4JM1avPtTWqgWMzfiF
|
||||||
|
qom+/QEzHs1BrCo/q8cWRGuMugHRG3EK97EQeg78YpEHWIQzqD35VhjEZESFtxAt6CnP1qmXetrYCB9Y
|
||||||
|
gP14jI+YBzuvRrkzoqL5pbA9dU6op3pr3O5ZfZiN09ChYpu9wV7ofm7HJPjXy9MBpcNoMfbhHey81tBa
|
||||||
|
WnNkA3PxEjYpR6/XNhfzNL/OxSI67udrA0MmOJarUM1FE7MuQPPKi+a9ISXriI0mc3ZgCg5Bt0ixtzgC
|
||||||
|
3aKdZawTw9pAdGZHXkCLi+6xamWm+Tyx/KvnRflRH+trVdipfujyHzYxS7+CV6C8aL6m9k9ikKRfQF3e
|
||||||
|
56h2rtNND5vN06W3r6jyVad6m5eslwzEJetp9q+R9RCX8cjEPNWrT7uvXS8ZiElcjm4f0Bz1WYGuNtDp
|
||||||
|
sdup9vFs10sGUiXhJ6JG46V+XW3gA6JG4/UeY2+gaWGwSWGwSWGwOUXrHy0ANvXoR9wdAAAAAElFTkSu
|
||||||
|
QmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarCheckItem2.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFBlb3BsZTtBc3NpZ25+WIkkAAAA
|
||||||
|
4ElEQVQ4T6XRPQ4BURQF4ClEr1FrSSSiokLPGuxEQqbQWIRFSKYXCWuwAmoKRJ5zJu/Ke/fd0Si+MRnn
|
||||||
|
nMxP5pz7S3nI81wbwAHu3hFGkGStgRpcwClXqEOUtwbaoMuiA1HeGhiDVaYJRHlrYA1WmfhflLcGhvAG
|
||||||
|
XeY1vtwobw3QHvQAryXZqgF+sidImeet2arIYOF/S1UDNIeT1wvKTspkDTRgA99v7sNSrhzoww5ewNve
|
||||||
|
QheaCIbliAxM4QHyzCGWl7ooZOCsSiF5aeFI8gg3VdL0SDLwU1gAjvjzIvsAqlQYjVXYUosAAAAASUVO
|
||||||
|
RK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarCheckItem2.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFBlb3BsZTtBc3NpZ25+WIkkAAAB
|
||||||
|
0UlEQVRYR8XWsStFYRgG8DNIGQyKrIrFwG69UhSD8sfIcON2B2UmBnZlMCoWVjYZlBSxIWUg5HgenXP6
|
||||||
|
vu88597zHjeGX3K+732fx7mUKI7jf+V902w2y5iFXbiDj8Q97ME8qBmpSoENiNvYATWbYy0wDSpQWQC1
|
||||||
|
w2MtwNeuwpR9UDs81gKXoMKUK1A7PNYCL6DClGdQOzzWAiqoyBuoHR5LgRqooFY4o3ZlLAU2QYW0whm1
|
||||||
|
K2MpsAoqpBXOqF0ZS4FheAQVpPAuZ9SujKUA1UGFKYugdnisBcZAhSm8q3Z4rAXoEFSg6wjUbE6VAuPw
|
||||||
|
CiqYeMY7ajanSgGagXcIw/mMZ2pGqlqgGx4gLPAEPFMzUtUCNABLwN+JE1iGQVB3C1kLTMB68EzZBt5V
|
||||||
|
Z54yBYagARfA18x/v0ZA3SX++X0B73KmNtc4iKCefM0pKtAHW8BA93OmY+gB9z71whmk91aSEIbHaWBI
|
||||||
|
FRiF62RJkVOYhK7EFJxDeh6Gly7QDzfOonY+E+4zFV66wFqwzCr9rMPwQmEBy0+vMJhvQIYpYQG11CJ9
|
||||||
|
A6VLhAVug4VVFJXIPndXWODXggC3RHj2wyvQCSIkLaHO/qQAsYR63vkCNnH0DUZ2qvqAgwutAAAAAElF
|
||||||
|
TkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarCheckItem3.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz
|
||||||
|
ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v
|
||||||
|
uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB
|
||||||
|
unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2
|
||||||
|
sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM
|
||||||
|
0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarCheckItem3.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz
|
||||||
|
ZXKTe2BJAAACnklEQVRYR8XVz4tPYRTH8cEoP4YaRalZ2UwRIkINxYo0C9mwYYGFYqexkI38BSwsJKTM
|
||||||
|
kKyk1KwoIT83IlZ+syKNRuTr/dE9+jzPPHfmmsXX4lXfc+55zrlz73Of6Wi1Wv9VMdlOSTAweMptxHV8
|
||||||
|
xA98wg1sQl4batf4HJcEFIa1+IlWgfIb4PWN1viskAQUhQsoNQqX4PWN1viskAQUhUfVojqP4fWN1vis
|
||||||
|
kAQUhRfVopLzWAWvl3lYh3P4hXzdS58VkoAiWY66d3kMqtmFW/DNdhu7MQVHkK9Vz6U+T5KAAumvFuRG
|
||||||
|
0IWjlis5jpn4YrnQ7/MkCSiQGXhSLXB3MAtfLVfyDXNx03KinjN8niQBBUGP0hfLNazJcnXWQ/We2+Oz
|
||||||
|
QhJQFPSXfoA3OImtWa6O6k5YrF6zfVZIAorcZnxHNNFff8Di8RzE6uq3emzxOS4JKMzpiziNu1gE7YN8
|
||||||
|
WMk9LMZZjNn5LgkoDp1aaHEYRmlgbjjrq16dngtJQFEP9uMh3mMB/AbUqO6MCLq+LOupc0I91bvHZ0ZR
|
||||||
|
N85Ah4o3e4W90PvcjmnIP6+cDigdRkuwD2/g1zVDs7r/3AA/5uM5vKiOPq9tWS6n631ZrkTH/ULdwJAl
|
||||||
|
J3IVWjNoOXexeqKqK13PDalYR2zpYp0dmI5D0CtS7jUOQ69oZ5VrYkQ3UDqzS55Bw0XvWGtljv2eWj0B
|
||||||
|
7RfVl/q4z393Y7VwIr3Q4x+wnNN/wSvo9b7jSQJr5PQfUI/3KeLOdbpps3mdHr1/oqrXui6fkUsCinPa
|
||||||
|
zfln5O7jMh5YLqf1fT7HJQGFbgX+dYPWUZ+VPiskAUWu6bHbVHI8hySgyI2i1GiyRn1WSAKK3DuUGk3W
|
||||||
|
W58VxiTarZhsp2KynYrJ9ml1/AZUr3hglRjmdgAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="WindowsUIButtonImageOptions1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFJlc2V0O1VuZG87E4EW/wAAAYJJ
|
||||||
|
REFUWEfFlj1Ow2AMhnsAJK7TIdyEEzDCUhYmDsEpunOTbhyAgakSW/BTpdVr1+nHh6gzPFLs+LWdfL+r
|
||||||
|
cRwXJXVWkjorSZ2VOGMYhhZrY2NsjZ2xn+AZH++IybQHtB44IxNM3BlvxpcxNiCGWDRnubQeOMMCXqLA
|
||||||
|
eDD4wqzYJdCgdfm0HjjDAhBqE8/GtxGT/xa05OhqAGiC7rPi78ajwVjfTvCMj3cxnhynP6H1wBmT4Mhn
|
||||||
|
sD+MJ+PGOH1RgHfEEKtahuMwJ7QeOEMEERLeG7HgHMTGJpiYrh44IwgUvioWaYFGc7A61loPnBEEyqsR
|
||||||
|
C7RgOOKc2Gg9cEYIjmRLtAUTU3NstR44IwRn9DbB6lD9TuuBM0LwHD1NsERVu9d64AwL+G8Wb6B7CIBT
|
||||||
|
TUVMJE3aQ/ckBI5UFbGULu1+c/xpGQK/LR67ZRvREbZNFZdtxUc4OOIdgIR81VUPI2WR4zhSfiHJoPuy
|
||||||
|
K9kcZZfSFoz19a7lS5A6K0mdlaTOOsbVD4kgpriFBNvrAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="WindowsUIButtonImageOptions2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS
|
||||||
|
aWJib247U3RhbmRhcmQ7Y1ZIMAAAAUFJREFUWEfFlUEOwjAMBHlYheBjSLw8xJKN3N1N43AIhxFi8Xp8
|
||||||
|
KOqttfZXZLgTGe5Ehjuh4DgO5C6yKnfcj1AAC16d5p/424xvFx0ZCsSCYOUI6qInoKAPqwXfRZ0sUgy7
|
||||||
|
6DIo6IMPKCJXR4zkwQN9py9GHzLeqaRQR8zktpN8FNiQs3JESW6gj4IYdCpHlOUG+ijIw87siCtOcgN9
|
||||||
|
FGDB+eUIkhvoo0CVnJUjpNxAHwWqlKgcMZQb6KNAlRKzB87I/w4CfRSoklORB8Mj0EeBKnVW5IE8An0U
|
||||||
|
iNIv8oCOQB8FUJjJ7YGbPZinI9BHQRquyGO2fAT6KPDBFXlQOgJ9FPSh2etYyYPZEfPXsdEHR4uu5MFl
|
||||||
|
F10UBF6gBUWGXfRQkPHiqjyQXXRQgPTSMy9YhLq4n4LdyHAnMtyJDPfRbh/esgzdHdsY9wAAAABJRU5E
|
||||||
|
rkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
51
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.vb
Normal file
51
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.vb
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Imports System.ComponentModel
|
||||||
|
Imports DevExpress.Utils
|
||||||
|
|
||||||
|
Public Class frmWorkflowOverview
|
||||||
|
Private WorkflowItems As BindingList(Of WorkflowItem)
|
||||||
|
Private WorkflowDetails As BindingList(Of WorkflowDetail)
|
||||||
|
|
||||||
|
Private Async Sub frmWorkflowOverview_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
|
Dim oDatatable As DataTable
|
||||||
|
Dim oWorkflows As New List(Of WorkflowItem)
|
||||||
|
|
||||||
|
Dim oIconMap As New Dictionary(Of String, String) From {
|
||||||
|
{"Start", "ampel_gruen"},
|
||||||
|
{"not started", "ampel_rot"}
|
||||||
|
}
|
||||||
|
|
||||||
|
Try
|
||||||
|
oDatatable = Await My.Common.Views.VWIDB_GUI_WF_OVERVIEW(70, 104)
|
||||||
|
|
||||||
|
For Each oRow As DataRow In oDatatable.Rows
|
||||||
|
oWorkflows.Add(New WorkflowItem(oIconMap) With {
|
||||||
|
.Title = oRow.Item("REQUEST_TITLE"),
|
||||||
|
.State = oRow.Item("STATETITLE"),
|
||||||
|
.Process = oRow.Item("PROCESS_NAME")
|
||||||
|
})
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
ShowErrorMessage(ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
GridOverview.DataSource = oWorkflows
|
||||||
|
NavControlOverview.DataSource = oWorkflows
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'gvOverview.GroupFormat = "[#image]{1} {2}"
|
||||||
|
'With gvOverview.Columns.Item("CreatedAt")
|
||||||
|
' .OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateAlt
|
||||||
|
' .GroupInterval = DevExpress.XtraGrid.ColumnGroupInterval.DateRange
|
||||||
|
' .SortOrder = DevExpress.Data.ColumnSortOrder.Descending
|
||||||
|
' .Group()
|
||||||
|
'End With
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub frmWorkflowOverview_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||||
|
RibbonControl1.SelectPage(RibbonPage3)
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
120
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.resx
Normal file
120
GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
@ -1,5 +1,4 @@
|
|||||||
Imports DevExpress.XtraLayout
|
Imports DevExpress.XtraLayout
|
||||||
Imports DigitalData.GUIs.ClientSuite
|
|
||||||
Imports DigitalData.GUIs.ClientSuite.Controls
|
Imports DigitalData.GUIs.ClientSuite.Controls
|
||||||
|
|
||||||
Public Class frmWorkflowStep
|
Public Class frmWorkflowStep
|
||||||
30
GUIs.ClientSuite/My Project/Resources.Designer.vb
generated
30
GUIs.ClientSuite/My Project/Resources.Designer.vb
generated
@ -60,6 +60,36 @@ Namespace My.Resources
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property ampel_gelb() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("ampel_gelb", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property ampel_gruen() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("ampel_gruen", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property ampel_rot() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("ampel_rot", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||||
'''</summary>
|
'''</summary>
|
||||||
|
|||||||
@ -118,25 +118,31 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="iconfinder_Gowalla_324477" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\iconfinder_Gowalla_324477.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="ComboBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\ComboBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="TextBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="TextBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\TextBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\TextBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="iconfinder_Gowalla_324477" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\iconfinder_Gowalla_324477.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="DatePicker" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="DatePicker" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\DatePicker.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\DatePicker.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ComboBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ComboBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="user_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="user_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\user_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\user_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CheckBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="CheckBox" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\CheckBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\CheckBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StatusAnnotations_Complete_and_ok_32xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="ampel_gelb" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\StatusAnnotations_Complete_and_ok_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\ampel-gelb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ampel_gruen" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ampel-gruen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ampel_rot" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ampel-rot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -1,16 +1,16 @@
|
|||||||
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
|
||||||
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.Utils.MVVM.MVVMContext, DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
|
|||||||
BIN
GUIs.ClientSuite/Resources/ampel-gelb.png
Normal file
BIN
GUIs.ClientSuite/Resources/ampel-gelb.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.9 KiB |
BIN
GUIs.ClientSuite/Resources/ampel-gruen.png
Normal file
BIN
GUIs.ClientSuite/Resources/ampel-gruen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
GUIs.ClientSuite/Resources/ampel-rot.png
Normal file
BIN
GUIs.ClientSuite/Resources/ampel-rot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@ -1,47 +1,44 @@
|
|||||||
Imports System.Timers
|
Imports System.Timers
|
||||||
Imports DigitalData.GUIs.ClientSuite
|
|
||||||
Imports DigitalData.GUIs.ClientSuite.Base
|
Imports DigitalData.GUIs.ClientSuite.Base
|
||||||
Imports DigitalData.Modules.EDMIAPI.IDBServiceReference
|
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
Namespace Workers
|
Namespace Workers
|
||||||
Public Class HeartbeatWorker
|
Public Class HeartbeatWorker
|
||||||
Inherits BaseClass
|
Inherits BaseClass
|
||||||
Implements IWorker
|
Implements IWorker
|
||||||
|
|
||||||
Private _Channel As IIDBServiceChannel
|
|
||||||
|
|
||||||
Public Event OnlineChanged As OnlineChangedEventHandler
|
Public Event OnlineChanged As OnlineChangedEventHandler
|
||||||
Public Delegate Sub OnlineChangedEventHandler(sender As Object, Online As Boolean)
|
Public Delegate Sub OnlineChangedEventHandler(sender As Object, Online As Boolean)
|
||||||
|
|
||||||
Public ReadOnly Property Interval As Integer = 4000 Implements IWorker.Interval
|
Public ReadOnly Property Interval As Integer = 4000 Implements IWorker.Interval
|
||||||
|
Public ReadOnly Property Name As String = "Heartbeat Worker" Implements IWorker.Name
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
Public Sub New(LogConfig As LogConfig)
|
||||||
MyBase.New(LogConfig)
|
MyBase.New(LogConfig)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub Setup() Implements IWorker.Setup
|
Public Sub Setup() Implements IWorker.Setup
|
||||||
_Channel = My.ChannelFactory.CreateChannel()
|
Logger.Debug("Starting {0}", "HeartbeatWorker")
|
||||||
_Channel.Open()
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Async Sub Callback(manager As WorkerManager, e As ElapsedEventArgs) Implements IWorker.Callback
|
Public Async Sub Callback(Manager As WorkerManager, e As ElapsedEventArgs) Implements IWorker.Callback
|
||||||
Try
|
Try
|
||||||
Logger.Debug("Checking if Service is up...")
|
If My.Channel.State = ServiceModel.CommunicationState.Faulted Then
|
||||||
|
My.Channel = My.ChannelFactory.CreateChannel()
|
||||||
If _Channel.State = ServiceModel.CommunicationState.Faulted Then
|
|
||||||
_Channel = My.ChannelFactory.CreateChannel()
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Connect to service and send hearbeat request
|
' Connect to service and send hearbeat request
|
||||||
Dim oResult = Await _Channel.HeartbeatAsync()
|
Dim oResult = Await My.Channel.HeartbeatAsync()
|
||||||
|
|
||||||
Logger.Debug("Service is online")
|
Logger.Debug("Service is online")
|
||||||
|
|
||||||
SetOnlineState(True)
|
SetOnlineState(True)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
|
||||||
Logger.Debug("Service is offline!")
|
Logger.Debug("Service is offline!")
|
||||||
Logger.Error(ex)
|
Logger.Error(ex)
|
||||||
|
|
||||||
|
Manager.StopWorkers()
|
||||||
SetOnlineState(False)
|
SetOnlineState(False)
|
||||||
Finally
|
Finally
|
||||||
My.Application.Service.LastChecked = DateTime.Now
|
My.Application.Service.LastChecked = DateTime.Now
|
||||||
@ -49,7 +46,7 @@ Namespace Workers
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub Teardown() Implements IWorker.Teardown
|
Public Sub Teardown() Implements IWorker.Teardown
|
||||||
' TODO: Close channel gracefully
|
Logger.Debug("Stopping {0}", Name)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetOnlineState(NewState As Boolean)
|
Private Sub SetOnlineState(NewState As Boolean)
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
Namespace Workers
|
Namespace Workers
|
||||||
Public Interface IWorker
|
Public Interface IWorker
|
||||||
ReadOnly Property Interval As Integer
|
ReadOnly Property Interval As Integer
|
||||||
|
ReadOnly Property Name As String
|
||||||
|
|
||||||
Sub Setup()
|
Sub Setup()
|
||||||
Sub Teardown()
|
Sub Teardown()
|
||||||
|
|||||||
@ -6,6 +6,14 @@ Namespace Workers
|
|||||||
Public Class WorkerManager
|
Public Class WorkerManager
|
||||||
Inherits BaseClass
|
Inherits BaseClass
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Holds information about a worker
|
||||||
|
''' </summary>
|
||||||
|
Class WorkerState
|
||||||
|
Public Worker As IWorker
|
||||||
|
Public Timer As Timer
|
||||||
|
End Class
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' List of workers that will be started.
|
''' List of workers that will be started.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
@ -13,52 +21,73 @@ Namespace Workers
|
|||||||
GetType(HeartbeatWorker),
|
GetType(HeartbeatWorker),
|
||||||
GetType(WorkflowOverviewWorker)
|
GetType(WorkflowOverviewWorker)
|
||||||
}
|
}
|
||||||
Private Workers As New List(Of IWorker)
|
Private Workers As New List(Of WorkerState)
|
||||||
Private TimerList As New List(Of Timer)
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, SyncronizingObject As frmMain)
|
Public Sub New(LogConfig As LogConfig, SyncronizingObject As frmMain)
|
||||||
MyBase.New(LogConfig)
|
MyBase.New(LogConfig)
|
||||||
|
|
||||||
Workers = CreateWorkers()
|
Workers = CreateWorkers(SyncronizingObject)
|
||||||
|
|
||||||
For Each oWorker As IWorker In Workers
|
|
||||||
Dim oTimer = New Timer(oWorker.Interval) With {
|
|
||||||
.SynchronizingObject = SyncronizingObject,
|
|
||||||
.Enabled = True
|
|
||||||
}
|
|
||||||
|
|
||||||
AddHandler oTimer.Elapsed, Sub(sender As Object, e As ElapsedEventArgs)
|
|
||||||
Try
|
|
||||||
oWorker.Callback(Me, e)
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Warn("Worker {0} threw an error in callback.", oWorker.GetType.Name)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
TimerList.Add(oTimer)
|
|
||||||
Next
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function GetWorker(Of T)() As T
|
Public Function GetWorker(Of T)() As T
|
||||||
For Each oWorker In Workers
|
For Each oWorkerState As WorkerState In Workers
|
||||||
If TypeOf oWorker Is T Then
|
If TypeOf oWorkerState.Worker Is T Then
|
||||||
Return oWorker
|
Return oWorkerState.Worker
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Return Nothing
|
Return Nothing
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function CreateWorkers() As List(Of IWorker)
|
Public Sub StopWorkers()
|
||||||
Dim oWorkers As New List(Of IWorker)
|
Logger.Debug("Stopping all workers..")
|
||||||
|
For Each oWorkerState In Workers
|
||||||
|
oWorkerState.Timer.Stop()
|
||||||
|
|
||||||
|
Try
|
||||||
|
oWorkerState.Worker.Teardown()
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Warn("Worker {0} threw an error during teardown.", oWorkerState.Worker.Name)
|
||||||
|
End Try
|
||||||
|
Next
|
||||||
|
Logger.Debug("All workers stopped.")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function CreateTimer(Worker As IWorker, SyncronizingObject As frmMain)
|
||||||
|
Dim oTimer = New Timer(Worker.Interval) With {
|
||||||
|
.SynchronizingObject = SyncronizingObject,
|
||||||
|
.Enabled = True
|
||||||
|
}
|
||||||
|
|
||||||
|
AddHandler oTimer.Elapsed, Sub(sender As Object, e As ElapsedEventArgs)
|
||||||
|
Try
|
||||||
|
Worker.Callback(Me, e)
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Warn("Worker {0} threw an error in callback.", Worker.Name)
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Return oTimer
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function CreateWorkers(SyncronizingObject As frmMain) As List(Of WorkerState)
|
||||||
|
Dim oWorkers As New List(Of WorkerState)
|
||||||
|
|
||||||
For Each oWorkerType In WorkerTypes
|
For Each oWorkerType In WorkerTypes
|
||||||
|
Dim oWorker As IWorker = Activator.CreateInstance(oWorkerType, New Object() {LogConfig})
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Dim oWorker As IWorker = Activator.CreateInstance(oWorkerType, New Object() {LogConfig})
|
|
||||||
oWorker.Setup()
|
oWorker.Setup()
|
||||||
oWorkers.Add(oWorker)
|
|
||||||
|
Dim oWorkerState As New WorkerState() With {
|
||||||
|
.Worker = oWorker,
|
||||||
|
.Timer = CreateTimer(oWorker, SyncronizingObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
oWorkers.Add(oWorkerState)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Logger.Warn("Worker {0} threw an error while creating. Skipping.", oWorkerType.Name)
|
Logger.Warn("Worker {0} threw an error during setup. Skipping.", oWorker.Name)
|
||||||
Logger.Error(ex)
|
Logger.Error(ex)
|
||||||
Continue For
|
Continue For
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
@ -12,6 +12,7 @@ Namespace Workers
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public ReadOnly Property Interval As Integer = 60000 Implements IWorker.Interval
|
Public ReadOnly Property Interval As Integer = 60000 Implements IWorker.Interval
|
||||||
|
Public ReadOnly Property Name As String = "WorkflowOverview Worker" Implements IWorker.Name
|
||||||
|
|
||||||
Public Sub Setup() Implements IWorker.Setup
|
Public Sub Setup() Implements IWorker.Setup
|
||||||
Throw New NotImplementedException()
|
Throw New NotImplementedException()
|
||||||
|
|||||||
@ -22,7 +22,8 @@ Public Class frmConfigUser
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub btnAppFolder_Click(sender As Object, e As EventArgs) Handles btnAppFolder.Click
|
Private Sub btnAppFolder_Click(sender As Object, e As EventArgs) Handles btnAppFolder.Click
|
||||||
Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))
|
Dim oAppData = Application.LocalUserAppDataPath
|
||||||
|
Process.Start(oAppData)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub chkLogErrorsOnly_CheckedChanged(sender As Object, e As EventArgs) Handles chkLogErrorsOnly.CheckedChanged
|
Private Sub chkLogErrorsOnly_CheckedChanged(sender As Object, e As EventArgs) Handles chkLogErrorsOnly.CheckedChanged
|
||||||
|
|||||||
38
GUIs.ClientSuite/frmMain.Designer.vb
generated
38
GUIs.ClientSuite/frmMain.Designer.vb
generated
@ -21,11 +21,10 @@ Partial Class frmMain
|
|||||||
'Do not modify it using the code editor.
|
'Do not modify it using the code editor.
|
||||||
<System.Diagnostics.DebuggerStepThrough()>
|
<System.Diagnostics.DebuggerStepThrough()>
|
||||||
Private Sub InitializeComponent()
|
Private Sub InitializeComponent()
|
||||||
Me.components = New System.ComponentModel.Container()
|
|
||||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
|
||||||
Dim PushTransition1 As DevExpress.Utils.Animation.PushTransition = New DevExpress.Utils.Animation.PushTransition()
|
Dim PushTransition2 As DevExpress.Utils.Animation.PushTransition = New DevExpress.Utils.Animation.PushTransition()
|
||||||
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||||
Me.MainMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu(Me.components)
|
Me.MainMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu()
|
||||||
Me.BarButtonExit = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonExit = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarButtonUserSettings = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonUserSettings = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarButtonConnectionSettings = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonConnectionSettings = New DevExpress.XtraBars.BarButtonItem()
|
||||||
@ -51,13 +50,14 @@ Partial Class frmMain
|
|||||||
Me.RibbonPageGroup6 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroup6 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||||
Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components)
|
Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager()
|
||||||
Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(Me.components)
|
Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView()
|
||||||
Me.DockManager = New DevExpress.XtraBars.Docking.DockManager(Me.components)
|
Me.DockManager = New DevExpress.XtraBars.Docking.DockManager()
|
||||||
Me.MainNav = New DevExpress.XtraBars.Navigation.OfficeNavigationBar()
|
Me.MainNav = New DevExpress.XtraBars.Navigation.OfficeNavigationBar()
|
||||||
Me.NavbarItemHome = New DevExpress.XtraBars.Navigation.NavigationBarItem()
|
Me.NavbarItemHome = New DevExpress.XtraBars.Navigation.NavigationBarItem()
|
||||||
Me.NavbarItemSearch = New DevExpress.XtraBars.Navigation.NavigationBarItem()
|
Me.NavbarItemSearch = New DevExpress.XtraBars.Navigation.NavigationBarItem()
|
||||||
Me.NavbarItemWorkflow = New DevExpress.XtraBars.Navigation.NavigationBarItem()
|
Me.NavbarItemWorkflow = New DevExpress.XtraBars.Navigation.NavigationBarItem()
|
||||||
|
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.MainMenu, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.MainMenu, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.DocumentManager, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.DocumentManager, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@ -70,15 +70,15 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
Me.RibbonControl.ApplicationButtonDropDownControl = Me.MainMenu
|
Me.RibbonControl.ApplicationButtonDropDownControl = Me.MainMenu
|
||||||
Me.RibbonControl.ExpandCollapseItem.Id = 0
|
Me.RibbonControl.ExpandCollapseItem.Id = 0
|
||||||
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.SkinDropDownButtonItem1, Me.BarButtonDeleteControl, Me.BarButtonConnectionSettings, Me.LabelCurrentLanguage, Me.BarButtonItem2, Me.BarWorkspaceMenuItem1, Me.LabelServiceOnline, Me.BarButtonUserManager, Me.LabelServiceOffline, Me.BarButtonItem3, Me.BarButtonFormDesigner, Me.BarButtonItem4})
|
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.SkinDropDownButtonItem1, Me.BarButtonDeleteControl, Me.BarButtonConnectionSettings, Me.LabelCurrentLanguage, Me.BarButtonItem2, Me.BarWorkspaceMenuItem1, Me.LabelServiceOnline, Me.BarButtonUserManager, Me.LabelServiceOffline, Me.BarButtonItem3, Me.BarButtonFormDesigner, Me.BarButtonItem4, Me.BarButtonItem5})
|
||||||
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
|
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.RibbonControl.MaxItemId = 25
|
Me.RibbonControl.MaxItemId = 26
|
||||||
Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always
|
Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always
|
||||||
Me.RibbonControl.Name = "RibbonControl"
|
Me.RibbonControl.Name = "RibbonControl"
|
||||||
Me.RibbonControl.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1)
|
Me.RibbonControl.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1)
|
||||||
Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1)
|
Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1)
|
||||||
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageAdmin})
|
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageAdmin})
|
||||||
Me.RibbonControl.Size = New System.Drawing.Size(1139, 146)
|
Me.RibbonControl.Size = New System.Drawing.Size(1139, 143)
|
||||||
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
|
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
|
||||||
'
|
'
|
||||||
'MainMenu
|
'MainMenu
|
||||||
@ -181,7 +181,7 @@ Partial Class frmMain
|
|||||||
'WorkspaceManager1
|
'WorkspaceManager1
|
||||||
'
|
'
|
||||||
Me.WorkspaceManager1.TargetControl = Me
|
Me.WorkspaceManager1.TargetControl = Me
|
||||||
Me.WorkspaceManager1.TransitionType = PushTransition1
|
Me.WorkspaceManager1.TransitionType = PushTransition2
|
||||||
'
|
'
|
||||||
'LabelServiceOnline
|
'LabelServiceOnline
|
||||||
'
|
'
|
||||||
@ -223,7 +223,7 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
'BarButtonItem4
|
'BarButtonItem4
|
||||||
'
|
'
|
||||||
Me.BarButtonItem4.Caption = "Workflow Test"
|
Me.BarButtonItem4.Caption = "Workflow Step"
|
||||||
Me.BarButtonItem4.Id = 24
|
Me.BarButtonItem4.Id = 24
|
||||||
Me.BarButtonItem4.ImageOptions.Image = CType(resources.GetObject("BarButtonItem4.ImageOptions.Image"), System.Drawing.Image)
|
Me.BarButtonItem4.ImageOptions.Image = CType(resources.GetObject("BarButtonItem4.ImageOptions.Image"), System.Drawing.Image)
|
||||||
Me.BarButtonItem4.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.LargeImage"), System.Drawing.Image)
|
Me.BarButtonItem4.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.LargeImage"), System.Drawing.Image)
|
||||||
@ -241,6 +241,7 @@ Partial Class frmMain
|
|||||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem3)
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem3)
|
||||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem2)
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem2)
|
||||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem4)
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem4)
|
||||||
|
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem5)
|
||||||
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
|
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
|
||||||
Me.RibbonPageGroup3.Text = "DEBUG"
|
Me.RibbonPageGroup3.Text = "DEBUG"
|
||||||
'
|
'
|
||||||
@ -270,10 +271,10 @@ Partial Class frmMain
|
|||||||
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentLanguage)
|
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentLanguage)
|
||||||
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOnline)
|
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOnline)
|
||||||
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOffline)
|
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOffline)
|
||||||
Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 556)
|
Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 546)
|
||||||
Me.RibbonStatusBar.Name = "RibbonStatusBar"
|
Me.RibbonStatusBar.Name = "RibbonStatusBar"
|
||||||
Me.RibbonStatusBar.Ribbon = Me.RibbonControl
|
Me.RibbonStatusBar.Ribbon = Me.RibbonControl
|
||||||
Me.RibbonStatusBar.Size = New System.Drawing.Size(1139, 21)
|
Me.RibbonStatusBar.Size = New System.Drawing.Size(1139, 31)
|
||||||
'
|
'
|
||||||
'DocumentManager
|
'DocumentManager
|
||||||
'
|
'
|
||||||
@ -297,7 +298,7 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
Me.MainNav.Dock = System.Windows.Forms.DockStyle.Bottom
|
Me.MainNav.Dock = System.Windows.Forms.DockStyle.Bottom
|
||||||
Me.MainNav.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarItemHome, Me.NavbarItemSearch, Me.NavbarItemWorkflow})
|
Me.MainNav.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarItemHome, Me.NavbarItemSearch, Me.NavbarItemWorkflow})
|
||||||
Me.MainNav.Location = New System.Drawing.Point(0, 511)
|
Me.MainNav.Location = New System.Drawing.Point(0, 501)
|
||||||
Me.MainNav.Name = "MainNav"
|
Me.MainNav.Name = "MainNav"
|
||||||
Me.MainNav.Size = New System.Drawing.Size(1139, 45)
|
Me.MainNav.Size = New System.Drawing.Size(1139, 45)
|
||||||
Me.MainNav.TabIndex = 4
|
Me.MainNav.TabIndex = 4
|
||||||
@ -318,6 +319,14 @@ Partial Class frmMain
|
|||||||
Me.NavbarItemWorkflow.Name = "NavbarItemWorkflow"
|
Me.NavbarItemWorkflow.Name = "NavbarItemWorkflow"
|
||||||
Me.NavbarItemWorkflow.Text = "Workflow"
|
Me.NavbarItemWorkflow.Text = "Workflow"
|
||||||
'
|
'
|
||||||
|
'BarButtonItem5
|
||||||
|
'
|
||||||
|
Me.BarButtonItem5.Caption = "Workflow Overview"
|
||||||
|
Me.BarButtonItem5.Id = 25
|
||||||
|
Me.BarButtonItem5.ImageOptions.Image = CType(resources.GetObject("BarButtonItem5.ImageOptions.Image"), System.Drawing.Image)
|
||||||
|
Me.BarButtonItem5.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem5.ImageOptions.LargeImage"), System.Drawing.Image)
|
||||||
|
Me.BarButtonItem5.Name = "BarButtonItem5"
|
||||||
|
'
|
||||||
'frmMain
|
'frmMain
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@ -377,4 +386,5 @@ Partial Class frmMain
|
|||||||
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||||
Friend WithEvents BarButtonFormDesigner As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents BarButtonFormDesigner As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
|
||||||
|
Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -446,6 +446,26 @@
|
|||||||
Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90
|
Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90
|
||||||
+O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg
|
+O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg
|
||||||
gg==
|
gg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarButtonItem5.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAALHRFWHRUaXRsZQBEb2N1bWVu
|
||||||
|
dDtNYXA7U2NoZW1lO0RpYWdyYW07SGllcmFyO05ldE4PKkQAAAB1SURBVDhPzczBDYAwDEPRLsg6DMAS
|
||||||
|
jMC1x24X9CVAbWKgqBcOTwjXTjKzITKclmKK7yEEUGP4HkIANYbvIQRQY/geQgA1hu8hBFBj+B5CUMs5
|
||||||
|
20G+o/mpBm8eD/A9XQOXtQfmbbUahZ7s9sCX7CcHRsiwn6Ud+yzVdNjXwB0AAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BarButtonItem5.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAALHRFWHRUaXRsZQBEb2N1bWVu
|
||||||
|
dDtNYXA7U2NoZW1lO0RpYWdyYW07SGllcmFyO05ldE4PKkQAAADDSURBVFhH7dKxDcIwEAXQLMg6DMAS
|
||||||
|
jEDrku0OHGEJRU+HIwWncfFS/IT/r2CJiFMxHImhXG7P2IEdwlAwkmGHMBSMZNghDAUjGXYIQ8FIhh3C
|
||||||
|
UDCSYYcwFIxk2CEMBSMZdghDwUiGHcJQMJJhhzAUjGTYIQyllm6VUuKN79QhDEUjQw+QdoDe9WL4KT4a
|
||||||
|
txi2H3TY9Z22GLYfdPjvAXr37Yjv1sf1cY9f6j9b+VZvX/2umgfMA+YB84D1cSaGIzEcJ5YXdxoUYrVL
|
||||||
|
o4QAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="DocumentManager.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="DocumentManager.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
|||||||
@ -37,11 +37,11 @@ Public Class frmMain
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub HandleOnlineChanged(sender As Object, Online As Boolean)
|
Private Sub HandleOnlineChanged(sender As Object, Online As Boolean)
|
||||||
|
SetOnlineLabel(Online)
|
||||||
If Online = False Then
|
If Online = False Then
|
||||||
|
MessageBox.Show($"Application will be closed now.{vbNewLine}Reason: Service is offline.", "Critical Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||||
Application.Exit()
|
Application.Exit()
|
||||||
End If
|
End If
|
||||||
SetOnlineLabel(Online)
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
|
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
@ -222,4 +222,11 @@ Public Class frmMain
|
|||||||
}
|
}
|
||||||
oForm.Show()
|
oForm.Show()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem5.ItemClick
|
||||||
|
Dim oForm As New frmWorkflowOverview() With {
|
||||||
|
.MdiParent = DocumentManager.MdiParent
|
||||||
|
}
|
||||||
|
oForm.Show()
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
@ -3,5 +3,6 @@
|
|||||||
<package id="FirebirdSql.Data.FirebirdClient" version="6.4.0" targetFramework="net461" />
|
<package id="FirebirdSql.Data.FirebirdClient" version="6.4.0" targetFramework="net461" />
|
||||||
<package id="FirebirdSql.EntityFrameworkCore.Firebird" version="6.4.0" targetFramework="net461" />
|
<package id="FirebirdSql.EntityFrameworkCore.Firebird" version="6.4.0" targetFramework="net461" />
|
||||||
<package id="jacobslusser.ScintillaNET" version="3.6.3" targetFramework="net461" />
|
<package id="jacobslusser.ScintillaNET" version="3.6.3" targetFramework="net461" />
|
||||||
|
<package id="NLog" version="4.5.11" targetFramework="net461" />
|
||||||
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="net461" />
|
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
35
GUIs.Test.TestGUI/Form1.Designer.vb
generated
35
GUIs.Test.TestGUI/Form1.Designer.vb
generated
@ -43,6 +43,9 @@ Partial Class Form1
|
|||||||
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||||
Me.Label6 = New System.Windows.Forms.Label()
|
Me.Label6 = New System.Windows.Forms.Label()
|
||||||
Me.Button4 = New System.Windows.Forms.Button()
|
Me.Button4 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button6 = New System.Windows.Forms.Button()
|
||||||
|
Me.ListBox1 = New System.Windows.Forms.ListBox()
|
||||||
|
Me.Button7 = New System.Windows.Forms.Button()
|
||||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
@ -228,11 +231,40 @@ Partial Class Form1
|
|||||||
Me.Button4.Text = "Test Background Worker Logging"
|
Me.Button4.Text = "Test Background Worker Logging"
|
||||||
Me.Button4.UseVisualStyleBackColor = True
|
Me.Button4.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
|
'Button6
|
||||||
|
'
|
||||||
|
Me.Button6.Location = New System.Drawing.Point(683, 143)
|
||||||
|
Me.Button6.Name = "Button6"
|
||||||
|
Me.Button6.Size = New System.Drawing.Size(75, 23)
|
||||||
|
Me.Button6.TabIndex = 23
|
||||||
|
Me.Button6.Text = "Get Logs"
|
||||||
|
Me.Button6.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'ListBox1
|
||||||
|
'
|
||||||
|
Me.ListBox1.FormattingEnabled = True
|
||||||
|
Me.ListBox1.Location = New System.Drawing.Point(683, 172)
|
||||||
|
Me.ListBox1.Name = "ListBox1"
|
||||||
|
Me.ListBox1.Size = New System.Drawing.Size(355, 303)
|
||||||
|
Me.ListBox1.TabIndex = 24
|
||||||
|
'
|
||||||
|
'Button7
|
||||||
|
'
|
||||||
|
Me.Button7.Location = New System.Drawing.Point(764, 143)
|
||||||
|
Me.Button7.Name = "Button7"
|
||||||
|
Me.Button7.Size = New System.Drawing.Size(75, 23)
|
||||||
|
Me.Button7.TabIndex = 25
|
||||||
|
Me.Button7.Text = "Clear Logs"
|
||||||
|
Me.Button7.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'Form1
|
'Form1
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
Me.ClientSize = New System.Drawing.Size(1050, 487)
|
Me.ClientSize = New System.Drawing.Size(1050, 487)
|
||||||
|
Me.Controls.Add(Me.Button7)
|
||||||
|
Me.Controls.Add(Me.ListBox1)
|
||||||
|
Me.Controls.Add(Me.Button6)
|
||||||
Me.Controls.Add(Me.Button4)
|
Me.Controls.Add(Me.Button4)
|
||||||
Me.Controls.Add(Me.Label6)
|
Me.Controls.Add(Me.Label6)
|
||||||
Me.Controls.Add(Me.TextBox1)
|
Me.Controls.Add(Me.TextBox1)
|
||||||
@ -284,4 +316,7 @@ Partial Class Form1
|
|||||||
Friend WithEvents TextBox1 As TextBox
|
Friend WithEvents TextBox1 As TextBox
|
||||||
Friend WithEvents Label6 As Label
|
Friend WithEvents Label6 As Label
|
||||||
Friend WithEvents Button4 As Button
|
Friend WithEvents Button4 As Button
|
||||||
|
Friend WithEvents Button6 As Button
|
||||||
|
Friend WithEvents ListBox1 As ListBox
|
||||||
|
Friend WithEvents Button7 As Button
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -41,6 +41,7 @@ Public Class Form1
|
|||||||
|
|
||||||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
MyLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN")
|
MyLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN")
|
||||||
|
MyLogger.Debug = True
|
||||||
Logger = MyLogger.GetLogger()
|
Logger = MyLogger.GetLogger()
|
||||||
|
|
||||||
Dim MySecondLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN2")
|
Dim MySecondLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN2")
|
||||||
@ -169,4 +170,21 @@ Public Class Form1
|
|||||||
bw1.RunWorkerAsync()
|
bw1.RunWorkerAsync()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
|
||||||
|
Logger.Error(New ApplicationException("Some Error occurred!"))
|
||||||
|
|
||||||
|
ListBox1.Items.Clear()
|
||||||
|
For Each oLog In MyLogger.Logs
|
||||||
|
ListBox1.Items.Add(oLog)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
|
||||||
|
MyLogger.ClearLogs()
|
||||||
|
|
||||||
|
ListBox1.Items.Clear()
|
||||||
|
For Each oLog In MyLogger.Logs
|
||||||
|
ListBox1.Items.Add(oLog)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
121
GUIs.Test.ZUGFeRDTest/Form1.Designer.vb
generated
121
GUIs.Test.ZUGFeRDTest/Form1.Designer.vb
generated
@ -29,6 +29,17 @@ Partial Class Form1
|
|||||||
Me.Button3 = New System.Windows.Forms.Button()
|
Me.Button3 = New System.Windows.Forms.Button()
|
||||||
Me.Button4 = New System.Windows.Forms.Button()
|
Me.Button4 = New System.Windows.Forms.Button()
|
||||||
Me.txtMD5Checksum = New System.Windows.Forms.TextBox()
|
Me.txtMD5Checksum = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Button5 = New System.Windows.Forms.Button()
|
||||||
|
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.GroupBox3 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.txtPropName = New System.Windows.Forms.TextBox()
|
||||||
|
Me.GroupBox4 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.Button6 = New System.Windows.Forms.Button()
|
||||||
|
Me.GroupBox1.SuspendLayout()
|
||||||
|
Me.GroupBox2.SuspendLayout()
|
||||||
|
Me.GroupBox3.SuspendLayout()
|
||||||
|
Me.GroupBox4.SuspendLayout()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'OpenFileDialog1
|
'OpenFileDialog1
|
||||||
@ -37,7 +48,7 @@ Partial Class Form1
|
|||||||
'
|
'
|
||||||
'Button1
|
'Button1
|
||||||
'
|
'
|
||||||
Me.Button1.Location = New System.Drawing.Point(12, 12)
|
Me.Button1.Location = New System.Drawing.Point(6, 19)
|
||||||
Me.Button1.Name = "Button1"
|
Me.Button1.Name = "Button1"
|
||||||
Me.Button1.Size = New System.Drawing.Size(221, 23)
|
Me.Button1.Size = New System.Drawing.Size(221, 23)
|
||||||
Me.Button1.TabIndex = 0
|
Me.Button1.TabIndex = 0
|
||||||
@ -54,55 +65,128 @@ Partial Class Form1
|
|||||||
'
|
'
|
||||||
'Button2
|
'Button2
|
||||||
'
|
'
|
||||||
Me.Button2.Location = New System.Drawing.Point(12, 122)
|
Me.Button2.Location = New System.Drawing.Point(6, 19)
|
||||||
Me.Button2.Name = "Button2"
|
Me.Button2.Name = "Button2"
|
||||||
Me.Button2.Size = New System.Drawing.Size(221, 23)
|
Me.Button2.Size = New System.Drawing.Size(221, 23)
|
||||||
Me.Button2.TabIndex = 2
|
Me.Button2.TabIndex = 2
|
||||||
Me.Button2.Text = "Validate Single File"
|
Me.Button2.Text = "Validate PDF"
|
||||||
Me.Button2.UseVisualStyleBackColor = True
|
Me.Button2.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'Button3
|
'Button3
|
||||||
'
|
'
|
||||||
Me.Button3.Location = New System.Drawing.Point(12, 151)
|
Me.Button3.Location = New System.Drawing.Point(6, 48)
|
||||||
Me.Button3.Name = "Button3"
|
Me.Button3.Name = "Button3"
|
||||||
Me.Button3.Size = New System.Drawing.Size(221, 23)
|
Me.Button3.Size = New System.Drawing.Size(221, 23)
|
||||||
Me.Button3.TabIndex = 3
|
Me.Button3.TabIndex = 3
|
||||||
Me.Button3.Text = "Load Single File"
|
Me.Button3.Text = "Validate and Serialize PDF"
|
||||||
Me.Button3.UseVisualStyleBackColor = True
|
Me.Button3.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'Button4
|
'Button4
|
||||||
'
|
'
|
||||||
Me.Button4.Location = New System.Drawing.Point(12, 193)
|
Me.Button4.Location = New System.Drawing.Point(6, 19)
|
||||||
Me.Button4.Name = "Button4"
|
Me.Button4.Name = "Button4"
|
||||||
Me.Button4.Size = New System.Drawing.Size(221, 23)
|
Me.Button4.Size = New System.Drawing.Size(221, 23)
|
||||||
Me.Button4.TabIndex = 4
|
Me.Button4.TabIndex = 4
|
||||||
Me.Button4.Text = "MD5Chcksum"
|
Me.Button4.Text = "Create MD5 Checksum for PDF"
|
||||||
Me.Button4.UseVisualStyleBackColor = True
|
Me.Button4.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'txtMD5Checksum
|
'txtMD5Checksum
|
||||||
'
|
'
|
||||||
Me.txtMD5Checksum.DataBindings.Add(New System.Windows.Forms.Binding("Text", Global.ZUGFeRDTest.My.MySettings.Default, "MD5Cheksum", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
|
Me.txtMD5Checksum.DataBindings.Add(New System.Windows.Forms.Binding("Text", Global.ZUGFeRDTest.My.MySettings.Default, "MD5Cheksum", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
|
||||||
Me.txtMD5Checksum.Location = New System.Drawing.Point(12, 222)
|
Me.txtMD5Checksum.Location = New System.Drawing.Point(6, 49)
|
||||||
Me.txtMD5Checksum.Name = "txtMD5Checksum"
|
Me.txtMD5Checksum.Name = "txtMD5Checksum"
|
||||||
Me.txtMD5Checksum.Size = New System.Drawing.Size(360, 20)
|
Me.txtMD5Checksum.Size = New System.Drawing.Size(348, 20)
|
||||||
Me.txtMD5Checksum.TabIndex = 5
|
Me.txtMD5Checksum.TabIndex = 5
|
||||||
Me.txtMD5Checksum.Text = Global.ZUGFeRDTest.My.MySettings.Default.MD5Cheksum
|
Me.txtMD5Checksum.Text = Global.ZUGFeRDTest.My.MySettings.Default.MD5Cheksum
|
||||||
'
|
'
|
||||||
|
'Button5
|
||||||
|
'
|
||||||
|
Me.Button5.Location = New System.Drawing.Point(6, 48)
|
||||||
|
Me.Button5.Name = "Button5"
|
||||||
|
Me.Button5.Size = New System.Drawing.Size(221, 23)
|
||||||
|
Me.Button5.TabIndex = 6
|
||||||
|
Me.Button5.Text = "Open Input Folder"
|
||||||
|
Me.Button5.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'GroupBox1
|
||||||
|
'
|
||||||
|
Me.GroupBox1.Controls.Add(Me.Button1)
|
||||||
|
Me.GroupBox1.Controls.Add(Me.Button5)
|
||||||
|
Me.GroupBox1.Location = New System.Drawing.Point(12, 12)
|
||||||
|
Me.GroupBox1.Name = "GroupBox1"
|
||||||
|
Me.GroupBox1.Size = New System.Drawing.Size(360, 92)
|
||||||
|
Me.GroupBox1.TabIndex = 7
|
||||||
|
Me.GroupBox1.TabStop = False
|
||||||
|
Me.GroupBox1.Text = "Run Job like in ZUGFeRD Service"
|
||||||
|
'
|
||||||
|
'GroupBox2
|
||||||
|
'
|
||||||
|
Me.GroupBox2.Controls.Add(Me.Button2)
|
||||||
|
Me.GroupBox2.Controls.Add(Me.Button3)
|
||||||
|
Me.GroupBox2.Location = New System.Drawing.Point(12, 110)
|
||||||
|
Me.GroupBox2.Name = "GroupBox2"
|
||||||
|
Me.GroupBox2.Size = New System.Drawing.Size(360, 90)
|
||||||
|
Me.GroupBox2.TabIndex = 8
|
||||||
|
Me.GroupBox2.TabStop = False
|
||||||
|
Me.GroupBox2.Text = "Run Functions on a single file (needs Breakpoint)"
|
||||||
|
'
|
||||||
|
'GroupBox3
|
||||||
|
'
|
||||||
|
Me.GroupBox3.Controls.Add(Me.Button4)
|
||||||
|
Me.GroupBox3.Controls.Add(Me.txtMD5Checksum)
|
||||||
|
Me.GroupBox3.Location = New System.Drawing.Point(12, 206)
|
||||||
|
Me.GroupBox3.Name = "GroupBox3"
|
||||||
|
Me.GroupBox3.Size = New System.Drawing.Size(360, 85)
|
||||||
|
Me.GroupBox3.TabIndex = 9
|
||||||
|
Me.GroupBox3.TabStop = False
|
||||||
|
Me.GroupBox3.Text = "Open PDF and calculate Checksum"
|
||||||
|
'
|
||||||
|
'txtPropName
|
||||||
|
'
|
||||||
|
Me.txtPropName.Location = New System.Drawing.Point(6, 48)
|
||||||
|
Me.txtPropName.Name = "txtPropName"
|
||||||
|
Me.txtPropName.Size = New System.Drawing.Size(348, 20)
|
||||||
|
Me.txtPropName.TabIndex = 10
|
||||||
|
'
|
||||||
|
'GroupBox4
|
||||||
|
'
|
||||||
|
Me.GroupBox4.Controls.Add(Me.Button6)
|
||||||
|
Me.GroupBox4.Controls.Add(Me.txtPropName)
|
||||||
|
Me.GroupBox4.Location = New System.Drawing.Point(12, 297)
|
||||||
|
Me.GroupBox4.Name = "GroupBox4"
|
||||||
|
Me.GroupBox4.Size = New System.Drawing.Size(360, 122)
|
||||||
|
Me.GroupBox4.TabIndex = 11
|
||||||
|
Me.GroupBox4.TabStop = False
|
||||||
|
Me.GroupBox4.Text = "GroupBox4"
|
||||||
|
'
|
||||||
|
'Button6
|
||||||
|
'
|
||||||
|
Me.Button6.Location = New System.Drawing.Point(6, 19)
|
||||||
|
Me.Button6.Name = "Button6"
|
||||||
|
Me.Button6.Size = New System.Drawing.Size(221, 23)
|
||||||
|
Me.Button6.TabIndex = 11
|
||||||
|
Me.Button6.Text = "Find and Extract XML Path Value"
|
||||||
|
Me.Button6.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'Form1
|
'Form1
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
Me.ClientSize = New System.Drawing.Size(916, 435)
|
Me.ClientSize = New System.Drawing.Size(916, 435)
|
||||||
Me.Controls.Add(Me.txtMD5Checksum)
|
Me.Controls.Add(Me.GroupBox4)
|
||||||
Me.Controls.Add(Me.Button4)
|
Me.Controls.Add(Me.GroupBox3)
|
||||||
Me.Controls.Add(Me.Button3)
|
Me.Controls.Add(Me.GroupBox2)
|
||||||
Me.Controls.Add(Me.Button2)
|
Me.Controls.Add(Me.GroupBox1)
|
||||||
Me.Controls.Add(Me.ListBox1)
|
Me.Controls.Add(Me.ListBox1)
|
||||||
Me.Controls.Add(Me.Button1)
|
|
||||||
Me.Name = "Form1"
|
Me.Name = "Form1"
|
||||||
Me.Text = "Form1"
|
Me.Text = "Form1"
|
||||||
|
Me.GroupBox1.ResumeLayout(False)
|
||||||
|
Me.GroupBox2.ResumeLayout(False)
|
||||||
|
Me.GroupBox3.ResumeLayout(False)
|
||||||
|
Me.GroupBox3.PerformLayout()
|
||||||
|
Me.GroupBox4.ResumeLayout(False)
|
||||||
|
Me.GroupBox4.PerformLayout()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
Me.PerformLayout()
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -113,4 +197,11 @@ Partial Class Form1
|
|||||||
Friend WithEvents Button3 As Button
|
Friend WithEvents Button3 As Button
|
||||||
Friend WithEvents Button4 As Button
|
Friend WithEvents Button4 As Button
|
||||||
Friend WithEvents txtMD5Checksum As TextBox
|
Friend WithEvents txtMD5Checksum As TextBox
|
||||||
|
Friend WithEvents Button5 As Button
|
||||||
|
Friend WithEvents GroupBox1 As GroupBox
|
||||||
|
Friend WithEvents GroupBox2 As GroupBox
|
||||||
|
Friend WithEvents GroupBox3 As GroupBox
|
||||||
|
Friend WithEvents txtPropName As TextBox
|
||||||
|
Friend WithEvents GroupBox4 As GroupBox
|
||||||
|
Friend WithEvents Button6 As Button
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -109,7 +109,11 @@ Public Class Form1
|
|||||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||||
My.Settings.Save()
|
My.Settings.Save()
|
||||||
Dim result = checkMD5(txtMD5Checksum.Text)
|
Dim result = checkMD5(txtMD5Checksum.Text)
|
||||||
MsgBox("Done")
|
If IsNothing(result) Then
|
||||||
|
MsgBox("Could not calculate MD5 Checksum")
|
||||||
|
Else
|
||||||
|
txtMD5Checksum.Text = result
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Public Function checkMD5(ByVal filename As String) As String
|
Public Function checkMD5(ByVal filename As String) As String
|
||||||
Try
|
Try
|
||||||
@ -128,6 +132,29 @@ Public Class Form1
|
|||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Return Nothing
|
Return Nothing
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||||||
|
Process.Start("\\dd-sto01\DD-STO01-A2\SharedObjects\Public\Projekte\Test\Import\ZUGFerD\Email_in")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
|
||||||
|
Dim oResult = OpenFileDialog1.ShowDialog()
|
||||||
|
|
||||||
|
If oResult = DialogResult.OK Then
|
||||||
|
Dim oDoc = _zugferd.ValidateZUGFeRDFile(OpenFileDialog1.FileName)
|
||||||
|
Dim oZUGFERD As CrossIndustryDocumentType = _zugferd.SerializeZUGFeRDDocument(oDoc)
|
||||||
|
Dim oPropName As String = txtPropName.Text
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim oExtractor = New PropertyValues(_logConfig)
|
||||||
|
Dim oValue As List(Of Object) = oExtractor.GetPropValue(oZUGFERD, oPropName)
|
||||||
|
Dim oFinalValue As List(Of Object) = oExtractor.GetFinalPropValue(oValue)
|
||||||
|
Console.WriteLine()
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox(ex.Message)
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -8,6 +8,7 @@ Imports System.Text.RegularExpressions
|
|||||||
Imports System.Xml
|
Imports System.Xml
|
||||||
Imports DigitalData.Modules.Database
|
Imports DigitalData.Modules.Database
|
||||||
Imports DigitalData.Modules.Interfaces
|
Imports DigitalData.Modules.Interfaces
|
||||||
|
Imports DigitalData.Modules.Interfaces.Exceptions
|
||||||
Imports DigitalData.Modules.Jobs.Exceptions
|
Imports DigitalData.Modules.Jobs.Exceptions
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
Imports FirebirdSql.Data.FirebirdClient
|
Imports FirebirdSql.Data.FirebirdClient
|
||||||
@ -20,6 +21,7 @@ Public Class ImportZUGFeRDFiles
|
|||||||
Public Const ZUGFERD_SUCCESS = "ZUGFeRD Success"
|
Public Const ZUGFERD_SUCCESS = "ZUGFeRD Success"
|
||||||
Public Const ZUGFERD_EML = "ZUGFeRD Eml"
|
Public Const ZUGFERD_EML = "ZUGFeRD Eml"
|
||||||
Public Const ZUGFERD_REJECTED_EML = "ZUGFeRD Eml Rejected"
|
Public Const ZUGFERD_REJECTED_EML = "ZUGFeRD Eml Rejected"
|
||||||
|
Public Const ZUGFERD_ATTACHMENTS = "ZUGFeRD Attachments"
|
||||||
|
|
||||||
Private _logger As Logger
|
Private _logger As Logger
|
||||||
Private _logConfig As LogConfig
|
Private _logConfig As LogConfig
|
||||||
@ -226,7 +228,10 @@ Public Class ImportZUGFeRDFiles
|
|||||||
Dim oZUGFeRDCount As Integer = 0
|
Dim oZUGFeRDCount As Integer = 0
|
||||||
' Set the default Move Directory
|
' Set the default Move Directory
|
||||||
Dim oMoveDirectory As String = args.SuccessDirectory
|
Dim oMoveDirectory As String = args.SuccessDirectory
|
||||||
|
' Create file lists
|
||||||
Dim oFileGroupFiles As List(Of FileInfo) = oFileGroup.Value
|
Dim oFileGroupFiles As List(Of FileInfo) = oFileGroup.Value
|
||||||
|
Dim oFileAttachmentFiles As New List(Of FileInfo)
|
||||||
|
|
||||||
Dim oFileGroupId As String = oFileGroup.Key
|
Dim oFileGroupId As String = oFileGroup.Key
|
||||||
Dim oMissingProperties As New List(Of String)
|
Dim oMissingProperties As New List(Of String)
|
||||||
Dim oMD5CheckSum As String = String.Empty
|
Dim oMD5CheckSum As String = String.Empty
|
||||||
@ -238,6 +243,9 @@ Public Class ImportZUGFeRDFiles
|
|||||||
For Each oFile In oFileGroupFiles
|
For Each oFile In oFileGroupFiles
|
||||||
Dim oDocument As CrossIndustryDocumentType
|
Dim oDocument As CrossIndustryDocumentType
|
||||||
|
|
||||||
|
' Start a global group counter for each file
|
||||||
|
Dim oGlobalGroupCounter = 0
|
||||||
|
|
||||||
' Clear missing properties for the new file
|
' Clear missing properties for the new file
|
||||||
oMissingProperties = New List(Of String)
|
oMissingProperties = New List(Of String)
|
||||||
oCurrentFileCount += 1
|
oCurrentFileCount += 1
|
||||||
@ -245,6 +253,7 @@ Public Class ImportZUGFeRDFiles
|
|||||||
' Only pdf files are allowed from here on
|
' Only pdf files are allowed from here on
|
||||||
If Not oFile.Name.EndsWith(".pdf") Then
|
If Not oFile.Name.EndsWith(".pdf") Then
|
||||||
_logger.Debug("Skipping non-pdf file {0}", oFile.Name)
|
_logger.Debug("Skipping non-pdf file {0}", oFile.Name)
|
||||||
|
oFileAttachmentFiles.Add(oFile)
|
||||||
Continue For
|
Continue For
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -252,9 +261,23 @@ Public Class ImportZUGFeRDFiles
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
oDocument = _zugferd.ExtractZUGFeRDFile(oFile.FullName)
|
oDocument = _zugferd.ExtractZUGFeRDFile(oFile.FullName)
|
||||||
Catch ex As Exception
|
Catch ex As ZUGFeRDExecption
|
||||||
_logger.Warn("File is not a valid ZUGFeRD document! Skipping.")
|
Select Case ex.ErrorType
|
||||||
Continue For
|
Case ZUGFeRDInterface.ErrorType.NoZugferd
|
||||||
|
_logger.Warn("File is not a valid ZUGFeRD document! Skipping.")
|
||||||
|
oFileAttachmentFiles.Add(oFile)
|
||||||
|
Continue For
|
||||||
|
|
||||||
|
Case ZUGFeRDInterface.ErrorType.NoValidZugferd
|
||||||
|
_logger.Warn("File is an Incorrectly formatted ZUGFeRD document!")
|
||||||
|
Throw New InvalidFerdException()
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
_logger.Warn("Unexpected Error occurred while extracting ZUGFeRD Information from file {0}", oFile.FullName)
|
||||||
|
Throw ex
|
||||||
|
End Select
|
||||||
|
|
||||||
|
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
oMD5CheckSum = CreateMD5(oFile.FullName)
|
oMD5CheckSum = CreateMD5(oFile.FullName)
|
||||||
@ -298,7 +321,6 @@ Public Class ImportZUGFeRDFiles
|
|||||||
Function(Item) Item)
|
Function(Item) Item)
|
||||||
|
|
||||||
_logger.Debug("Found {0} properties grouped in {1} group(s)", args.PropertyMap.Count - oDefaultProperties.Count, oGroupedProperties.Count)
|
_logger.Debug("Found {0} properties grouped in {1} group(s)", args.PropertyMap.Count - oDefaultProperties.Count, oGroupedProperties.Count)
|
||||||
|
|
||||||
' Iterate through groups to get group scope and group items
|
' Iterate through groups to get group scope and group items
|
||||||
For Each oGroup In oGroupedProperties
|
For Each oGroup In oGroupedProperties
|
||||||
Dim oGroupScope As String = oGroup.Key
|
Dim oGroupScope As String = oGroup.Key
|
||||||
@ -309,8 +331,20 @@ Public Class ImportZUGFeRDFiles
|
|||||||
|
|
||||||
' get properties as a nested object, see `oPropertyList`
|
' get properties as a nested object, see `oPropertyList`
|
||||||
For Each oProperty As KeyValuePair(Of String, XmlItemProperty) In oGroup
|
For Each oProperty As KeyValuePair(Of String, XmlItemProperty) In oGroup
|
||||||
Dim oPropertyValues As List(Of Object) = oPropertyExtractor.GetPropValue(oDocument, oProperty.Key)
|
Dim oPropertyValues As List(Of Object)
|
||||||
|
|
||||||
|
Try
|
||||||
|
oPropertyValues = oPropertyExtractor.GetPropValue(oDocument, oProperty.Key)
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Warn("Unknown error occurred while fetching property {0} in group {1}:", oProperty.Value.Description, oGroupScope)
|
||||||
|
_logger.Error(ex)
|
||||||
|
oPropertyValues = New List(Of Object)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
' Flatten result value
|
||||||
|
oPropertyValues = oPropertyExtractor.GetFinalPropValue(oPropertyValues)
|
||||||
|
|
||||||
|
' Add to list
|
||||||
oPropertyList.Add(oProperty.Value, oPropertyValues)
|
oPropertyList.Add(oProperty.Value, oPropertyValues)
|
||||||
|
|
||||||
' check the first batch of values to determine the row count
|
' check the first batch of values to determine the row count
|
||||||
@ -319,46 +353,6 @@ Public Class ImportZUGFeRDFiles
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' check for rows that are empty in every column
|
|
||||||
' this happens when a grouped row is not filled
|
|
||||||
' e.g. a row in a invoice that is just a note
|
|
||||||
_logger.Debug("Done Fetching Property values.")
|
|
||||||
Dim oIndexesToRemove As New List(Of Integer)
|
|
||||||
|
|
||||||
For oRowIndex = 0 To oRowCount - 1
|
|
||||||
Dim oColumnIsEmpty = False
|
|
||||||
|
|
||||||
For Each oRow In oPropertyList
|
|
||||||
Dim oValue As List(Of Object) = oRow.Value
|
|
||||||
'Dim oValue As List(Of Object) = oRow.Value.Item(oRowIndex)
|
|
||||||
oColumnIsEmpty = oValue.Count = 0
|
|
||||||
Next
|
|
||||||
|
|
||||||
If oColumnIsEmpty Then
|
|
||||||
oIndexesToRemove.Add(oRowIndex)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
_logger.Debug("Removing {0} empty rows.", oIndexesToRemove)
|
|
||||||
|
|
||||||
|
|
||||||
' order indexes to remove descending to avoid indexOutOfRange errors
|
|
||||||
If oIndexesToRemove.Count > 0 Then
|
|
||||||
oIndexesToRemove = oIndexesToRemove.
|
|
||||||
OrderByDescending(Function(oIndex) oIndex).
|
|
||||||
ToList()
|
|
||||||
End If
|
|
||||||
|
|
||||||
' now remove all empty rows.
|
|
||||||
For Each oIndex In oIndexesToRemove
|
|
||||||
For Each oRow In oPropertyList
|
|
||||||
oRow.Value.RemoveAt(oIndex)
|
|
||||||
Next
|
|
||||||
Next
|
|
||||||
|
|
||||||
' decrease row count by rows removed
|
|
||||||
oRowCount -= oIndexesToRemove.Count
|
|
||||||
|
|
||||||
' Structure of oPropertyList
|
' Structure of oPropertyList
|
||||||
' [ # Propertyname # Row 1 # Row 2
|
' [ # Propertyname # Row 1 # Row 2
|
||||||
' PositionsMenge: [BilledQuantity1, BilledQuantity2, ...],
|
' PositionsMenge: [BilledQuantity1, BilledQuantity2, ...],
|
||||||
@ -371,21 +365,13 @@ Public Class ImportZUGFeRDFiles
|
|||||||
For Each oColumn As KeyValuePair(Of XmlItemProperty, List(Of Object)) In oPropertyList
|
For Each oColumn As KeyValuePair(Of XmlItemProperty, List(Of Object)) In oPropertyList
|
||||||
Dim oTableName As String = oColumn.Key.TableName
|
Dim oTableName As String = oColumn.Key.TableName
|
||||||
Dim oPropertyDescription As String = oColumn.Key.Description
|
Dim oPropertyDescription As String = oColumn.Key.Description
|
||||||
Dim oPropertyValue = oColumn.Value.Item(oRowIndex)
|
Dim oRowCounter = oRowIndex + oGlobalGroupCounter + 1
|
||||||
Dim oRowCounter = oRowIndex + 1
|
|
||||||
|
' Returns nothing if oColumn.Value contains an empty list
|
||||||
|
Dim oPropertyValue = oColumn.Value.ElementAtOrDefault(oRowIndex)
|
||||||
|
|
||||||
_logger.Debug("Processing property {0}.", oPropertyDescription)
|
_logger.Debug("Processing property {0}.", oPropertyDescription)
|
||||||
|
|
||||||
If TypeOf oPropertyValue Is List(Of Object) Then
|
|
||||||
Select Case oPropertyValue.Count
|
|
||||||
Case 0
|
|
||||||
oPropertyValue = String.Empty
|
|
||||||
Case Else
|
|
||||||
Dim oList As List(Of Object) = DirectCast(oPropertyValue, List(Of Object))
|
|
||||||
oPropertyValue = oList.Item(0)
|
|
||||||
End Select
|
|
||||||
End If
|
|
||||||
|
|
||||||
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
||||||
If oColumn.Key.IsRequired Then
|
If oColumn.Key.IsRequired Then
|
||||||
_logger.Warn("Property {0} is empty or not found but was required. Continuing with Empty String.", oPropertyDescription)
|
_logger.Warn("Property {0} is empty or not found but was required. Continuing with Empty String.", oPropertyDescription)
|
||||||
@ -414,30 +400,47 @@ Public Class ImportZUGFeRDFiles
|
|||||||
_firebird.ExecuteNonQueryWithConnection(oCommand, oConnection, Firebird.TransactionMode.ExternalTransaction, oTransaction)
|
_firebird.ExecuteNonQueryWithConnection(oCommand, oConnection, Firebird.TransactionMode.ExternalTransaction, oTransaction)
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
oGlobalGroupCounter += oRowCount
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' Iterate through default properties
|
' Iterate through default properties
|
||||||
For Each Item As KeyValuePair(Of String, XmlItemProperty) In oDefaultProperties
|
For Each Item As KeyValuePair(Of String, XmlItemProperty) In oDefaultProperties
|
||||||
Dim oPropertyValueList As List(Of Object) = oPropertyExtractor.GetPropValue(oDocument, Item.Key)
|
Dim oPropertyValueList As List(Of Object)
|
||||||
Dim oPropertyDescription As String = Item.Value.Description
|
Dim oPropertyDescription As String = Item.Value.Description
|
||||||
Dim oPropertyValue As Object = Nothing
|
Dim oPropertyValue As Object = Nothing
|
||||||
|
|
||||||
If IsNothing(oPropertyValueList) Then
|
Try
|
||||||
oPropertyValue = Nothing
|
oPropertyValueList = oPropertyExtractor.GetPropValue(oDocument, Item.Key)
|
||||||
ElseIf TypeOf oPropertyValueList Is List(Of Object) Then
|
Catch ex As Exception
|
||||||
Select Case oPropertyValueList.Count
|
_logger.Warn("Unknown error occurred while fetching property {0} in group {1}:", oPropertyDescription, Item.Value.GroupScope)
|
||||||
Case 0
|
_logger.Error(ex)
|
||||||
oPropertyValue = Nothing
|
oPropertyValueList = New List(Of Object)
|
||||||
Case Else
|
End Try
|
||||||
oPropertyValue = oPropertyValueList.First()
|
|
||||||
|
|
||||||
' This should hopefully show config errors
|
Try
|
||||||
If TypeOf oPropertyValue Is List(Of Object) Then
|
If IsNothing(oPropertyValueList) Then
|
||||||
_logger.Warn("Property with Description {0} may be configured incorrectly", oPropertyDescription)
|
oPropertyValue = Nothing
|
||||||
|
ElseIf TypeOf oPropertyValueList Is List(Of Object) Then
|
||||||
|
Select Case oPropertyValueList.Count
|
||||||
|
Case 0
|
||||||
oPropertyValue = Nothing
|
oPropertyValue = Nothing
|
||||||
End If
|
Case Else
|
||||||
End Select
|
Dim oList As List(Of Object) = DirectCast(oPropertyValueList, List(Of Object))
|
||||||
End If
|
oPropertyValue = oList.Item(0)
|
||||||
|
|
||||||
|
' This should hopefully show config errors
|
||||||
|
If TypeOf oPropertyValue Is List(Of Object) Then
|
||||||
|
_logger.Warn("Property with Description {0} may be configured incorrectly", oPropertyDescription)
|
||||||
|
oPropertyValue = Nothing
|
||||||
|
End If
|
||||||
|
End Select
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Warn("Unknown error occurred while processing property {0}:", oPropertyDescription)
|
||||||
|
_logger.Error(ex)
|
||||||
|
oPropertyValue = Nothing
|
||||||
|
End Try
|
||||||
|
|
||||||
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
||||||
If Item.Value.IsRequired Then
|
If Item.Value.IsRequired Then
|
||||||
@ -493,6 +496,20 @@ Public Class ImportZUGFeRDFiles
|
|||||||
Dim oBody = "<p>The invoice attached to your email has already been processed in our system.</p>"
|
Dim oBody = "<p>The invoice attached to your email has already been processed in our system.</p>"
|
||||||
Dim oEmailData = MoveAndRenameEmailToRejected(args, oFileGroupId)
|
Dim oEmailData = MoveAndRenameEmailToRejected(args, oFileGroupId)
|
||||||
AddToEmailQueue(oFileGroupId, oBody, oEmailData)
|
AddToEmailQueue(oFileGroupId, oBody, oEmailData)
|
||||||
|
|
||||||
|
Catch ex As InvalidFerdException
|
||||||
|
_logger.Error(ex)
|
||||||
|
|
||||||
|
oMoveDirectory = args.ErrorDirectory
|
||||||
|
|
||||||
|
Dim oBody = """
|
||||||
|
<p>Your email contained a ZUGFeRD document but it was incorrectly formatted.</p>
|
||||||
|
<p>Possible reasons include:<ul>
|
||||||
|
<li>Amount value has incorrect format (25,01 instead of 25.01)</li>
|
||||||
|
</ul></p>
|
||||||
|
"""
|
||||||
|
Dim oEmailData = MoveAndRenameEmailToRejected(args, oFileGroupId)
|
||||||
|
AddToEmailQueue(oFileGroupId, oBody, oEmailData)
|
||||||
Catch ex As TooMuchFerdsException
|
Catch ex As TooMuchFerdsException
|
||||||
_logger.Error(ex)
|
_logger.Error(ex)
|
||||||
|
|
||||||
@ -526,14 +543,16 @@ Public Class ImportZUGFeRDFiles
|
|||||||
oConnection.Close()
|
oConnection.Close()
|
||||||
|
|
||||||
' Move all files of the current group
|
' Move all files of the current group
|
||||||
For Each oFile In oFileGroupFiles
|
Try
|
||||||
_filesystem.MoveTo(oFile.FullName, oMoveDirectory)
|
MoveFiles(args, oFileGroupFiles, oFileAttachmentFiles, oMoveDirectory)
|
||||||
_logger.Info("Finished processing file {0}", oFile.Name)
|
_logger.Info("Finished processing file group {0}", oFileGroupId)
|
||||||
_logger.Info("File moved to {0}", oMoveDirectory)
|
Catch ex As Exception
|
||||||
Next
|
_logger.Warn("Could not move files!")
|
||||||
|
_logger.Error(ex)
|
||||||
_logger.Info("Finished processing file group {0}", oFileGroupId)
|
Throw ex
|
||||||
_logger.EndBlock()
|
Finally
|
||||||
|
_logger.EndBlock()
|
||||||
|
End Try
|
||||||
End Try
|
End Try
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
@ -546,6 +565,25 @@ Public Class ImportZUGFeRDFiles
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MoveFiles(Args As WorkerArgs, Files As List(Of FileInfo), AttachmentFiles As List(Of FileInfo), MoveDirectory As String)
|
||||||
|
For Each oFile In Files
|
||||||
|
Dim oFinalMoveDirectory As String = MoveDirectory
|
||||||
|
|
||||||
|
If AttachmentFiles.Contains(oFile) Then
|
||||||
|
oFinalMoveDirectory = Path.Combine(MoveDirectory, Args.AttachmentsSubDirectory)
|
||||||
|
|
||||||
|
If Not Directory.Exists(oFinalMoveDirectory) Then
|
||||||
|
Directory.CreateDirectory(oFinalMoveDirectory)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
_filesystem.MoveTo(oFile.FullName, oFinalMoveDirectory)
|
||||||
|
_logger.Info("Finished processing file {0}", oFile.Name)
|
||||||
|
_logger.Info("File moved to {0}", oFinalMoveDirectory)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Private Function CreateBodyForMissingProperties(OriginalFilename As String, MissingProperties As List(Of String))
|
Private Function CreateBodyForMissingProperties(OriginalFilename As String, MissingProperties As List(Of String))
|
||||||
Dim oBody = $"<p>The following file is not ZUGFeRD-compliant: {OriginalFilename}</p>"
|
Dim oBody = $"<p>The following file is not ZUGFeRD-compliant: {OriginalFilename}</p>"
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
Imports System.Collections.Generic
|
Imports System.Collections.Generic
|
||||||
|
Imports System.Linq
|
||||||
Imports System.Reflection
|
Imports System.Reflection
|
||||||
Imports System.Text.RegularExpressions
|
Imports System.Text.RegularExpressions
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
@ -59,7 +60,7 @@ Public Class PropertyValues
|
|||||||
|
|
||||||
If IsArray(Obj) And Not oHasIndex Then
|
If IsArray(Obj) And Not oHasIndex Then
|
||||||
Dim oCurrentPart As String = oPart
|
Dim oCurrentPart As String = oPart
|
||||||
Dim oSplitString As String() = New String() {"." & oCurrentPart & "."}
|
Dim oSplitString As String() = New String() {oCurrentPart & "."}
|
||||||
Dim oPathFragments = PropertyName.Split(oSplitString, StringSplitOptions.None)
|
Dim oPathFragments = PropertyName.Split(oSplitString, StringSplitOptions.None)
|
||||||
Dim oResults As New List(Of Object)
|
Dim oResults As New List(Of Object)
|
||||||
|
|
||||||
@ -71,10 +72,6 @@ Public Class PropertyValues
|
|||||||
For Each oArrayItem In Obj
|
For Each oArrayItem In Obj
|
||||||
Dim oResult As List(Of Object) = GetPropValue(oArrayItem, oPathFragments(1))
|
Dim oResult As List(Of Object) = GetPropValue(oArrayItem, oPathFragments(1))
|
||||||
|
|
||||||
'If Not IsNothing(oResult) AndAlso oResult.Count > 0 Then
|
|
||||||
' oResults.Add(oResult.Item(0))
|
|
||||||
'End If
|
|
||||||
|
|
||||||
If Not IsNothing(oResult) Then
|
If Not IsNothing(oResult) Then
|
||||||
oResults.Add(oResult)
|
oResults.Add(oResult)
|
||||||
End If
|
End If
|
||||||
@ -87,6 +84,38 @@ Public Class PropertyValues
|
|||||||
Return New List(Of Object) From {Obj}
|
Return New List(Of Object) From {Obj}
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function GetFinalPropValue(List As List(Of Object)) As List(Of Object)
|
||||||
|
Dim oResult As New List(Of Object)
|
||||||
|
|
||||||
|
For Each Item In List
|
||||||
|
Dim oItemValue = DoGetFinalPropValue(Item)
|
||||||
|
|
||||||
|
If Not IsNothing(oItemValue) Then
|
||||||
|
oResult.Add(oItemValue)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return oResult
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function DoGetFinalPropValue(Value As Object) As String
|
||||||
|
If TypeOf Value Is List(Of Object) Then
|
||||||
|
Dim oList = DirectCast(Value, List(Of Object))
|
||||||
|
Dim oCount = oList.Count
|
||||||
|
|
||||||
|
Select Case oCount
|
||||||
|
Case 0
|
||||||
|
Return Nothing
|
||||||
|
Case Else
|
||||||
|
Return DoGetFinalPropValue(oList.First())
|
||||||
|
End Select
|
||||||
|
|
||||||
|
Return DoGetFinalPropValue(Value)
|
||||||
|
Else
|
||||||
|
Return Value.ToString
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function GetIndex(Prop As String) As Integer
|
Private Function GetIndex(Prop As String) As Integer
|
||||||
If Regex.IsMatch(Prop, _indexPattern) Then
|
If Regex.IsMatch(Prop, _indexPattern) Then
|
||||||
Dim oMatch = _indexRegex.Match(Prop)
|
Dim oMatch = _indexRegex.Match(Prop)
|
||||||
|
|||||||
@ -6,6 +6,7 @@ Public Class WorkerArgs
|
|||||||
Public ErrorDirectory As String
|
Public ErrorDirectory As String
|
||||||
Public OriginalEmailDirectory As String
|
Public OriginalEmailDirectory As String
|
||||||
Public RejectedEmailDirectory As String
|
Public RejectedEmailDirectory As String
|
||||||
|
Public AttachmentsSubDirectory As String
|
||||||
Public PropertyMap As Dictionary(Of String, XmlItemProperty)
|
Public PropertyMap As Dictionary(Of String, XmlItemProperty)
|
||||||
Public InsertIntoSQLServer As Boolean
|
Public InsertIntoSQLServer As Boolean
|
||||||
|
|
||||||
@ -15,6 +16,7 @@ Public Class WorkerArgs
|
|||||||
ErrorDirectory = Nothing
|
ErrorDirectory = Nothing
|
||||||
OriginalEmailDirectory = Nothing
|
OriginalEmailDirectory = Nothing
|
||||||
RejectedEmailDirectory = Nothing
|
RejectedEmailDirectory = Nothing
|
||||||
|
AttachmentsSubDirectory = Nothing
|
||||||
PropertyMap = New Dictionary(Of String, XmlItemProperty)
|
PropertyMap = New Dictionary(Of String, XmlItemProperty)
|
||||||
InsertIntoSQLServer = False
|
InsertIntoSQLServer = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@ -21,6 +21,14 @@ Public Class Exceptions
|
|||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
Public Class InvalidFerdException
|
||||||
|
Inherits ApplicationException
|
||||||
|
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New("ZUGFeRD document found but was not formatted correctly")
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
Public Class NoFerdsException
|
Public Class NoFerdsException
|
||||||
Inherits ApplicationException
|
Inherits ApplicationException
|
||||||
|
|
||||||
|
|||||||
6
LoggerDiag/App.config
Normal file
6
LoggerDiag/App.config
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
||||||
|
</startup>
|
||||||
|
</configuration>
|
||||||
3
LoggerDiag/DummyConfig.vb
Normal file
3
LoggerDiag/DummyConfig.vb
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Public Class DummyConfig
|
||||||
|
Public SomeSetting As String = "Default_Value"
|
||||||
|
End Class
|
||||||
@ -4,30 +4,34 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{836C9ADE-E04E-4E1E-B17A-201E68014790}</ProjectGuid>
|
<ProjectGuid>{3D437957-B90B-4D8F-9219-6D19B0C90994}</ProjectGuid>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<RootNamespace>DigitalData.Modules.Variables</RootNamespace>
|
<StartupObject>MonoDiag.My.MyApplication</StartupObject>
|
||||||
<AssemblyName>DigitalData.Modules.Variables</AssemblyName>
|
<RootNamespace>MonoDiag</RootNamespace>
|
||||||
|
<AssemblyName>MonoDiag</AssemblyName>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<MyType>Windows</MyType>
|
<MyType>WindowsForms</MyType>
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<DefineDebug>true</DefineDebug>
|
<DefineDebug>true</DefineDebug>
|
||||||
<DefineTrace>true</DefineTrace>
|
<DefineTrace>true</DefineTrace>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DocumentationFile>DigitalData.Modules.Variables.xml</DocumentationFile>
|
<DocumentationFile>MonoDiag.xml</DocumentationFile>
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<DefineDebug>false</DefineDebug>
|
<DefineDebug>false</DefineDebug>
|
||||||
<DefineTrace>true</DefineTrace>
|
<DefineTrace>true</DefineTrace>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DocumentationFile>DigitalData.Modules.Variables.xml</DocumentationFile>
|
<DocumentationFile>MonoDiag.xml</DocumentationFile>
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
@ -43,8 +47,27 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="DevExpress.Data.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.Printing.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="DevExpress.XtraPrinting.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\NLog.4.5.11\lib\net45\NLog.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.IO.Compression" />
|
||||||
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
|
<Reference Include="System.ServiceModel" />
|
||||||
|
<Reference Include="System.Transactions" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
@ -57,14 +80,22 @@
|
|||||||
<Import Include="System.Collections" />
|
<Import Include="System.Collections" />
|
||||||
<Import Include="System.Collections.Generic" />
|
<Import Include="System.Collections.Generic" />
|
||||||
<Import Include="System.Data" />
|
<Import Include="System.Data" />
|
||||||
|
<Import Include="System.Drawing" />
|
||||||
<Import Include="System.Diagnostics" />
|
<Import Include="System.Diagnostics" />
|
||||||
|
<Import Include="System.Windows.Forms" />
|
||||||
<Import Include="System.Linq" />
|
<Import Include="System.Linq" />
|
||||||
<Import Include="System.Xml.Linq" />
|
<Import Include="System.Xml.Linq" />
|
||||||
<Import Include="System.Threading.Tasks" />
|
<Import Include="System.Threading.Tasks" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="CurrentApplication.vb" />
|
<Compile Include="DummyConfig.vb" />
|
||||||
<Compile Include="CurrentUser.vb" />
|
<Compile Include="frmMain.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmMain.Designer.vb">
|
||||||
|
<DependentUpon>frmMain.vb</DependentUpon>
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
<Compile Include="My Project\Application.Designer.vb">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
@ -82,6 +113,10 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="frmMain.resx">
|
||||||
|
<DependentUpon>frmMain.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="My Project\licenses.licx" />
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
<EmbeddedResource Include="My Project\Resources.resx">
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||||
@ -99,6 +134,18 @@
|
|||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
<CustomToolNamespace>My</CustomToolNamespace>
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="App.config" />
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Modules.Config\Config.vbproj">
|
||||||
|
<Project>{44982f9b-6116-44e2-85d0-f39650b1ef99}</Project>
|
||||||
|
<Name>Config</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
|
||||||
|
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
||||||
|
<Name>Logging</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
38
LoggerDiag/My Project/Application.Designer.vb
generated
Normal file
38
LoggerDiag/My Project/Application.Designer.vb
generated
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <auto-generated>
|
||||||
|
' Dieser Code wurde von einem Tool generiert.
|
||||||
|
' Laufzeitversion:4.0.30319.42000
|
||||||
|
'
|
||||||
|
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||||
|
' der Code erneut generiert wird.
|
||||||
|
' </auto-generated>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
'HINWEIS: Diese Datei wird automatisch generiert und darf nicht direkt bearbeitet werden. Wenn Sie Änderungen vornehmen möchten
|
||||||
|
' oder in dieser Datei Buildfehler auftreten, wechseln Sie zum Projekt-Designer.
|
||||||
|
' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im
|
||||||
|
' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor.
|
||||||
|
'
|
||||||
|
Partial Friend Class MyApplication
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||||
|
Me.IsSingleInstance = false
|
||||||
|
Me.EnableVisualStyles = true
|
||||||
|
Me.SaveMySettingsOnExit = true
|
||||||
|
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
|
Protected Overrides Sub OnCreateMainForm()
|
||||||
|
Me.MainForm = Global.MonoDiag.frmMain
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
<MySubMain>false</MySubMain>
|
<MySubMain>true</MySubMain>
|
||||||
|
<MainForm>frmMain</MainForm>
|
||||||
<SingleInstance>false</SingleInstance>
|
<SingleInstance>false</SingleInstance>
|
||||||
<ShutdownMode>0</ShutdownMode>
|
<ShutdownMode>0</ShutdownMode>
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
<EnableVisualStyles>true</EnableVisualStyles>
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
<AuthenticationMode>0</AuthenticationMode>
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||||
</MyApplicationData>
|
</MyApplicationData>
|
||||||
@ -8,17 +8,17 @@ Imports System.Runtime.InteropServices
|
|||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
' Werte der Assemblyattribute überprüfen
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("Modules.Variables")>
|
<Assembly: AssemblyTitle("LoggerDiag")>
|
||||||
<Assembly: AssemblyDescription("")>
|
<Assembly: AssemblyDescription("")>
|
||||||
<Assembly: AssemblyCompany("")>
|
<Assembly: AssemblyCompany("")>
|
||||||
<Assembly: AssemblyProduct("Modules.Variables")>
|
<Assembly: AssemblyProduct("LoggerDiag")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2018")>
|
<Assembly: AssemblyCopyright("Copyright © 2019")>
|
||||||
<Assembly: AssemblyTrademark("")>
|
<Assembly: AssemblyTrademark("")>
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
|
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
|
||||||
<Assembly: Guid("eb0a4cd7-0b0e-49dc-89a6-6b25b9fff433")>
|
<Assembly: Guid("23ecfd3e-64fb-4eea-9cbe-220cf29dac1b")>
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||||
'
|
'
|
||||||
@ -39,7 +39,7 @@ Namespace My.Resources
|
|||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||||
Get
|
Get
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Variables.Resources", GetType(Resources).Assembly)
|
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("MonoDiag.Resources", GetType(Resources).Assembly)
|
||||||
resourceMan = temp
|
resourceMan = temp
|
||||||
End If
|
End If
|
||||||
Return resourceMan
|
Return resourceMan
|
||||||
@ -64,9 +64,9 @@ Namespace My
|
|||||||
Friend Module MySettingsProperty
|
Friend Module MySettingsProperty
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||||
Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Variables.My.MySettings
|
Friend ReadOnly Property Settings() As Global.MonoDiag.My.MySettings
|
||||||
Get
|
Get
|
||||||
Return Global.DigitalData.Modules.Variables.My.MySettings.Default
|
Return Global.MonoDiag.My.MySettings.Default
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
End Module
|
End Module
|
||||||
1
LoggerDiag/My Project/licenses.licx
Normal file
1
LoggerDiag/My Project/licenses.licx
Normal file
@ -0,0 +1 @@
|
|||||||
|
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||||
122
LoggerDiag/frmMain.Designer.vb
generated
Normal file
122
LoggerDiag/frmMain.Designer.vb
generated
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class frmMain
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.GridControlLogs = New DevExpress.XtraGrid.GridControl()
|
||||||
|
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
|
Me.btnRefresh = New System.Windows.Forms.Button()
|
||||||
|
Me.Button1 = New System.Windows.Forms.Button()
|
||||||
|
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label1 = New System.Windows.Forms.Label()
|
||||||
|
Me.Button2 = New System.Windows.Forms.Button()
|
||||||
|
CType(Me.GridControlLogs, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'GridControlLogs
|
||||||
|
'
|
||||||
|
Me.GridControlLogs.Dock = System.Windows.Forms.DockStyle.Right
|
||||||
|
Me.GridControlLogs.Location = New System.Drawing.Point(251, 0)
|
||||||
|
Me.GridControlLogs.MainView = Me.GridView1
|
||||||
|
Me.GridControlLogs.Name = "GridControlLogs"
|
||||||
|
Me.GridControlLogs.Size = New System.Drawing.Size(888, 679)
|
||||||
|
Me.GridControlLogs.TabIndex = 0
|
||||||
|
Me.GridControlLogs.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
|
||||||
|
'
|
||||||
|
'GridView1
|
||||||
|
'
|
||||||
|
Me.GridView1.GridControl = Me.GridControlLogs
|
||||||
|
Me.GridView1.Name = "GridView1"
|
||||||
|
'
|
||||||
|
'btnRefresh
|
||||||
|
'
|
||||||
|
Me.btnRefresh.Location = New System.Drawing.Point(12, 12)
|
||||||
|
Me.btnRefresh.Name = "btnRefresh"
|
||||||
|
Me.btnRefresh.Size = New System.Drawing.Size(233, 35)
|
||||||
|
Me.btnRefresh.TabIndex = 1
|
||||||
|
Me.btnRefresh.Text = "Refresh Logs"
|
||||||
|
Me.btnRefresh.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button1
|
||||||
|
'
|
||||||
|
Me.Button1.Location = New System.Drawing.Point(12, 53)
|
||||||
|
Me.Button1.Name = "Button1"
|
||||||
|
Me.Button1.Size = New System.Drawing.Size(233, 32)
|
||||||
|
Me.Button1.TabIndex = 2
|
||||||
|
Me.Button1.Text = "Read Config"
|
||||||
|
Me.Button1.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'TextBox1
|
||||||
|
'
|
||||||
|
Me.TextBox1.Location = New System.Drawing.Point(12, 143)
|
||||||
|
Me.TextBox1.Name = "TextBox1"
|
||||||
|
Me.TextBox1.Size = New System.Drawing.Size(233, 20)
|
||||||
|
Me.TextBox1.TabIndex = 3
|
||||||
|
'
|
||||||
|
'Label1
|
||||||
|
'
|
||||||
|
Me.Label1.AutoSize = True
|
||||||
|
Me.Label1.Location = New System.Drawing.Point(9, 127)
|
||||||
|
Me.Label1.Name = "Label1"
|
||||||
|
Me.Label1.Size = New System.Drawing.Size(109, 13)
|
||||||
|
Me.Label1.TabIndex = 4
|
||||||
|
Me.Label1.Text = "Value of Test-Setting:"
|
||||||
|
'
|
||||||
|
'Button2
|
||||||
|
'
|
||||||
|
Me.Button2.Location = New System.Drawing.Point(12, 91)
|
||||||
|
Me.Button2.Name = "Button2"
|
||||||
|
Me.Button2.Size = New System.Drawing.Size(233, 33)
|
||||||
|
Me.Button2.TabIndex = 5
|
||||||
|
Me.Button2.Text = "Save Config"
|
||||||
|
Me.Button2.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'frmMain
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(1139, 679)
|
||||||
|
Me.Controls.Add(Me.Button2)
|
||||||
|
Me.Controls.Add(Me.Label1)
|
||||||
|
Me.Controls.Add(Me.TextBox1)
|
||||||
|
Me.Controls.Add(Me.Button1)
|
||||||
|
Me.Controls.Add(Me.btnRefresh)
|
||||||
|
Me.Controls.Add(Me.GridControlLogs)
|
||||||
|
Me.MinimumSize = New System.Drawing.Size(1155, 718)
|
||||||
|
Me.Name = "frmMain"
|
||||||
|
Me.Text = "Digital Data Diagnose"
|
||||||
|
CType(Me.GridControlLogs, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
Me.PerformLayout()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents GridControlLogs As DevExpress.XtraGrid.GridControl
|
||||||
|
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
|
Friend WithEvents btnRefresh As Button
|
||||||
|
Friend WithEvents Button1 As Button
|
||||||
|
Friend WithEvents TextBox1 As TextBox
|
||||||
|
Friend WithEvents Label1 As Label
|
||||||
|
Friend WithEvents Button2 As Button
|
||||||
|
End Class
|
||||||
120
LoggerDiag/frmMain.resx
Normal file
120
LoggerDiag/frmMain.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
62
LoggerDiag/frmMain.vb
Normal file
62
LoggerDiag/frmMain.vb
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
Imports System.IO
|
||||||
|
Imports DigitalData.Modules.Config
|
||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
|
Public Class frmMain
|
||||||
|
Public LogConfig As LogConfig
|
||||||
|
Public Logger As Logger
|
||||||
|
Public Config As ConfigManager(Of DummyConfig)
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
|
LogConfig = New LogConfig(LogConfig.PathType.AppData) With {
|
||||||
|
.Debug = True
|
||||||
|
}
|
||||||
|
|
||||||
|
Dim productName As String = My.Application.Info.ProductName
|
||||||
|
Dim companyName As String = My.Application.Info.CompanyName
|
||||||
|
|
||||||
|
Dim appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
|
||||||
|
Dim basePath = Path.Combine(appDataDir, companyName, productName, "Log")
|
||||||
|
|
||||||
|
Logger = LogConfig.GetLogger()
|
||||||
|
Logger.Info("Initializing Config")
|
||||||
|
Logger.Info("Logging Path: {0}", basePath)
|
||||||
|
Logger.Info("UserConfig.xml Path: {0}", Application.UserAppDataPath)
|
||||||
|
Logger.Info("ComputerConfig.xml Path: {0}", Application.CommonAppDataPath)
|
||||||
|
|
||||||
|
Config = New ConfigManager(Of DummyConfig)(LogConfig, Application.UserAppDataPath, Application.CommonAppDataPath)
|
||||||
|
|
||||||
|
RefreshLogs()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub RefreshLogs()
|
||||||
|
GridControlLogs.DataSource = LogConfig.Logs
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click
|
||||||
|
RefreshLogs()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
|
||||||
|
Try
|
||||||
|
Logger.Info("Value of TestSetting is: {0}", Config.Config.SomeSetting)
|
||||||
|
TextBox1.Text = Config.Config.SomeSetting
|
||||||
|
RefreshLogs()
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
RefreshLogs()
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||||
|
Try
|
||||||
|
Config.Config.SomeSetting = TextBox1.Text
|
||||||
|
Config.Save()
|
||||||
|
RefreshLogs()
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
RefreshLogs()
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
4
LoggerDiag/packages.config
Normal file
4
LoggerDiag/packages.config
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="NLog" version="4.5.11" targetFramework="net461" />
|
||||||
|
</packages>
|
||||||
@ -33,6 +33,18 @@ Public Class ConfigManager(Of T)
|
|||||||
''' <returns></returns>
|
''' <returns></returns>
|
||||||
Public ReadOnly Property Config As T
|
Public ReadOnly Property Config As T
|
||||||
|
|
||||||
|
Public ReadOnly Property UserConfigPath As String
|
||||||
|
Get
|
||||||
|
Return _UserPath
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property ComputerConfigPath As String
|
||||||
|
Get
|
||||||
|
Return _ComputerPath
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Creates a new instance of the ConfigManager
|
''' Creates a new instance of the ConfigManager
|
||||||
''' </summary>
|
''' </summary>
|
||||||
@ -112,7 +124,9 @@ Public Class ConfigManager(Of T)
|
|||||||
Dim oType As Type = GetType(T)
|
Dim oType As Type = GetType(T)
|
||||||
Dim oExcludedAttributeTypes = IIf(IsNothing(ExcludedAttributeTypes), New List(Of Type), ExcludedAttributeTypes)
|
Dim oExcludedAttributeTypes = IIf(IsNothing(ExcludedAttributeTypes), New List(Of Type), ExcludedAttributeTypes)
|
||||||
Dim oProperties = oType.GetProperties().
|
Dim oProperties = oType.GetProperties().
|
||||||
Where(Function(p) p.CanRead And p.CanWrite).
|
Where(Function(p)
|
||||||
|
Return p.CanRead And p.CanWrite
|
||||||
|
End Function).
|
||||||
Where(Function(p)
|
Where(Function(p)
|
||||||
For Each oAttributeType As Type In oExcludedAttributeTypes
|
For Each oAttributeType As Type In oExcludedAttributeTypes
|
||||||
If Attribute.IsDefined(p, oAttributeType) Then
|
If Attribute.IsDefined(p, oAttributeType) Then
|
||||||
@ -164,6 +178,7 @@ Public Class ConfigManager(Of T)
|
|||||||
_Logger.Warn("Computer config could not be loaded!")
|
_Logger.Warn("Computer config could not be loaded!")
|
||||||
End Try
|
End Try
|
||||||
Else
|
Else
|
||||||
|
_Logger.Debug("Computer config does not exist.")
|
||||||
_ForceUserConfig = True
|
_ForceUserConfig = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -190,6 +205,8 @@ Public Class ConfigManager(Of T)
|
|||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
_Logger.Warn("User config could not be loaded!")
|
_Logger.Warn("User config could not be loaded!")
|
||||||
End Try
|
End Try
|
||||||
|
Else
|
||||||
|
_Logger.Debug("User config does not exist.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return Config
|
Return Config
|
||||||
@ -246,6 +263,7 @@ Public Class ConfigManager(Of T)
|
|||||||
oFileStream.Flush()
|
oFileStream.Flush()
|
||||||
End Using
|
End Using
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
_Logger.Warn("Could not save config to {0}", Path)
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
Throw ex
|
Throw ex
|
||||||
End Try
|
End Try
|
||||||
@ -273,6 +291,7 @@ Public Class ConfigManager(Of T)
|
|||||||
|
|
||||||
Return oConfig
|
Return oConfig
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
_Logger.Warn("Could not load config from {0}", Path)
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
Throw ex
|
Throw ex
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
@ -14,7 +14,8 @@ Public Class ZUGFeRDInterface
|
|||||||
|
|
||||||
Public Enum ErrorType
|
Public Enum ErrorType
|
||||||
NoValidFile
|
NoValidFile
|
||||||
ExtractionFailed
|
NoZugferd
|
||||||
|
NoValidZugferd
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
Public Sub New(LogConfig As LogConfig)
|
||||||
@ -33,7 +34,7 @@ Public Class ZUGFeRDInterface
|
|||||||
Dim oXmlDocument = ValidateZUGFeRDFile(Path)
|
Dim oXmlDocument = ValidateZUGFeRDFile(Path)
|
||||||
|
|
||||||
If IsNothing(oXmlDocument) Then
|
If IsNothing(oXmlDocument) Then
|
||||||
Throw New ZUGFeRDExecption(ErrorType.ExtractionFailed, "Datei ist kein gültiges ZUGFeRD Format.")
|
Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return SerializeZUGFeRDDocument(oXmlDocument)
|
Return SerializeZUGFeRDDocument(oXmlDocument)
|
||||||
@ -70,7 +71,7 @@ Public Class ZUGFeRDInterface
|
|||||||
|
|
||||||
If Not oProcessOutput.ToLower.Contains(ZUGFERD_CONVERTER_SUCCESS_MESSAGE.ToLower) Then
|
If Not oProcessOutput.ToLower.Contains(ZUGFERD_CONVERTER_SUCCESS_MESSAGE.ToLower) Then
|
||||||
_logger.Warn("File {0} is not a valid ZUGFeRD File!", Path)
|
_logger.Warn("File {0} is not a valid ZUGFeRD File!", Path)
|
||||||
Throw New ZUGFeRDExecption(ErrorType.NoValidFile, "Datei ist kein gültiges ZUGFeRD Format.")
|
Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Try
|
Try
|
||||||
@ -93,7 +94,7 @@ Public Class ZUGFeRDInterface
|
|||||||
Return oSerializer.Deserialize(oReader)
|
Return oSerializer.Deserialize(oReader)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_logger.Error(ex)
|
_logger.Error(ex)
|
||||||
Throw ex
|
Throw New ZUGFeRDExecption(ErrorType.NoValidZugferd, "Datei ist eine ungültige ZUGFeRD Datei.")
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Imports NLog.Config
|
|||||||
Imports NLog.Targets
|
Imports NLog.Targets
|
||||||
|
|
||||||
''' <module>LogConfig</module>
|
''' <module>LogConfig</module>
|
||||||
''' <version>0.0.0.7</version>
|
''' <version>0.0.1.0</version>
|
||||||
''' <date>02.10.2018</date>
|
''' <date>02.10.2018</date>
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Module that writes file-logs to different locations:
|
''' Module that writes file-logs to different locations:
|
||||||
@ -100,6 +100,7 @@ Public Class LogConfig
|
|||||||
Private Const TARGET_ERROR As String = "errorTarget"
|
Private Const TARGET_ERROR As String = "errorTarget"
|
||||||
Private Const TARGET_DETAIL As String = "detailTarget"
|
Private Const TARGET_DETAIL As String = "detailTarget"
|
||||||
Private Const TARGET_DEBUG As String = "debugTarget"
|
Private Const TARGET_DEBUG As String = "debugTarget"
|
||||||
|
Private Const TARGET_MEMORY As String = "memoryTarget"
|
||||||
|
|
||||||
Private Const DATE_FORMAT_LONG As String = "${longdate}"
|
Private Const DATE_FORMAT_LONG As String = "${longdate}"
|
||||||
Private Const DATE_FORMAT_DEFAULT As String = "${date:format=yyyy-MM-dd HH\:mm\:ss}"
|
Private Const DATE_FORMAT_DEFAULT As String = "${date:format=yyyy-MM-dd HH\:mm\:ss}"
|
||||||
@ -110,6 +111,7 @@ Public Class LogConfig
|
|||||||
Private Const LOG_FORMAT_DEFAULT As String = LOG_FORMAT_BASE & " >> ${message}"
|
Private Const LOG_FORMAT_DEFAULT As String = LOG_FORMAT_BASE & " >> ${message}"
|
||||||
Private Const LOG_FORMAT_EXCEPTION As String = LOG_FORMAT_BASE & " >> ${exception:format=Message}${newline}${exception:format=StackTrace}"
|
Private Const LOG_FORMAT_EXCEPTION As String = LOG_FORMAT_BASE & " >> ${exception:format=Message}${newline}${exception:format=StackTrace}"
|
||||||
Private Const LOG_FORMAT_DEBUG As String = LOG_FORMAT_BASE_LONG_DATE & " >> ${message}"
|
Private Const LOG_FORMAT_DEBUG As String = LOG_FORMAT_BASE_LONG_DATE & " >> ${message}"
|
||||||
|
Private Const LOG_FORMAT_MEMORY As String = LOG_FORMAT_BASE_LONG_DATE & " >> ${message}${newline}${exception:format=Message}${newline}${exception:format=StackTrace}"
|
||||||
|
|
||||||
Private Const FOLDER_NAME_LOG = "Log"
|
Private Const FOLDER_NAME_LOG = "Log"
|
||||||
Private Const FILE_NAME_ACCESS_TEST = "accessTest.txt"
|
Private Const FILE_NAME_ACCESS_TEST = "accessTest.txt"
|
||||||
@ -158,6 +160,22 @@ Public Class LogConfig
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Returns Logs in Memory as List(Of String) if Debug is enabled
|
||||||
|
''' Returns an empty list if debug is disabled
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>A list of log messages</returns>
|
||||||
|
Public ReadOnly Property Logs As List(Of String)
|
||||||
|
Get
|
||||||
|
If Debug = False Then
|
||||||
|
Return New List(Of String)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oTarget = config.FindTargetByName(Of MemoryTarget)(TARGET_MEMORY)
|
||||||
|
Return oTarget?.Logs.ToList()
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Initializes a new LogConfig object with a logpath and optinally a filename-suffix.
|
''' Initializes a new LogConfig object with a logpath and optinally a filename-suffix.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
@ -239,6 +257,14 @@ Public Class LogConfig
|
|||||||
Return LogFactory.GetLogger(Of Logger)(ClassName)
|
Return LogFactory.GetLogger(Of Logger)(ClassName)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Clears the internal log
|
||||||
|
''' </summary>
|
||||||
|
Public Sub ClearLogs()
|
||||||
|
Dim oTarget = config.FindTargetByName(Of MemoryTarget)(TARGET_MEMORY)
|
||||||
|
oTarget?.Logs.Clear()
|
||||||
|
End Sub
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Gets the fully qualified name of the class invoking the calling method,
|
''' Gets the fully qualified name of the class invoking the calling method,
|
||||||
''' including the namespace but Not the assembly.
|
''' including the namespace but Not the assembly.
|
||||||
@ -288,6 +314,7 @@ Public Class LogConfig
|
|||||||
config.AddTarget(TARGET_ERROR, GetErrorLogTarget(basePath))
|
config.AddTarget(TARGET_ERROR, GetErrorLogTarget(basePath))
|
||||||
config.AddTarget(TARGET_DEFAULT, GetDefaultLogTarget(basePath))
|
config.AddTarget(TARGET_DEFAULT, GetDefaultLogTarget(basePath))
|
||||||
config.AddTarget(TARGET_DEBUG, GetDebugLogTarget(basePath))
|
config.AddTarget(TARGET_DEBUG, GetDebugLogTarget(basePath))
|
||||||
|
config.AddTarget(TARGET_MEMORY, GetMemoryDebugTarget())
|
||||||
|
|
||||||
' Add default rules
|
' Add default rules
|
||||||
AddDefaultRules(config)
|
AddDefaultRules(config)
|
||||||
@ -333,6 +360,7 @@ Public Class LogConfig
|
|||||||
' Add debug rule, if configured
|
' Add debug rule, if configured
|
||||||
If Debug Then
|
If Debug Then
|
||||||
config.AddRuleForOneLevel(LogLevel.Debug, TARGET_DEBUG)
|
config.AddRuleForOneLevel(LogLevel.Debug, TARGET_DEBUG)
|
||||||
|
config.AddRuleForAllLevels(TARGET_MEMORY)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Reload all running loggers
|
' Reload all running loggers
|
||||||
@ -402,5 +430,17 @@ Public Class LogConfig
|
|||||||
|
|
||||||
Return debugLog
|
Return debugLog
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function GetMemoryDebugTarget() As MemoryTarget
|
||||||
|
Dim memoryLog As New MemoryTarget() With {
|
||||||
|
.Layout = LOG_FORMAT_MEMORY,
|
||||||
|
.Name = TARGET_MEMORY,
|
||||||
|
.OptimizeBufferReuse = True
|
||||||
|
}
|
||||||
|
|
||||||
|
Return memoryLog
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("0.0.0.7")>
|
<Assembly: AssemblyVersion("0.0.1.1")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
Public Class CurrentApplication
|
|
||||||
Public IDBServiceOnline As Boolean = False
|
|
||||||
End Class
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
Public Class CurrentUser
|
|
||||||
Public USER_GUID As String
|
|
||||||
Public USER_NAME As String
|
|
||||||
Public ReadOnly USER_LOGIN As DateTime
|
|
||||||
|
|
||||||
Public Sub New()
|
|
||||||
USER_LOGIN = DateTime.Now
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
13
Variables/My Project/Application.Designer.vb
generated
13
Variables/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user