diff --git a/Automation/App.config b/Automation/App.config deleted file mode 100644 index 5534e287..00000000 --- a/Automation/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Automation/Automation.vbproj b/Automation/Automation.vbproj deleted file mode 100644 index 40c4e738..00000000 --- a/Automation/Automation.vbproj +++ /dev/null @@ -1,139 +0,0 @@ - - - - - Debug - AnyCPU - {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5} - WinExe - Automation.My.MyApplication - Automation - Automation - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - Automation.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - Automation.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET\GdPicture.NET.14.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - Form1.vb - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - Form1.vb - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {5efaef9b-90b9-4f05-9f70-f79ad77fff86} - Windows - - - - \ No newline at end of file diff --git a/Automation/ClassClipboard.vb b/Automation/ClassClipboard.vb deleted file mode 100644 index 71f2f3fa..00000000 --- a/Automation/ClassClipboard.vb +++ /dev/null @@ -1,68 +0,0 @@ -Imports System.Runtime.InteropServices -Public Class ClassClipboardWatcher - Inherits NativeWindow - Implements IDisposable - - Private Class Win32 - - Public Shared Function SetClipboardViewer(ByVal hWnd As IntPtr) As IntPtr - End Function - End Class - - Const WM_DRAWCLIPBOARD As Integer = &H308 - - Public Event ClipboardChanged As EventHandler(Of IDataObject) - Public Shared Singleton As New ClassClipboardWatcher - - Private _handle As IntPtr - - Private Sub New() - MyBase.CreateHandle(New CreateParams) - _handle = Win32.SetClipboardViewer(Handle) - End Sub - - Protected Overrides Sub WndProc(ByRef m As Message) - - Select Case m.Msg - Case WM_DRAWCLIPBOARD - Dim oData As IDataObject = Clipboard.GetDataObject - RaiseEvent ClipboardChanged(Me, oData) - End Select - MyBase.WndProc(m) - End Sub - -#Region "IDisposable Support" - ' Für diese Klasse ist korrekte Ressourcenbereinigung besonders wichtig, da - ' mit systemübergreifenden Ressourcen gearbeitet wird - - ' So ermitteln Sie überflüssige Aufrufe - Private disposedValue As Boolean = False - - Protected Overridable Sub Dispose(ByVal disposing As Boolean) - If Not disposedValue Then - If disposing Then - ' TODO: Verwaltete Ressourcen freigeben, wenn sie explizit - ' aufgerufen werden - End If - MyBase.DestroyHandle() - Dim H As IntPtr = Win32.SetClipboardViewer(_handle) - End If - disposedValue = True - End Sub - - ' Dieser Code wird von Visual Basic hinzugefügt, um das Dispose-Muster - ' richtig zu implementieren. - Public Sub Dispose() Implements IDisposable.Dispose - ' Sie sollten diesen Code nicht ändern, sondern stattdessen ihren - ' Bereinigungscode oben in - ' Dispose(ByVal disposing As Boolean) einfügen. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub - - Protected Overrides Sub Finalize() - MyBase.Finalize() - Dispose(False) - End Sub -#End Region -End Class diff --git a/Automation/Form1.Designer.vb b/Automation/Form1.Designer.vb deleted file mode 100644 index bf87eeb8..00000000 --- a/Automation/Form1.Designer.vb +++ /dev/null @@ -1,235 +0,0 @@ - -Partial Class Form1 - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Me.Timer1 = New System.Windows.Forms.Timer(Me.components) - Me.TextBox1 = New System.Windows.Forms.TextBox() - Me.Label4 = New System.Windows.Forms.Label() - Me.Label5 = New System.Windows.Forms.Label() - Me.Label6 = New System.Windows.Forms.Label() - Me.Label7 = New System.Windows.Forms.Label() - Me.TextBox9 = New System.Windows.Forms.TextBox() - Me.TextBox10 = New System.Windows.Forms.TextBox() - Me.TextBox11 = New System.Windows.Forms.TextBox() - Me.TextBox12 = New System.Windows.Forms.TextBox() - Me.Label21 = New System.Windows.Forms.Label() - Me.TextBox6 = New System.Windows.Forms.TextBox() - Me.TextBox7 = New System.Windows.Forms.TextBox() - Me.TextBox8 = New System.Windows.Forms.TextBox() - Me.ComboBox1 = New System.Windows.Forms.ComboBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.TextBox3 = New System.Windows.Forms.TextBox() - Me.Label3 = New System.Windows.Forms.Label() - Me.SuspendLayout() - ' - 'TextBox1 - ' - Me.TextBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!) - Me.TextBox1.Location = New System.Drawing.Point(12, 12) - Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(100, 20) - Me.TextBox1.TabIndex = 0 - Me.TextBox1.Text = "Top Left" - ' - 'Label4 - ' - Me.Label4.AutoSize = True - Me.Label4.Location = New System.Drawing.Point(183, 105) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(25, 13) - Me.Label4.TabIndex = 6 - Me.Label4.Text = "Left" - ' - 'Label5 - ' - Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(183, 183) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(40, 13) - Me.Label5.TabIndex = 6 - Me.Label5.Text = "Bottom" - ' - 'Label6 - ' - Me.Label6.AutoSize = True - Me.Label6.Location = New System.Drawing.Point(183, 157) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(26, 13) - Me.Label6.TabIndex = 6 - Me.Label6.Text = "Top" - ' - 'Label7 - ' - Me.Label7.AutoSize = True - Me.Label7.Location = New System.Drawing.Point(183, 131) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(32, 13) - Me.Label7.TabIndex = 6 - Me.Label7.Text = "Right" - ' - 'TextBox9 - ' - Me.TextBox9.Location = New System.Drawing.Point(231, 102) - Me.TextBox9.Name = "TextBox9" - Me.TextBox9.Size = New System.Drawing.Size(100, 20) - Me.TextBox9.TabIndex = 1 - ' - 'TextBox10 - ' - Me.TextBox10.Location = New System.Drawing.Point(231, 180) - Me.TextBox10.Name = "TextBox10" - Me.TextBox10.Size = New System.Drawing.Size(100, 20) - Me.TextBox10.TabIndex = 2 - ' - 'TextBox11 - ' - Me.TextBox11.Location = New System.Drawing.Point(231, 154) - Me.TextBox11.Name = "TextBox11" - Me.TextBox11.Size = New System.Drawing.Size(100, 20) - Me.TextBox11.TabIndex = 3 - ' - 'TextBox12 - ' - Me.TextBox12.Location = New System.Drawing.Point(231, 128) - Me.TextBox12.Name = "TextBox12" - Me.TextBox12.Size = New System.Drawing.Size(100, 20) - Me.TextBox12.TabIndex = 4 - ' - 'Label21 - ' - Me.Label21.AutoSize = True - Me.Label21.Location = New System.Drawing.Point(183, 77) - Me.Label21.Name = "Label21" - Me.Label21.Size = New System.Drawing.Size(115, 13) - Me.Label21.TabIndex = 8 - Me.Label21.Text = "CURRENT CONTROL" - ' - 'TextBox6 - ' - Me.TextBox6.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.TextBox6.Location = New System.Drawing.Point(12, 298) - Me.TextBox6.Name = "TextBox6" - Me.TextBox6.Size = New System.Drawing.Size(100, 20) - Me.TextBox6.TabIndex = 0 - Me.TextBox6.Text = "Bottom Left" - ' - 'TextBox7 - ' - Me.TextBox7.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TextBox7.Location = New System.Drawing.Point(255, 12) - Me.TextBox7.Name = "TextBox7" - Me.TextBox7.Size = New System.Drawing.Size(100, 20) - Me.TextBox7.TabIndex = 0 - Me.TextBox7.Text = "TopRight" - ' - 'TextBox8 - ' - Me.TextBox8.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TextBox8.Location = New System.Drawing.Point(255, 298) - Me.TextBox8.Name = "TextBox8" - Me.TextBox8.Size = New System.Drawing.Size(100, 20) - Me.TextBox8.TabIndex = 0 - Me.TextBox8.Text = "BottomRight" - ' - 'ComboBox1 - ' - Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"TopLeft", "TopRight", "BottomLeft", "BottomRight"}) - Me.ComboBox1.Location = New System.Drawing.Point(30, 102) - Me.ComboBox1.Name = "ComboBox1" - Me.ComboBox1.Size = New System.Drawing.Size(121, 21) - Me.ComboBox1.TabIndex = 9 - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(27, 86) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(41, 13) - Me.Label1.TabIndex = 8 - Me.Label1.Text = "Anchor" - ' - 'TextBox3 - ' - Me.TextBox3.Location = New System.Drawing.Point(231, 206) - Me.TextBox3.Name = "TextBox3" - Me.TextBox3.Size = New System.Drawing.Size(100, 20) - Me.TextBox3.TabIndex = 2 - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(183, 209) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(41, 13) - Me.Label3.TabIndex = 6 - Me.Label3.Text = "Anchor" - ' - 'Form1 - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(367, 330) - Me.Controls.Add(Me.ComboBox1) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.Label21) - Me.Controls.Add(Me.Label7) - Me.Controls.Add(Me.Label6) - Me.Controls.Add(Me.Label3) - Me.Controls.Add(Me.Label5) - Me.Controls.Add(Me.Label4) - Me.Controls.Add(Me.TextBox12) - Me.Controls.Add(Me.TextBox3) - Me.Controls.Add(Me.TextBox11) - Me.Controls.Add(Me.TextBox10) - Me.Controls.Add(Me.TextBox9) - Me.Controls.Add(Me.TextBox6) - Me.Controls.Add(Me.TextBox8) - Me.Controls.Add(Me.TextBox7) - Me.Controls.Add(Me.TextBox1) - Me.Name = "Form1" - Me.Text = "Form1" - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents Timer1 As Timer - Friend WithEvents TextBox1 As TextBox - Friend WithEvents Label4 As Label - Friend WithEvents Label5 As Label - Friend WithEvents Label6 As Label - Friend WithEvents Label7 As Label - Friend WithEvents TextBox9 As TextBox - Friend WithEvents TextBox10 As TextBox - Friend WithEvents TextBox11 As TextBox - Friend WithEvents TextBox12 As TextBox - Friend WithEvents Label21 As Label - Friend WithEvents TextBox6 As TextBox - Friend WithEvents TextBox7 As TextBox - Friend WithEvents TextBox8 As TextBox - Friend WithEvents ComboBox1 As ComboBox - Friend WithEvents Label1 As Label - Friend WithEvents TextBox3 As TextBox - Friend WithEvents Label3 As Label -End Class diff --git a/Automation/Form1.resx b/Automation/Form1.resx deleted file mode 100644 index d0d99f42..00000000 --- a/Automation/Form1.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/Automation/Form1.vb b/Automation/Form1.vb deleted file mode 100644 index 0ad2f9b4..00000000 --- a/Automation/Form1.vb +++ /dev/null @@ -1,48 +0,0 @@ -Imports System.Runtime.InteropServices -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Windows - -Public Class Form1 - Private Logger As Logger - Private LogConfig As LogConfig - - Private Watcher As ClassClipboardWatcher - Private Window As Window - - Private CurrentAnchor As Window.Anchor = Window.Anchor.TopLeft - - Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Timer1.Interval = 1000 - Timer1.Enabled = True - - LogConfig = New LogConfig(LogConfig.PathType.AppData) - Logger = LogConfig.GetLogger() - Window = New Window(LogConfig) - - Watcher = ClassClipboardWatcher.Singleton - AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged - End Sub - - Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject) - Dim oControl As Window.RectangleInfo = Window.GetFocusedControlLocation(Handle, CurrentAnchor) - - TextBox9.Text = oControl.Left - TextBox12.Text = oControl.Right - TextBox11.Text = oControl.Top - TextBox10.Text = oControl.Bottom - TextBox3.Text = ComboBox1.Text.ToUpper - End Sub - - Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged - Select Case ComboBox1.Text - Case "TopLeft" - CurrentAnchor = Window.Anchor.TopLeft - Case "TopRight" - CurrentAnchor = Window.Anchor.TopRight - Case "BottomLeft" - CurrentAnchor = Window.Anchor.BottomLeft - Case "BottomRight" - CurrentAnchor = Window.Anchor.BottomRight - End Select - End Sub -End Class diff --git a/Automation/My Project/Application.Designer.vb b/Automation/My Project/Application.Designer.vb deleted file mode 100644 index 79646505..00000000 --- a/Automation/My Project/Application.Designer.vb +++ /dev/null @@ -1,38 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - 'NOTE: This file is auto-generated; do not modify it directly. To make changes, - ' or if you encounter build errors in this file, go to the Project Designer - ' (go to Project Properties or double-click the My Project node in - ' Solution Explorer), and make changes on the Application tab. - ' - Partial Friend Class MyApplication - - _ - 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 - - _ - Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.Automation.Form1 - End Sub - End Class -End Namespace diff --git a/Automation/My Project/Application.myapp b/Automation/My Project/Application.myapp deleted file mode 100644 index 1243847f..00000000 --- a/Automation/My Project/Application.myapp +++ /dev/null @@ -1,11 +0,0 @@ - - - true - Form1 - false - 0 - true - 0 - 0 - true - diff --git a/Automation/My Project/AssemblyInfo.vb b/Automation/My Project/AssemblyInfo.vb deleted file mode 100644 index da3bda89..00000000 --- a/Automation/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Automation/My Project/Resources.Designer.vb b/Automation/My Project/Resources.Designer.vb deleted file mode 100644 index 3ed5a386..00000000 --- a/Automation/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Automation.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Automation/My Project/Resources.resx b/Automation/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Automation/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Automation/My Project/Settings.Designer.vb b/Automation/My Project/Settings.Designer.vb deleted file mode 100644 index 8c88c5f6..00000000 --- a/Automation/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Automation.My.MySettings - Get - Return Global.Automation.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Automation/My Project/Settings.settings b/Automation/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Automation/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ConfigCreator/MonoRepoUtils.vbproj b/ConfigCreator/MonoRepoUtils.vbproj index 06629cda..10ba248c 100644 --- a/ConfigCreator/MonoRepoUtils.vbproj +++ b/ConfigCreator/MonoRepoUtils.vbproj @@ -63,6 +63,18 @@ + + False + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + False + ..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + @@ -139,18 +151,6 @@ - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {ab6f09bf-e794-4f6a-94bb-c97c0ba84d64} - Interfaces - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - {7deec36e-ea5f-4711-ad1e-fd8894f4ad77} DDZUGFeRDService diff --git a/Controls.ChatAddUser/ChatAddUser.vbproj b/Controls.ChatAddUser/ChatAddUser.vbproj index d90ce937..0bd14331 100644 --- a/Controls.ChatAddUser/ChatAddUser.vbproj +++ b/Controls.ChatAddUser/ChatAddUser.vbproj @@ -59,6 +59,14 @@ ..\Controls.LookupGrid\obj\Debug\DigitalData.Controls.LookupGrid.dll + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\NLog.4.7.10\lib\net45\NLog.dll @@ -146,16 +154,6 @@ - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - diff --git a/Controls.ChatAddUser/My Project/licenses.licx b/Controls.ChatAddUser/My Project/licenses.licx index e69de29b..887f6738 100644 --- a/Controls.ChatAddUser/My Project/licenses.licx +++ b/Controls.ChatAddUser/My Project/licenses.licx @@ -0,0 +1 @@ +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/Controls.ChatControl/ChatControl.vbproj b/Controls.ChatControl/ChatControl.vbproj index c66aa477..0aabca38 100644 --- a/Controls.ChatControl/ChatControl.vbproj +++ b/Controls.ChatControl/ChatControl.vbproj @@ -59,6 +59,14 @@ ..\Controls.LookupGrid\obj\Debug\DigitalData.Controls.LookupGrid.dll + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\NLog.4.7.10\lib\net45\NLog.dll @@ -151,14 +159,6 @@ {f0a807cc-be14-4b5b-9200-27c16156bd8a} ChatAddUser - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - diff --git a/Controls.ChatNewConv/ChatNewConv.vbproj b/Controls.ChatNewConv/ChatNewConv.vbproj index 0835ac36..81de92a1 100644 --- a/Controls.ChatNewConv/ChatNewConv.vbproj +++ b/Controls.ChatNewConv/ChatNewConv.vbproj @@ -59,6 +59,14 @@ ..\Controls.LookupGrid\obj\Debug\DigitalData.Controls.LookupGrid.dll + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\NLog.4.7.10\lib\net45\NLog.dll @@ -146,16 +154,6 @@ - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - diff --git a/Controls.DocumentViewer/DocumentViewer.vbproj b/Controls.DocumentViewer/DocumentViewer.vbproj index 935c47aa..61ee5a40 100644 --- a/Controls.DocumentViewer/DocumentViewer.vbproj +++ b/Controls.DocumentViewer/DocumentViewer.vbproj @@ -72,6 +72,22 @@ + + False + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + False + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + False + ..\..\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll + D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll @@ -172,24 +188,6 @@ - - - {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} - Base - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - {af664d85-0a4b-4bab-a2f8-83110c06553a} - Messaging - - diff --git a/Controls.RegexEditor/RegexEditor.vbproj b/Controls.RegexEditor/RegexEditor.vbproj index 518478d0..eab47072 100644 --- a/Controls.RegexEditor/RegexEditor.vbproj +++ b/Controls.RegexEditor/RegexEditor.vbproj @@ -55,11 +55,16 @@ False - False - + + + False + ..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll + + + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll @@ -138,12 +143,6 @@ - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - diff --git a/DDMonorepo.sln b/DDMonorepo.sln index e6eecaa6..e98fd03a 100644 --- a/DDMonorepo.sln +++ b/DDMonorepo.sln @@ -3,28 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29728.190 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GUIs", "GUIs", "{8FFE925E-8B84-45F1-93CB-32B1C96F41EB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Setups", "Setups", "{D887B4BE-E457-4E45-8E22-D086E92DD2B7}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EDMDesigner", "GUIs.Test.EDMDesigner\EDMDesigner.vbproj", "{5284F4E5-A6C1-4BCF-896F-3ABEA985B741}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Logging", "Modules.Logging\Logging.vbproj", "{903B2D7D-3B80-4BE9-8713-7447B704E1B0}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Windream", "Modules.Windream\Windream.vbproj", "{4C86DF8F-A280-40D4-85B0-10B1BF66C15C}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{7AF3F9C2-C939-4A08-95C1-0453207E298A}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TestGUI", "GUIs.Test.TestGUI\TestGUI.vbproj", "{93130E7D-A950-4CBD-A0D9-7A6FAF94DDC0}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Database", "Modules.Database\Database.vbproj", "{EAF0EA75-5FA7-485D-89C7-B2D843B03A96}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDTestService", "DDTestService\DDTestService.vbproj", "{63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Config", "Modules.Config\Config.vbproj", "{44982F9B-6116-44E2-85D0-F39650B1EF99}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{F98C0329-C004-417F-B2AB-7466E88D8220}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LookupControl", "Controls.LookupGrid\LookupControl.vbproj", "{3DCD6D1A-C830-4241-B7E4-27430E7EA483}" @@ -38,72 +24,38 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Licenses", "Licenses", "{59 QUARTZ-LICENSE.txt = QUARTZ-LICENSE.txt EndProjectSection EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Logging.Test", "Modules.Logging.Test\Logging.Test.vbproj", "{3207D8E7-36E3-4714-9B03-7B5B3D6D351A}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Interfaces", "Modules.Interfaces\Interfaces.vbproj", "{AB6F09BF-E794-4F6A-94BB-C97C0BA84D64}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ZUGFeRDTest", "GUIs.Test.ZUGFeRDTest\ZUGFeRDTest.vbproj", "{16156434-E471-43F1-8030-76A0DA17CD5A}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GUI_EDMI", "GUIs.Test.GUI_EDMI\GUI_EDMI.vbproj", "{88EDAD5B-1B98-43E4-B068-1251E7AF01A0}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ClientSuite", "GUIs.ClientSuite\ClientSuite.vbproj", "{406C95F4-9FEA-45B6-8385-1768CDBBF1A7}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "License", "Modules.License\License.vbproj", "{5EBACBFA-F11A-4BBF-8D02-91461F2293ED}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ADSyncTest", "GUIs.Test.ADSyncTest\ADSyncTest.vbproj", "{7386AB04-DF8D-4DFB-809D-1FAC8212CB7E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GUIs.Test", "GUIs.Test", "{CC368D6A-6AC4-4EB9-A092-14700FABEF7A}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "JobRunner", "Service.JobRunner\JobRunner.vbproj", "{926E6474-5613-4373-BB99-B101158B91EF}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Language", "Modules.Language\Language.vbproj", "{D3C8CFED-D6F6-43A8-9BDF-454145D0352F}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RegexEditor", "Controls.RegexEditor\RegexEditor.vbproj", "{BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Windows", "Windows\Windows.vbproj", "{5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Automation", "Automation\Automation.vbproj", "{483A3DA7-6F7A-4E57-B77F-ED33F4E280C5}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Common", "GUIs.Common\Common.vbproj", "{D20A6BF2-C7C6-4A7A-B34D-FA27D775A049}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ZooFlow", "Modules.ZooFlow\ZooFlow.vbproj", "{81CAC44F-3711-4C8F-AE98-E02A7448782A}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Patterns", "Modules.Patterns\Patterns.vbproj", "{7C3B0C7E-59FE-4E1A-A655-27AE119F9444}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DocumentViewer", "Controls.DocumentViewer\DocumentViewer.vbproj", "{0958CDDF-4A16-41F6-8837-8335F71D599C}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Messaging", "Modules.Messaging\Messaging.vbproj", "{AF664D85-0A4B-4BAB-A2F8-83110C06553A}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ClipboardWatcher", "GUIs.ClipboardWatcher\ClipboardWatcher.vbproj", "{B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Filesystem", "Modules.Filesystem\Filesystem.vbproj", "{991D0231-4623-496D-8BD0-9CA906029CBC}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Jobs", "Modules.Jobs\Jobs.vbproj", "{39EC839A-3C30-4922-A41E-6B09D1DDE5C3}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Filesystem.Test", "Modules\Filesystem.Test\Filesystem.Test.vbproj", "{B29ED6D4-839B-413A-A485-B10F4A4788EA}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GUIs.Test.GraphQLTest", "GUIs.Test.GraphQLTest\GUIs.Test.GraphQLTest.vbproj", "{609B09B4-AD1E-40F7-8899-A6685924621C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebServices", "WebServices", "{D3BAE68E-406E-493D-A4E5-DB6EDDFFB371}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZUGFeRDRESTService", "WEBSERVICES\ZUGFeRDRESTService\ZUGFeRDRESTService.csproj", "{FD50590A-59C1-4798-AD90-419A588DCE76}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EDMI.API", "Modules.EDMIAPI\EDMI.API.vbproj", "{25017513-0D97-49D3-98D7-BA76D9B251B0}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EDMIService", "Service.EDMIService\EDMIService.vbproj", "{A8C3F298-76AB-4359-AB3C-986E313B4336}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDEmailService", "Services.EmailService\DDEmailService.vbproj", "{83ED2617-B398-4859-8F59-B38F8807E83E}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DD_CommunicationService", "Services.CommunicationService\DD_CommunicationService.vbproj", "{1FB2854F-C050-427D-9FAC-1D8F232E8025}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDZUGFeRDService", "Services.ZUGFeRDService\DDZUGFeRDService.vbproj", "{7DEEC36E-EA5F-4711-AD1E-FD8894F4AD77}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDEDMLicenseService", "Services.LicenseService\DDEDMLicenseService.vbproj", "{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GUIs.Test.EDMIBenchmark", "GUIs.Test.EDMIBenchmark\GUIs.Test.EDMIBenchmark.vbproj", "{5FDEC007-7AE0-4829-B1AE-6165E29375DA}" EndProject -Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ChatServer", "ChatServer\ChatServer.vbproj", "{C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ChatClient", "ChatClient\ChatClient.vbproj", "{9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ChatControl", "Controls.ChatControl\ChatControl.vbproj", "{1F278760-4F6B-42E8-B82D-01D4C8618340}" @@ -112,98 +64,34 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ChatNewConv", "Controls.Cha EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ChatAddUser", "Controls.ChatAddUser\ChatAddUser.vbproj", "{F0A807CC-BE14-4B5B-9200-27C16156BD8A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VirtualDrive", "VirtualDrive\VirtualDrive.csproj", "{83795524-2512-4C04-BD57-4847230943A7}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SnapPanel", "Controls.SnapPanel\SnapPanel.vbproj", "{3E19C413-3197-4635-944E-558FC04C3475}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EDMI.File", "Modules.EDMI.File\EDMI.File.vbproj", "{1477032D-7A02-4C5F-B026-A7117DA4BC6B}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EDMI.File.Test", "Modules.EDMI.File.Test\EDMI.File.Test.vbproj", "{16857A4E-2609-47E6-9C35-7669D64DD040}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GlobalIndexer", "GUIs.GlobalIndexer\GlobalIndexer.vbproj", "{40384B94-1F94-4249-9A5A-D02E0B346738}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SQLConfig", "SQLConfig\SQLConfig.vbproj", "{65EFB268-C0E0-40C1-8981-9F70DEE5C74A}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Monitor", "GUIs.Monitor\Monitor.vbproj", "{E24E8D40-0361-4C07-8FAE-3621DE316E70}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MonoRepoUtils", "ConfigCreator\MonoRepoUtils.vbproj", "{9D4AC920-C78E-41C3-994E-91690FF79380}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Encryption", "Encryption\Encryption.vbproj", "{8A8F20FC-C46E-41AC-BEE7-218366CFFF99}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Config.Test", "Config.Test\Config.Test.vbproj", "{B9A63193-1391-4E20-B578-0867F330396C}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DBCleaner", "DBCleaner\DBCleaner.vbproj", "{5A7913CE-7D3D-4E84-B23D-4747C178CD71}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Mailfunctions", "Mailfunctions\Mailfunctions.vbproj", "{C9827B8D-9EF9-411A-A6BF-4807794F8C8F}" -EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EDMIService.Tests", "EDMIService.Tests\EDMIService.Tests.vbproj", "{E3DA65CA-964D-4896-991A-B5426884E215}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Base", "Modules.Base\Base\Base.vbproj", "{6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterReader", "FilterReader\FilterReader.csproj", "{10C922FB-DD8D-4E0B-A50C-30EE658FBDDC}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741}.Release|Any CPU.Build.0 = Release|Any CPU - {903B2D7D-3B80-4BE9-8713-7447B704E1B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {903B2D7D-3B80-4BE9-8713-7447B704E1B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {903B2D7D-3B80-4BE9-8713-7447B704E1B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {903B2D7D-3B80-4BE9-8713-7447B704E1B0}.Release|Any CPU.Build.0 = Release|Any CPU - {4C86DF8F-A280-40D4-85B0-10B1BF66C15C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C86DF8F-A280-40D4-85B0-10B1BF66C15C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C86DF8F-A280-40D4-85B0-10B1BF66C15C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4C86DF8F-A280-40D4-85B0-10B1BF66C15C}.Release|Any CPU.Build.0 = Release|Any CPU {93130E7D-A950-4CBD-A0D9-7A6FAF94DDC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {93130E7D-A950-4CBD-A0D9-7A6FAF94DDC0}.Debug|Any CPU.Build.0 = Debug|Any CPU {93130E7D-A950-4CBD-A0D9-7A6FAF94DDC0}.Release|Any CPU.ActiveCfg = Release|Any CPU {93130E7D-A950-4CBD-A0D9-7A6FAF94DDC0}.Release|Any CPU.Build.0 = Release|Any CPU - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96}.Release|Any CPU.Build.0 = Release|Any CPU - {63B0EAA3-8BF5-46DA-9040-15E781F4C3B1}.Debug|Any CPU.ActiveCfg = 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.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.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.Build.0 = Release|Any CPU {3DCD6D1A-C830-4241-B7E4-27430E7EA483}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3DCD6D1A-C830-4241-B7E4-27430E7EA483}.Debug|Any CPU.Build.0 = Debug|Any CPU {3DCD6D1A-C830-4241-B7E4-27430E7EA483}.Release|Any CPU.ActiveCfg = Release|Any CPU {3DCD6D1A-C830-4241-B7E4-27430E7EA483}.Release|Any CPU.Build.0 = Release|Any CPU - {3207D8E7-36E3-4714-9B03-7B5B3D6D351A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3207D8E7-36E3-4714-9B03-7B5B3D6D351A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3207D8E7-36E3-4714-9B03-7B5B3D6D351A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3207D8E7-36E3-4714-9B03-7B5B3D6D351A}.Release|Any CPU.Build.0 = Release|Any CPU - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64}.Release|Any CPU.Build.0 = Release|Any CPU {16156434-E471-43F1-8030-76A0DA17CD5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {16156434-E471-43F1-8030-76A0DA17CD5A}.Debug|Any CPU.Build.0 = Debug|Any CPU {16156434-E471-43F1-8030-76A0DA17CD5A}.Release|Any CPU.ActiveCfg = Release|Any CPU {16156434-E471-43F1-8030-76A0DA17CD5A}.Release|Any CPU.Build.0 = Release|Any CPU - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0}.Release|Any CPU.Build.0 = Release|Any CPU - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7}.Release|Any CPU.Build.0 = Release|Any CPU - {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Release|Any CPU.Build.0 = Release|Any CPU {7386AB04-DF8D-4DFB-809D-1FAC8212CB7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7386AB04-DF8D-4DFB-809D-1FAC8212CB7E}.Debug|Any CPU.Build.0 = Debug|Any CPU {7386AB04-DF8D-4DFB-809D-1FAC8212CB7E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -212,58 +100,22 @@ Global {926E6474-5613-4373-BB99-B101158B91EF}.Debug|Any CPU.Build.0 = Debug|Any CPU {926E6474-5613-4373-BB99-B101158B91EF}.Release|Any CPU.ActiveCfg = Release|Any CPU {926E6474-5613-4373-BB99-B101158B91EF}.Release|Any CPU.Build.0 = Release|Any CPU - {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Release|Any CPU.Build.0 = Release|Any CPU {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Debug|Any CPU.Build.0 = Debug|Any CPU {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Release|Any CPU.ActiveCfg = Release|Any CPU {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Release|Any CPU.Build.0 = Release|Any CPU - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}.Release|Any CPU.Build.0 = Release|Any CPU - {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5}.Release|Any CPU.Build.0 = Release|Any CPU {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049}.Debug|Any CPU.Build.0 = Debug|Any CPU {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049}.Release|Any CPU.ActiveCfg = Release|Any CPU {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049}.Release|Any CPU.Build.0 = Release|Any CPU - {81CAC44F-3711-4C8F-AE98-E02A7448782A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81CAC44F-3711-4C8F-AE98-E02A7448782A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81CAC44F-3711-4C8F-AE98-E02A7448782A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81CAC44F-3711-4C8F-AE98-E02A7448782A}.Release|Any CPU.Build.0 = Release|Any CPU - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444}.Release|Any CPU.Build.0 = Release|Any CPU {0958CDDF-4A16-41F6-8837-8335F71D599C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0958CDDF-4A16-41F6-8837-8335F71D599C}.Debug|Any CPU.Build.0 = Debug|Any CPU {0958CDDF-4A16-41F6-8837-8335F71D599C}.Release|Any CPU.ActiveCfg = Release|Any CPU {0958CDDF-4A16-41F6-8837-8335F71D599C}.Release|Any CPU.Build.0 = Release|Any CPU - {AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Release|Any CPU.Build.0 = Release|Any CPU {B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E}.Debug|Any CPU.Build.0 = Debug|Any CPU {B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E}.Release|Any CPU.ActiveCfg = Release|Any CPU {B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E}.Release|Any CPU.Build.0 = Release|Any CPU - {991D0231-4623-496D-8BD0-9CA906029CBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {991D0231-4623-496D-8BD0-9CA906029CBC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {991D0231-4623-496D-8BD0-9CA906029CBC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {991D0231-4623-496D-8BD0-9CA906029CBC}.Release|Any CPU.Build.0 = Release|Any CPU - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Release|Any CPU.Build.0 = Release|Any CPU - {B29ED6D4-839B-413A-A485-B10F4A4788EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B29ED6D4-839B-413A-A485-B10F4A4788EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B29ED6D4-839B-413A-A485-B10F4A4788EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B29ED6D4-839B-413A-A485-B10F4A4788EA}.Release|Any CPU.Build.0 = Release|Any CPU {609B09B4-AD1E-40F7-8899-A6685924621C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {609B09B4-AD1E-40F7-8899-A6685924621C}.Debug|Any CPU.Build.0 = Debug|Any CPU {609B09B4-AD1E-40F7-8899-A6685924621C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -272,10 +124,6 @@ Global {FD50590A-59C1-4798-AD90-419A588DCE76}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD50590A-59C1-4798-AD90-419A588DCE76}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD50590A-59C1-4798-AD90-419A588DCE76}.Release|Any CPU.Build.0 = Release|Any CPU - {25017513-0D97-49D3-98D7-BA76D9B251B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25017513-0D97-49D3-98D7-BA76D9B251B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25017513-0D97-49D3-98D7-BA76D9B251B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25017513-0D97-49D3-98D7-BA76D9B251B0}.Release|Any CPU.Build.0 = Release|Any CPU {A8C3F298-76AB-4359-AB3C-986E313B4336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8C3F298-76AB-4359-AB3C-986E313B4336}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8C3F298-76AB-4359-AB3C-986E313B4336}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -284,10 +132,6 @@ Global {83ED2617-B398-4859-8F59-B38F8807E83E}.Debug|Any CPU.Build.0 = Debug|Any CPU {83ED2617-B398-4859-8F59-B38F8807E83E}.Release|Any CPU.ActiveCfg = Release|Any CPU {83ED2617-B398-4859-8F59-B38F8807E83E}.Release|Any CPU.Build.0 = Release|Any CPU - {1FB2854F-C050-427D-9FAC-1D8F232E8025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FB2854F-C050-427D-9FAC-1D8F232E8025}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FB2854F-C050-427D-9FAC-1D8F232E8025}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FB2854F-C050-427D-9FAC-1D8F232E8025}.Release|Any CPU.Build.0 = Release|Any CPU {7DEEC36E-EA5F-4711-AD1E-FD8894F4AD77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7DEEC36E-EA5F-4711-AD1E-FD8894F4AD77}.Debug|Any CPU.Build.0 = Debug|Any CPU {7DEEC36E-EA5F-4711-AD1E-FD8894F4AD77}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -300,10 +144,6 @@ Global {5FDEC007-7AE0-4829-B1AE-6165E29375DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {5FDEC007-7AE0-4829-B1AE-6165E29375DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {5FDEC007-7AE0-4829-B1AE-6165E29375DA}.Release|Any CPU.Build.0 = Release|Any CPU - {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Release|Any CPU.Build.0 = Release|Any CPU {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Debug|Any CPU.Build.0 = Debug|Any CPU {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -320,129 +160,56 @@ Global {F0A807CC-BE14-4B5B-9200-27C16156BD8A}.Debug|Any CPU.Build.0 = Debug|Any CPU {F0A807CC-BE14-4B5B-9200-27C16156BD8A}.Release|Any CPU.ActiveCfg = Release|Any CPU {F0A807CC-BE14-4B5B-9200-27C16156BD8A}.Release|Any CPU.Build.0 = Release|Any CPU - {83795524-2512-4C04-BD57-4847230943A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83795524-2512-4C04-BD57-4847230943A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83795524-2512-4C04-BD57-4847230943A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83795524-2512-4C04-BD57-4847230943A7}.Release|Any CPU.Build.0 = Release|Any CPU {3E19C413-3197-4635-944E-558FC04C3475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3E19C413-3197-4635-944E-558FC04C3475}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E19C413-3197-4635-944E-558FC04C3475}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E19C413-3197-4635-944E-558FC04C3475}.Release|Any CPU.Build.0 = Release|Any CPU - {1477032D-7A02-4C5F-B026-A7117DA4BC6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1477032D-7A02-4C5F-B026-A7117DA4BC6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1477032D-7A02-4C5F-B026-A7117DA4BC6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1477032D-7A02-4C5F-B026-A7117DA4BC6B}.Release|Any CPU.Build.0 = Release|Any CPU - {16857A4E-2609-47E6-9C35-7669D64DD040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16857A4E-2609-47E6-9C35-7669D64DD040}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16857A4E-2609-47E6-9C35-7669D64DD040}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16857A4E-2609-47E6-9C35-7669D64DD040}.Release|Any CPU.Build.0 = Release|Any CPU {40384B94-1F94-4249-9A5A-D02E0B346738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {40384B94-1F94-4249-9A5A-D02E0B346738}.Debug|Any CPU.Build.0 = Debug|Any CPU {40384B94-1F94-4249-9A5A-D02E0B346738}.Release|Any CPU.ActiveCfg = Release|Any CPU {40384B94-1F94-4249-9A5A-D02E0B346738}.Release|Any CPU.Build.0 = Release|Any CPU - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A}.Release|Any CPU.Build.0 = Release|Any CPU - {E24E8D40-0361-4C07-8FAE-3621DE316E70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E24E8D40-0361-4C07-8FAE-3621DE316E70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E24E8D40-0361-4C07-8FAE-3621DE316E70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E24E8D40-0361-4C07-8FAE-3621DE316E70}.Release|Any CPU.Build.0 = Release|Any CPU {9D4AC920-C78E-41C3-994E-91690FF79380}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9D4AC920-C78E-41C3-994E-91690FF79380}.Debug|Any CPU.Build.0 = Debug|Any CPU {9D4AC920-C78E-41C3-994E-91690FF79380}.Release|Any CPU.ActiveCfg = Release|Any CPU {9D4AC920-C78E-41C3-994E-91690FF79380}.Release|Any CPU.Build.0 = Release|Any CPU - {8A8F20FC-C46E-41AC-BEE7-218366CFFF99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8A8F20FC-C46E-41AC-BEE7-218366CFFF99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8A8F20FC-C46E-41AC-BEE7-218366CFFF99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8A8F20FC-C46E-41AC-BEE7-218366CFFF99}.Release|Any CPU.Build.0 = Release|Any CPU - {B9A63193-1391-4E20-B578-0867F330396C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B9A63193-1391-4E20-B578-0867F330396C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B9A63193-1391-4E20-B578-0867F330396C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B9A63193-1391-4E20-B578-0867F330396C}.Release|Any CPU.Build.0 = Release|Any CPU {5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Release|Any CPU.Build.0 = Release|Any CPU - {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Release|Any CPU.Build.0 = Release|Any CPU {E3DA65CA-964D-4896-991A-B5426884E215}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E3DA65CA-964D-4896-991A-B5426884E215}.Debug|Any CPU.Build.0 = Debug|Any CPU {E3DA65CA-964D-4896-991A-B5426884E215}.Release|Any CPU.ActiveCfg = Release|Any CPU {E3DA65CA-964D-4896-991A-B5426884E215}.Release|Any CPU.Build.0 = Release|Any CPU - {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}.Release|Any CPU.Build.0 = Release|Any CPU - {10C922FB-DD8D-4E0B-A50C-30EE658FBDDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10C922FB-DD8D-4E0B-A50C-30EE658FBDDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {10C922FB-DD8D-4E0B-A50C-30EE658FBDDC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10C922FB-DD8D-4E0B-A50C-30EE658FBDDC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {4C86DF8F-A280-40D4-85B0-10B1BF66C15C} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {93130E7D-A950-4CBD-A0D9-7A6FAF94DDC0} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {63B0EAA3-8BF5-46DA-9040-15E781F4C3B1} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} - {44982F9B-6116-44E2-85D0-F39650B1EF99} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {3DCD6D1A-C830-4241-B7E4-27430E7EA483} = {F98C0329-C004-417F-B2AB-7466E88D8220} - {3207D8E7-36E3-4714-9B03-7B5B3D6D351A} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {16156434-E471-43F1-8030-76A0DA17CD5A} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} - {5EBACBFA-F11A-4BBF-8D02-91461F2293ED} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {7386AB04-DF8D-4DFB-809D-1FAC8212CB7E} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {926E6474-5613-4373-BB99-B101158B91EF} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} - {D3C8CFED-D6F6-43A8-9BDF-454145D0352F} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2} = {F98C0329-C004-417F-B2AB-7466E88D8220} - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} - {81CAC44F-3711-4C8F-AE98-E02A7448782A} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {0958CDDF-4A16-41F6-8837-8335F71D599C} = {F98C0329-C004-417F-B2AB-7466E88D8220} - {AF664D85-0A4B-4BAB-A2F8-83110C06553A} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} - {991D0231-4623-496D-8BD0-9CA906029CBC} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {B29ED6D4-839B-413A-A485-B10F4A4788EA} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {609B09B4-AD1E-40F7-8899-A6685924621C} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {FD50590A-59C1-4798-AD90-419A588DCE76} = {D3BAE68E-406E-493D-A4E5-DB6EDDFFB371} - {25017513-0D97-49D3-98D7-BA76D9B251B0} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {A8C3F298-76AB-4359-AB3C-986E313B4336} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} {83ED2617-B398-4859-8F59-B38F8807E83E} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} - {1FB2854F-C050-427D-9FAC-1D8F232E8025} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} {7DEEC36E-EA5F-4711-AD1E-FD8894F4AD77} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} {CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} {5FDEC007-7AE0-4829-B1AE-6165E29375DA} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} - {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {1F278760-4F6B-42E8-B82D-01D4C8618340} = {F98C0329-C004-417F-B2AB-7466E88D8220} {86D27FFA-480F-481D-8D23-26DEAE92FE6C} = {F98C0329-C004-417F-B2AB-7466E88D8220} {F0A807CC-BE14-4B5B-9200-27C16156BD8A} = {F98C0329-C004-417F-B2AB-7466E88D8220} - {83795524-2512-4C04-BD57-4847230943A7} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {3E19C413-3197-4635-944E-558FC04C3475} = {F98C0329-C004-417F-B2AB-7466E88D8220} - {1477032D-7A02-4C5F-B026-A7117DA4BC6B} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {16857A4E-2609-47E6-9C35-7669D64DD040} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {40384B94-1F94-4249-9A5A-D02E0B346738} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A} = {F98C0329-C004-417F-B2AB-7466E88D8220} - {E24E8D40-0361-4C07-8FAE-3621DE316E70} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} {9D4AC920-C78E-41C3-994E-91690FF79380} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} - {8A8F20FC-C46E-41AC-BEE7-218366CFFF99} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {B9A63193-1391-4E20-B578-0867F330396C} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {5A7913CE-7D3D-4E84-B23D-4747C178CD71} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} - {C9827B8D-9EF9-411A-A6BF-4807794F8C8F} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {E3DA65CA-964D-4896-991A-B5426884E215} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} - {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} - {10C922FB-DD8D-4E0B-A50C-30EE658FBDDC} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286} diff --git a/Database.Cached/Database.Cached.vbproj b/Database.Cached/Database.Cached.vbproj deleted file mode 100644 index 31796d23..00000000 --- a/Database.Cached/Database.Cached.vbproj +++ /dev/null @@ -1,129 +0,0 @@ - - - - - Debug - AnyCPU - {E0DC883D-FAE1-4103-B2BA-043EBE697B09} - Library - Database.Cached - Database.Cached - 512 - Windows - v4.6.1 - true - - - true - full - true - true - bin\Debug\ - Database.Cached.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - Database.Cached.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.5\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/Database.Cached/MSSQLServerCached.vb b/Database.Cached/MSSQLServerCached.vb deleted file mode 100644 index aa726bdf..00000000 --- a/Database.Cached/MSSQLServerCached.vb +++ /dev/null @@ -1,63 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.EDMI.API -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Public Class MSSQLServerCached - Private _Logger As Logger - Private _Client As Client - Private _DatabaseEDM As MSSQLServer - Private _DatabaseIDB As MSSQLServer - Private _Type As DatabaseType - - Public Enum DatabaseType - ECM - IDB - End Enum - - Public Sub New(LogConfig As LogConfig, Client As Client, DatabaseECM As MSSQLServer, DatabaseIDB As MSSQLServer) - _Logger = LogConfig.GetLogger() - _Client = Client - _DatabaseEDM = DatabaseECM - _DatabaseIDB = DatabaseIDB - End Sub - - Public Function GetDatatable(DataTable As String, FilterExpression As String, SortByColumn As String, FallbackSQL As String, FallbackType As DatabaseType, Optional ForceFallback As Boolean = False) As DataTable - Try - Dim oResult As DataTable = Nothing - - If ForceFallback = False Then - Dim oTableResult As TableResult = _Client.GetDatatableByName(DataTable, FilterExpression, SortByColumn) - - If oTableResult Is Nothing OrElse oTableResult.OK = False Then - _Logger.Warn("Datatable [{0}] could not be fetched from AppServer Cache. Falling back to direct Database Access.") - End If - Else - Return GetDatatableFromDatabase(FallbackSQL, FallbackType) - End If - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - End Try - End Function - - Private Function GetDatatableFromDatabase(SQLCommand As String, DatabaseType As DatabaseType) - Try - Select Case DatabaseType - Case DatabaseType.ECM - Return _DatabaseEDM.GetDatatable(SQLCommand) - - Case DatabaseType.IDB - Return _DatabaseIDB.GetDatatable(SQLCommand) - - Case Else - Return Nothing - - End Select - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - - End Try - End Function -End Class diff --git a/Database.Cached/My Project/Application.Designer.vb b/Database.Cached/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c7..00000000 --- a/Database.Cached/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Database.Cached/My Project/Application.myapp b/Database.Cached/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Database.Cached/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Database.Cached/My Project/AssemblyInfo.vb b/Database.Cached/My Project/AssemblyInfo.vb deleted file mode 100644 index f8ceccac..00000000 --- a/Database.Cached/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/Database.Cached/My Project/Resources.Designer.vb b/Database.Cached/My Project/Resources.Designer.vb deleted file mode 100644 index e2c884da..00000000 --- a/Database.Cached/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Database.Cached.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Database.Cached/My Project/Resources.resx b/Database.Cached/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Database.Cached/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Database.Cached/My Project/Settings.Designer.vb b/Database.Cached/My Project/Settings.Designer.vb deleted file mode 100644 index 2732f8e9..00000000 --- a/Database.Cached/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Database.Cached.My.MySettings - Get - Return Global.Database.Cached.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Database.Cached/My Project/Settings.settings b/Database.Cached/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Database.Cached/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Database.Cached/app.config b/Database.Cached/app.config deleted file mode 100644 index d5fed9f7..00000000 --- a/Database.Cached/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Database.Cached/packages.config b/Database.Cached/packages.config deleted file mode 100644 index 6f6bc401..00000000 --- a/Database.Cached/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Encryption/Compression.vb b/Encryption/Compression.vb deleted file mode 100644 index a1d5027e..00000000 --- a/Encryption/Compression.vb +++ /dev/null @@ -1,70 +0,0 @@ -Imports System.IO -Imports System.IO.Compression -Imports DigitalData.Modules.Logging - -Public Class Compression - Private ReadOnly _logger As Logger - - Public Sub New(LogConfig As LogConfig) - _logger = LogConfig.GetLogger() - End Sub - - Public Async Function CompressAsync(data As Byte()) As Task(Of Byte()) - Return Await Task.Run(Function() As Byte() - Return Compress(data) - End Function) - End Function - - Public Function Compress(data As Byte()) As Byte() - Try - ' ByteArray in Stream umwandeln - Using originalStream As New MemoryStream(data) - ' Ziel Stream erstellen - Using compressedStream As New MemoryStream() - ' Gzip-Stream erstellen, der alle Daten komprimiert und zu compressedStream durchleitet - ' - ' > MemoryStream > GzipStream > MemoryStream - ' originalStream --> compressionStream --> compressedFileStream - ' - Using compressionStream As New GZipStream(compressedStream, CompressionMode.Compress) - originalStream.CopyTo(compressionStream) - compressionStream.Close() - Return compressedStream.ToArray() - End Using - End Using - End Using - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function DecompressAsync(data As Byte()) As Task(Of Byte()) - Return Await Task.Run(Function() As Byte() - Return Decompress(data) - End Function) - End Function - - Public Function Decompress(data As Byte()) As Byte() - Try - ' ByteArray in Stream umwandeln - Using compressedStream As New MemoryStream(data) - ' Ziel Stream erstellen - Using decompressedStream As New MemoryStream() - ' Gzip-Stream erstellen, der alle Daten komprimiert und zu compressedStream durchleitet - ' - ' > MemoryStream > GzipStream > MemoryStream - ' compressedStream --> decompressionStream --> decompressedStream - ' - Using decompressionStream As New GZipStream(compressedStream, CompressionMode.Decompress) - decompressionStream.CopyTo(decompressedStream) - Return decompressedStream.ToArray() - End Using - End Using - End Using - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function -End Class diff --git a/Encryption/Encryption.vb b/Encryption/Encryption.vb deleted file mode 100644 index 1ec620de..00000000 --- a/Encryption/Encryption.vb +++ /dev/null @@ -1,148 +0,0 @@ -Imports System.IO -Imports System.Security.Cryptography -Imports System.Text.Encoding -Imports DigitalData.Modules.Logging - -''' -''' https://stackoverflow.com/questions/10168240/encrypting-decrypting-a-string-in-c-sharp -''' -Public Class Encryption - ' This constant is used to determine the keysize of the encryption algorithm in bits. - ' We divide this by 8 within the code below to get the equivalent number of bytes. - Private Const KEY_SIZE As Integer = 256 - ' This constant determines the number of iterations for the password bytes generation function. - Private Const DERIVATION_ITERATIONS As Integer = 1000 - Private Const BLOCK_SIZE As Integer = 256 - - Private _paddingMode As PaddingMode = PaddingMode.Zeros - Private _cipherMode As CipherMode = CipherMode.CBC - - Private ReadOnly _password As String - Private _logger As Logger - - Public Sub New(LogConfig As LogConfig, Password As String) - _logger = LogConfig.GetLogger() - - If IsNothing(Password) Then - Throw New ArgumentNullException("Password") - End If - - _password = Password - End Sub - - Public Async Function EncryptAsync(PlainTextBytes As Byte()) As Task(Of Byte()) - Return Await Task.Run(Function() As Byte() - Return Encrypt(PlainTextBytes) - End Function) - End Function - - 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 - ' 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. - Dim oSaltStringBytes = Generate256BitsOfRandomEntropy() - Dim oIvStringBytes = Generate256BitsOfRandomEntropy() - Using oPassword = New Rfc2898DeriveBytes(_password, oSaltStringBytes, DERIVATION_ITERATIONS) - Dim oKeyBytes = oPassword.GetBytes(KEY_SIZE / 8) - Using oSymmetricKey = New RijndaelManaged() - oSymmetricKey.BlockSize = BLOCK_SIZE - oSymmetricKey.Mode = _cipherMode - oSymmetricKey.Padding = _paddingMode - - Using oEncryptor = oSymmetricKey.CreateEncryptor(oKeyBytes, oIvStringBytes) - Using oMemoryStream = New MemoryStream() - Using oCryptoStream = New CryptoStream(oMemoryStream, oEncryptor, CryptoStreamMode.Write) - oCryptoStream.Write(PlainTextBytes, 0, PlainTextBytes.Length) - oCryptoStream.FlushFinalBlock() - ' Create the final bytes as a concatenation of the random salt bytes, the random iv bytes and the cipher bytes. - Dim oCipherTextBytes = oSaltStringBytes - oCipherTextBytes = oCipherTextBytes.Concat(oIvStringBytes).ToArray() - oCipherTextBytes = oCipherTextBytes.Concat(oMemoryStream.ToArray()).ToArray() - oMemoryStream.Close() - oCryptoStream.Close() - Return oCipherTextBytes - End Using - End Using - End Using - End Using - End Using - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function DecryptAsync(CipherTextBytesWithSaltAndIv As Byte()) As Task(Of Byte()) - Return Await Task.Run(Function() As Byte() - Return Decrypt(CipherTextBytesWithSaltAndIv) - End Function) - End Function - - 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 - ' Get the complete stream of bytes that represent: - ' [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. - Dim oSaltStringBytes = CipherTextBytesWithSaltAndIv.Take(KEY_SIZE / 8).ToArray() - ' 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() - ' 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() - - Using oPassword = New Rfc2898DeriveBytes(_password, oSaltStringBytes, DERIVATION_ITERATIONS) - Dim oKeyBytes = oPassword.GetBytes(KEY_SIZE / 8) - Using oSymmetricKey = New RijndaelManaged() - oSymmetricKey.BlockSize = BLOCK_SIZE - oSymmetricKey.Mode = _cipherMode - oSymmetricKey.Padding = _paddingMode - Using oDecryptor = oSymmetricKey.CreateDecryptor(oKeyBytes, oIvStringBytes) - Using oMemoryStream = New MemoryStream(oCipherTextBytes) - Using oCryptoStream = New CryptoStream(oMemoryStream, oDecryptor, CryptoStreamMode.Read) - Dim oPlainTextBytes = New Byte(oCipherTextBytes.Length - 1) {} - Dim oDecryptedByteCount = oCryptoStream.Read(oPlainTextBytes, 0, oPlainTextBytes.Length) - oMemoryStream.Close() - oCryptoStream.Close() - Return oPlainTextBytes - End Using - End Using - End Using - End Using - End Using - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Shared Function Generate256BitsOfRandomEntropy() As Byte() - Dim oRandomBytes = New Byte(31) {} - ' 32 Bytes will give us 256 bits. - Using oRNGCsp = New RNGCryptoServiceProvider() - ' Fill the array with cryptographically secure random bytes. - oRNGCsp.GetBytes(oRandomBytes) - End Using - Return oRandomBytes - End Function -End Class diff --git a/Encryption/Encryption.vbproj b/Encryption/Encryption.vbproj deleted file mode 100644 index 2be3a057..00000000 --- a/Encryption/Encryption.vbproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - AnyCPU - {8A8F20FC-C46E-41AC-BEE7-218366CFFF99} - Library - DigitalData.Modules.Encryption - DigitalData.Modules.Encryption - 512 - Windows - v4.6.1 - true - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Encryption.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Encryption.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - True - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/Encryption/EncryptionLegacy.vb b/Encryption/EncryptionLegacy.vb deleted file mode 100644 index fd578da6..00000000 --- a/Encryption/EncryptionLegacy.vb +++ /dev/null @@ -1,85 +0,0 @@ -Imports System.Security.Cryptography -Imports System.Data -Imports System.Data.SqlClient - -Public Class EncryptionLegacy - Private TripleDes As New TripleDESCryptoServiceProvider - Private DEFAULT_KEY As String = "!35452didalog=" - Private SALT_VALUE As String = "!Didalog35452Heuchelheim=" - - Sub New() - TripleDes.Key = TruncateHash(DEFAULT_KEY, TripleDes.KeySize \ 8) - TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8) - End Sub - - Sub New(ByVal key As String) - ' Initialize the crypto provider. - TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8) - TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8) - End Sub - - Private Function TruncateHash(ByVal key As String, ByVal length As Integer) As Byte() - Dim sha1 As New SHA1CryptoServiceProvider - - ' Hash the key. - Dim keyBytes() As Byte = - System.Text.Encoding.Unicode.GetBytes(key) - Dim hash() As Byte = sha1.ComputeHash(keyBytes) - - ' Truncate or pad the hash. - ReDim Preserve hash(length - 1) - Return hash - End Function - - - Public Function EncryptData(ByVal plaintext As String) As String - Try - ' Convert the plaintext string to a byte array. - Dim plaintextBytes() As Byte = - System.Text.Encoding.Unicode.GetBytes(SALT_VALUE & plaintext) - - ' Create the stream. - Dim ms As New System.IO.MemoryStream - ' Create the encoder to write to the stream. - Dim encStream As New CryptoStream(ms, - TripleDes.CreateEncryptor(), - System.Security.Cryptography.CryptoStreamMode.Write) - - ' Use the crypto stream to write the byte array to the stream. - encStream.Write(plaintextBytes, 0, plaintextBytes.Length) - encStream.FlushFinalBlock() - - ' Convert the encrypted stream to a printable string. - Return Convert.ToBase64String(ms.ToArray) - Catch ex As Exception - Return plaintext - End Try - End Function - - 'Entschlüsselt die Zeichenfolge - - Public Function DecryptData(ByVal EncryptedText As String) As String - Try - ' Convert the encrypted text string to a byte array. - Dim oEncryptedBytes() As Byte = Convert.FromBase64String(EncryptedText) - - ' Create the stream. - Dim oMemoryStream As New System.IO.MemoryStream - ' Create the decoder to write to the stream. - Dim oCryptoStream As New CryptoStream(oMemoryStream, - TripleDes.CreateDecryptor(), - System.Security.Cryptography.CryptoStreamMode.Write) - - ' Use the crypto stream to write the byte array to the stream. - oCryptoStream.Write(oEncryptedBytes, 0, oEncryptedBytes.Length) - oCryptoStream.FlushFinalBlock() - Dim oResult = System.Text.Encoding.Unicode.GetString(oMemoryStream.ToArray) - oResult = oResult.Replace(SALT_VALUE, "") - ' Convert the plaintext stream to a string. - Return oResult - Catch ex As Exception - Return EncryptedText - End Try - End Function -End Class - diff --git a/Encryption/My Project/Application.Designer.vb b/Encryption/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Encryption/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Encryption/My Project/Application.myapp b/Encryption/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Encryption/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Encryption/My Project/AssemblyInfo.vb b/Encryption/My Project/AssemblyInfo.vb deleted file mode 100644 index 3056b6c6..00000000 --- a/Encryption/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/Encryption/My Project/Resources.Designer.vb b/Encryption/My Project/Resources.Designer.vb deleted file mode 100644 index 662b74ed..00000000 --- a/Encryption/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Encryption.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Encryption/My Project/Resources.resx b/Encryption/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Encryption/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Encryption/My Project/Settings.Designer.vb b/Encryption/My Project/Settings.Designer.vb deleted file mode 100644 index 06a993e2..00000000 --- a/Encryption/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Encryption.My.MySettings - Get - Return Global.DigitalData.Modules.Encryption.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Encryption/My Project/Settings.settings b/Encryption/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Encryption/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Encryption/packages.config b/Encryption/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Encryption/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/App.config b/GUIs.ClientSuite/App.config deleted file mode 100644 index 563695b9..00000000 --- a/GUIs.ClientSuite/App.config +++ /dev/null @@ -1,93 +0,0 @@ - - - - -
-
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - net.tcp://172.24.12.39:9000/DigitalData/Services/Main - - - - - net.tcp://172.24.12.67:9000/DigitalData/Services/Main - - - - - Skin/Office 2016 Colorful - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ApplicationEvents.vb b/GUIs.ClientSuite/ApplicationEvents.vb deleted file mode 100644 index e3e9c513..00000000 --- a/GUIs.ClientSuite/ApplicationEvents.vb +++ /dev/null @@ -1,43 +0,0 @@ -Imports DigitalData.Modules.Config -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Logging.LogConfig - -Namespace My - ' Für MyApplication sind folgende Ereignisse verfügbar: - ' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst. - ' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung mit einem Fehler beendet wird. - ' UnhandledException: Wird bei einem Ausnahmefehler ausgelöst. - ' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn die Anwendung bereits aktiv ist. - ' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst. - Partial Friend Class MyApplication - Private _Logger As Logger - - Private _BaseUserConfigPath As String = Windows.Forms.Application.UserAppDataPath - Private _BaseLocalUserConfigPath As String = Windows.Forms.Application.LocalUserAppDataPath - Private _BaseMachineConfigPath As String = Windows.Forms.Application.CommonAppDataPath - - Public Sub App_Startup() Handles Me.Startup - Dim oLogConfig As New LogConfig(PathType.AppData) - - ' 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, - _BaseLocalUserConfigPath, - _BaseMachineConfigPath) - - ' Layout files will be saved in %Appdata% (Roaming) so they will be syncronized with the user profile - Dim oUIConfigPath = IO.Path.Combine(_BaseUserConfigPath, ClassConstants.FOLDER_NAME_LAYOUT) - Dim oUIConfigManager As New ConfigManager(Of ClassUIConfig)(oLogConfig, oUIConfigPath, oUIConfigPath) - - LogConfig = oLogConfig - SystemConfigManager = oSystemConfigManager - UIConfigManager = oUIConfigManager - - _Logger = LogConfig.GetLogger() - _Logger.Debug("Starting Client Suite..") - End Sub - - Public Sub App_Shutdown(sender As Object, e As EventArgs) Handles Me.Shutdown - _Logger.Debug("Shutting down Client Suite..") - End Sub - End Class -End Namespace diff --git a/GUIs.ClientSuite/Base/BaseClass.vb b/GUIs.ClientSuite/Base/BaseClass.vb deleted file mode 100644 index 73c5d141..00000000 --- a/GUIs.ClientSuite/Base/BaseClass.vb +++ /dev/null @@ -1,22 +0,0 @@ -Imports DigitalData.Modules.Logging - - -Namespace Base - ''' - ''' Base Class which supplies a Logger/LogConfig - ''' - Public Class BaseClass - Protected LogConfig As LogConfig - Protected Logger As Logger - - Public Sub New(LogConfig As LogConfig) - Dim oClassName = Me.GetType().Name - - Me.LogConfig = LogConfig - Me.Logger = LogConfig.GetLogger(oClassName) - End Sub - End Class -End Namespace - - - diff --git a/GUIs.ClientSuite/Base/BaseForm.resx b/GUIs.ClientSuite/Base/BaseForm.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/Base/BaseForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/Base/BaseForm.vb b/GUIs.ClientSuite/Base/BaseForm.vb deleted file mode 100644 index 3287035d..00000000 --- a/GUIs.ClientSuite/Base/BaseForm.vb +++ /dev/null @@ -1,51 +0,0 @@ -Imports DevExpress.XtraBars.Ribbon -Imports DigitalData.Modules.Logging - -Namespace Base - ''' - ''' This BaseClass is used to provide common functionality like the Logger or ErrorHandler to all Forms - ''' To use it, create a form and change the `Inherits` statement in FormName.Designer.vb to this form, eg.: - ''' - ''' Partial Class frmExample - ''' Inherits BaseForm - ''' - ''' ... - ''' End Class - ''' - Public Class BaseForm - Inherits Form - - Private ReadOnly _ErrorHandler As ClassErrorHandler - - Protected ReadOnly Property Logger As Logger - - Public Sub New() - ' Get the full name of the inheriting form - ' so the log messages have the right classname - Dim oClassName = [GetType]().FullName - - ' My.LogConfig is undefined in the designer - Logger = My.LogConfig?.GetLogger(oClassName) - _ErrorHandler = New ClassErrorHandler(Logger) - - ' When you add something, be careful if it - ' depends on a global var like My.LogConfig - ' you might need to check for its existence with ? - End Sub - - Public Sub ShowErrorMessage(Exception As Exception) - _ErrorHandler.ShowErrorMessage(Exception) - End Sub - - Private Sub InitializeComponent() - SuspendLayout() - ' - 'BaseForm - ' - ClientSize = New Size(284, 261) - Name = "BaseForm" - - ResumeLayout(False) - End Sub - End Class -End Namespace diff --git a/GUIs.ClientSuite/Base/BaseRibbonForm.vb b/GUIs.ClientSuite/Base/BaseRibbonForm.vb deleted file mode 100644 index 290af614..00000000 --- a/GUIs.ClientSuite/Base/BaseRibbonForm.vb +++ /dev/null @@ -1,94 +0,0 @@ -Imports DevExpress.XtraBars.Docking -Imports DevExpress.XtraBars.Ribbon -Imports DigitalData.Modules.Logging - -Namespace Base - ''' - ''' This BaseClass is used to provide common functionality like the Logger or ErrorHandler to all Forms - ''' To use it, create a form and change the `Inherits` statement in FormName.Designer.vb to this form, eg.: - ''' - ''' Partial Class frmExample - ''' Inherits BaseRibbonForm - ''' - ''' ... - ''' End Class - ''' - ''' Only BaseRibbonForms can have panels attached to it! - ''' - Public Class BaseRibbonForm - Inherits RibbonForm - - Private ReadOnly _Logger As Logger - Private ReadOnly _ErrorHandler As ClassErrorHandler - - Protected ReadOnly Property Logger As Logger - Get - Return _Logger - End Get - End Property - - ''' - ''' Sets or gets the ribbon Page that will be shown when the window is visible - ''' - ''' - Public Property DefaultRibbonPage As RibbonPage - - Protected Overrides Sub OnLoad(e As EventArgs) - MyBase.OnLoad(e) - - If DefaultRibbonPage IsNot Nothing Then - Ribbon.SelectPage(DefaultRibbonPage) - End If - End Sub - - Protected Overrides Sub OnVisibleChanged(e As EventArgs) - MyBase.OnVisibleChanged(e) - - If Visible And DefaultRibbonPage IsNot Nothing Then - Ribbon.SelectPage(DefaultRibbonPage) - End If - End Sub - - Protected Overrides Sub OnActivated(e As EventArgs) - MyBase.OnVisibleChanged(e) - - If Visible And DefaultRibbonPage IsNot Nothing Then - Ribbon.SelectPage(DefaultRibbonPage) - End If - End Sub - - - Public Sub New() - ' Get the full name of the inheriting form - ' so the log messages have the right classname - Dim oClassName = [GetType]().FullName - - ' My.LogConfig is undefined in the designer - _Logger = My.LogConfig?.GetLogger(oClassName) - _ErrorHandler = New ClassErrorHandler(_Logger) - - ' When you add something, be careful if it - ' depends on a global var like My.LogConfig - ' you might need to check for its existence with ? - End Sub - - Public Sub ShowErrorMessage(Exception As Exception) - _ErrorHandler.ShowErrorMessage(Exception) - End Sub - - Public Sub ShowErrorMessage(ErrorMessage As String) - _ErrorHandler.ShowErrorMessage(New Exception(ErrorMessage)) - End Sub - - ''' - ''' Returns a list of panels that will be show when the form is opened. - ''' This can be overridden by all inheriting forms to extend the list of panels - ''' Panels will be created by PanelManager. - ''' - ''' - ''' A list of PanelInformation - Public Overridable Function GetInitialPanels() As List(Of PanelInfo) - Return New List(Of PanelInfo) - End Function - End Class -End Namespace diff --git a/GUIs.ClientSuite/ClassConfig.vb b/GUIs.ClientSuite/ClassConfig.vb deleted file mode 100644 index 1c6f2137..00000000 --- a/GUIs.ClientSuite/ClassConfig.vb +++ /dev/null @@ -1,50 +0,0 @@ -Imports System.Xml.Serialization -Imports DigitalData.Modules.Config.ConfigAttributes - -''' -''' --- User Config for EDMI --- -''' -''' All settings are simple properties that should have a default value where possible -''' -''' More complex properties (for example, ServiceConnection) are built from simple ones, -''' should be readonly and have an `XmlIgnore` Attribute to prevent them from being saved to the config file. -''' -''' They can make saving and loading complex properties more easy. -''' -''' The config is loaded with `ConfigManager` which is initialized in ApplicationEvents -''' to ensure that the config is loaded before any of the forms (that might need a config) -''' -''' The config object can be accessed in two ways: -''' -''' - My.ConfigManager.Config -''' - My.Config (which simply points to My.ConfigManager.Config) -''' -''' After changing a config value, My.ConfigManager.Save() must be called to persist the change in the config file -''' -Public Class ClassConfig - ' === Complex/Readonly Config Properties - - Public ReadOnly Property ServiceConnection As String - Get - If ServiceIP = String.Empty Or ServicePort = -1 Then - Return String.Empty - Else - Return $"net.tcp://{ServiceIP}:{ServicePort}/DigitalData/Services/Main" - End If - End Get - End Property - - ' === Simple/Actual Config Properties === - ' === Service Configuration === - - Public Property ServiceIP As String = String.Empty - - Public Property ServicePort As Integer = -1 - Public Property HeartbeatInterval As Integer = 5000 - - ' === Logging Configuration - Public Property LogDebug As Boolean = False - - ' === User Configuration === - Public Property UserLanguage As String = "de-DE" -End Class diff --git a/GUIs.ClientSuite/ClassConstants.vb b/GUIs.ClientSuite/ClassConstants.vb deleted file mode 100644 index da07d4d5..00000000 --- a/GUIs.ClientSuite/ClassConstants.vb +++ /dev/null @@ -1,25 +0,0 @@ -Public Class ClassConstants - Public Const SERVICE_MAX_MESSAGE_SIZE = 2147483647 - Public Const SERVICE_MAX_BUFFER_SIZE = 2147483647 - Public Const SERVICE_MAX_ARRAY_LENGTH = 2147483647 - Public Const SERVICE_MAX_STRING_LENGTH = 2147483647 - Public Const SERVICE_MAX_CONNECTIONS = 10000 - Public Const SERVICE_OPEN_TIMEOUT = 3 - - Public Const CONTROL_TEXTEDIT = "TextBox" - Public Const CONTROL_MEMOEDIT = "Memoedit" - Public Const CONTROL_COMBOEDIT = "Combobox" - Public Const CONTROL_CHECKEDIT = "Checkbox" - Public Const CONTROL_RADIOEDIT = "Radiobutton" - Public Const CONTROL_DATEEDIT = "Datepicker" - - Public Const FOLDER_NAME_LAYOUT = "Layout" - - Public Const ATTRIBUTE_ID_COLUMN = "RECORD_ID" - - Public Const DB_USER_ATTRIBUTE_ID = 1 - Public Const DB_USER_ATTRIBUTE_SYSKEY = "001" - - Public Const DB_GROUP_ATTRIBUTE_ID = 2 - Public Const DB_GROUP_ATTRIBUTE_SYSKEY = "002" -End Class diff --git a/GUIs.ClientSuite/ClassControlManager.vb b/GUIs.ClientSuite/ClassControlManager.vb deleted file mode 100644 index 6defb2f9..00000000 --- a/GUIs.ClientSuite/ClassControlManager.vb +++ /dev/null @@ -1,12 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Public Class ClassControlManager - Inherits BaseClass - - Public Sub New(LogConfig As LogConfig) - MyBase.New(LogConfig) - End Sub - - -End Class diff --git a/GUIs.ClientSuite/ClassControlPatcher.vb b/GUIs.ClientSuite/ClassControlPatcher.vb deleted file mode 100644 index 1f274957..00000000 --- a/GUIs.ClientSuite/ClassControlPatcher.vb +++ /dev/null @@ -1,40 +0,0 @@ -''' -''' Applies Modifications to a certain type of controls -''' -''' -''' Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) -''' oGridPatcher. -''' ProcessContainer(AddressOf ClassGridControl.DefaultGridSettings). -''' ProcessContainer(AddressOf ClassGridControl.ReadOnlyGridSettings). -''' ProcessControl(AddressOf ClassGridControl.CheckboxSelectGridSettings, GridNotAssignedToParent). -''' ProcessControl(AddressOf ClassGridControl.CheckboxSelectGridSettings, GridAssignedToParent) -''' -''' The control to Patch -Public Class ClassControlPatcher(Of T As Control) - Private ReadOnly _Container As Control - - Public Sub New(Container As Control) - _Container = Container - End Sub - - Public Function ProcessContainer(Action As Action(Of T, Control)) As ClassControlPatcher(Of T) - Return ProcessContainer(_Container, Action) - End Function - - Public Function ProcessControl(Action As Action(Of T, Control), ByVal Control As Control) As ClassControlPatcher(Of T) - Action(Control, _Container) - Return Me - End Function - Private Function ProcessContainer(ByVal Container As Control, Action As Action(Of T, Control)) As ClassControlPatcher(Of T) - For Each oControl As Control In Container.Controls - - If oControl.[GetType]() = GetType(T) Then - Action(oControl, Container) - Else - ProcessContainer(oControl, Action) - End If - Next - - Return Me - End Function -End Class diff --git a/GUIs.ClientSuite/ClassDragDrop.vb b/GUIs.ClientSuite/ClassDragDrop.vb deleted file mode 100644 index fbe05751..00000000 --- a/GUIs.ClientSuite/ClassDragDrop.vb +++ /dev/null @@ -1,84 +0,0 @@ -Imports DevExpress.XtraGrid.Views.Grid -Imports DevExpress.XtraGrid.Views.Grid.ViewInfo - -Public Class ClassDragDrop - Private downHitInfo As GridHitInfo = Nothing - - Public Sub New() - End Sub - - Public Sub AddGridView(view As GridView) - AddHandler view.MouseDown, AddressOf view_MouseDown - AddHandler view.MouseMove, AddressOf view_MouseMove - AddHandler view.GridControl.DragOver, AddressOf grid_DragOver - End Sub - - Private Sub view_MouseDown(sender As Object, e As MouseEventArgs) - Dim view As GridView = sender - downHitInfo = Nothing - Dim hitInfo As GridHitInfo = view.CalcHitInfo(New Point(e.X, e.Y)) - - If Control.ModifierKeys <> Keys.None Then - Return - End If - - If e.Button = MouseButtons.Left And hitInfo.RowHandle >= 0 Then - downHitInfo = hitInfo - End If - End Sub - - Private Sub view_MouseMove(sender As Object, e As MouseEventArgs) - Dim view As GridView = sender - Dim hitInfo As GridHitInfo = view.CalcHitInfo(New Point(e.X, e.Y)) - - If e.Button = MouseButtons.Left And Not IsNothing(downHitInfo) Then - Dim dragSize As Size = SystemInformation.DragSize - Dim dragRect As New Rectangle(New Point(downHitInfo.HitPoint.X - dragSize.Width / 2, downHitInfo.HitPoint.Y - dragSize.Height / 2), dragSize) - - ' DragRect ist ein kleines Rechteck, dessen Mitte der Punkt ist, wo die Maus geklickt wurde. - ' Es soll verhindern, dass durch schnelles Klicken unbeabsichtigt Drag'n'Drop Operationen initiiert werden - ' Siehe: https://msdn.microsoft.com/en-us/library/system.windows.forms.systeminformation.dragsize(v=vs.110).aspx - If Not dragRect.Contains(New Point(e.X, e.Y)) Then - ' dragDropData enhält eine einzelne Row oder den kompletten View, - ' jenachdem, wie die Drag'n'Drop Operation gestartet wurde. - Dim dragDropData As Object - - ' Wenn keine Zeile markiert ist - If downHitInfo.RowHandle < 0 Then - Exit Sub - End If - - ' Wenn zwar eine Zeile markiert ist, aber keine über die Checkbox angehakt wurde, - ' wird die markierte Zeile übergeben. - ' Wenn 1 oder n Zeilen über die Checkbox angehakt wurde, werden diese übergeben - If view.GetSelectedRows().Length = 0 Then - Dim row As DataRow = view.GetDataRow(downHitInfo.RowHandle) - dragDropData = row - Else - dragDropData = view - End If - - view.GridControl.DoDragDrop(dragDropData, DragDropEffects.Move) - downHitInfo = Nothing - - DevExpress.Utils.DXMouseEventArgs.GetMouseArgs(e).Handled = True - End If - End If - End Sub - - Private Sub grid_DragOver(sender As Object, e As DragEventArgs) - Dim multipleDropped As Boolean = e.Data.GetDataPresent(GetType(GridView)) - Dim singleDroppped As Boolean = e.Data.GetDataPresent(GetType(DataRow)) - - ' TODO: Check which kind of record was dragged - 'Dim singleUserDropped As Boolean = e.Data.GetDataPresent(GetType(TBDD_USERRow)) - 'Dim singleGroupDropped As Boolean = e.Data.GetDataPresent(GetType(DS_ChangeS.TBDD_GROUPSRow)) - - 'If multipleDropped Or singleUserDropped Or singleGroupDropped Then - If multipleDropped Or singleDroppped Then - e.Effect = DragDropEffects.Move - Else - e.Effect = DragDropEffects.None - End If - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/ClassErrorHandler.vb b/GUIs.ClientSuite/ClassErrorHandler.vb deleted file mode 100644 index bceded3f..00000000 --- a/GUIs.ClientSuite/ClassErrorHandler.vb +++ /dev/null @@ -1,60 +0,0 @@ -Imports System.Reflection -Imports DigitalData.Modules.Logging - -Public Class ClassErrorHandler - Private _Logger As Logger - - Private Const UNKNOWN_METHOD = "Unknown Method" - Private Const UNKNOWN_FORM = "Unknown Form" - - Public Sub New(Logger As Logger) - _Logger = Logger - End Sub - Public Sub ShowErrorMessage(Exception As Exception) - _Logger.Error(Exception) - MsgBox(GetMessage(Exception), MsgBoxStyle.Critical, "Unexpected Error") - End Sub - - Private Function GetMessage(Exception As Exception) - Dim oTargetSite = Exception.TargetSite - Dim oMethodName = GetMethodName(Exception) - Dim oFormName = GetFormName(Exception) - Dim oMessage As String = String.Empty - - oMessage &= $"Form: {oFormName}{vbNewLine}" - oMessage &= $"Method: {oMethodName}{vbNewLine}" - - If Not String.IsNullOrEmpty(Exception.StackTrace) Then - oMessage &= $"Message: {Exception.Message}{vbNewLine}{vbNewLine}" - End If - - If Not String.IsNullOrEmpty(Exception.StackTrace) Then - oMessage &= $"Stacktrace: {Exception.StackTrace}{vbNewLine}" - End If - - oMessage &= $"{vbNewLine}" - oMessage &= $"Please report this error to error@digitaldata.works" - - Return oMessage - End Function - - Private Function GetMethodName(Exception As Exception) As String - Dim oMethodName = Exception.TargetSite?.ReflectedType?.Name - - If oMethodName Is Nothing Then - Return UNKNOWN_METHOD - Else - Return oMethodName - End If - End Function - - Private Function GetFormName(Exception As Exception) As String - Dim oFormName = Exception.TargetSite?.ReflectedType?.ReflectedType?.Name - - If oFormName Is Nothing Then - Return UNKNOWN_FORM - Else - Return oFormName - End If - End Function -End Class diff --git a/GUIs.ClientSuite/ClassLayout.vb b/GUIs.ClientSuite/ClassLayout.vb deleted file mode 100644 index 3b6fa8d2..00000000 --- a/GUIs.ClientSuite/ClassLayout.vb +++ /dev/null @@ -1,66 +0,0 @@ -Imports System.IO -Imports DevExpress.XtraGrid.Views.Base - -''' -''' Helper Class to save DevExpress layouts -''' -''' Example: -''' -''' Layout 1 (for frmMain) -''' ---------------------------------------------- -''' | Component 1 Component 2 | -''' | |-------------| |----------------| | -''' | | MainGrid | | DocumentGrid | | -''' | |-------------| |----------------| | -''' | | -''' |--------------------------------------------- -''' -Public Class ClassLayout - Public Enum GroupName - LayoutMain - LayoutUserManager - End Enum - - Public Enum LayoutComponent - DockManager - DocumentManager - End Enum - - ''' - ''' Returns a path for the chosen Devexpress layout file - ''' - ''' The Group to which the the component belongs to. For example, a form could be a Layout - ''' The component to which the layout belongs to - ''' - Public Shared Function GetLayoutPath(Group As GroupName, Component As LayoutComponent) As String - Dim oFileName As String = $"{Group.ToString}-{Component.ToString}.xml" - Return Path.Combine(GetLayoutDirectory(), oFileName) - End Function - - ''' - ''' Returns a path for the chosen Devexpress layout file - ''' - ''' The Group to which the the component belongs to. For example, a form could be a Layout - ''' The component to which the layout belongs to - ''' - Public Shared Function GetLayoutPath(Group As GroupName, Component As String) As String - Dim oFileName As String = $"{Group.ToString}-{Component}.xml" - Return Path.Combine(GetLayoutDirectory(), oFileName) - End Function - - ''' - ''' Returns a path for the chosen Devexpress layout file - ''' - ''' The Group to which the the component belongs to. For example, a form could be a Layout - ''' The component to which the layout belongs to - ''' The sub component under the component - ''' - Public Shared Function GetLayoutPath(Group As GroupName, Component As String, SubComponent As String) As String - Dim oFileName As String = $"{Group.ToString}-{Component}-{SubComponent}.xml" - Return Path.Combine(GetLayoutDirectory(), oFileName) - End Function - - Public Shared Function GetLayoutDirectory() As String - Return Path.Combine(Application.UserAppDataPath, ClassConstants.FOLDER_NAME_LAYOUT) - End Function -End Class diff --git a/GUIs.ClientSuite/ClassPanelManager.vb b/GUIs.ClientSuite/ClassPanelManager.vb deleted file mode 100644 index a127fde9..00000000 --- a/GUIs.ClientSuite/ClassPanelManager.vb +++ /dev/null @@ -1,162 +0,0 @@ -Imports DevExpress.XtraBars.Docking -Imports DevExpress.XtraBars.Docking2010 -Imports DevExpress.XtraBars.Docking2010.Views -Imports DevExpress.XtraBars.Docking2010.Views.Tabbed -Imports DevExpress.XtraGrid -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Public Class PanelManager - Private _logger As Logger - Private _logConfig As LogConfig - - Private _documentManager As DocumentManager - Private _dockManager As DockManager - Private _view As TabbedView - - Private _documents As New List(Of Document) - - Public Sub New(LogConfig As LogConfig, DocumentManager As DocumentManager, DockManager As DockManager) - Try - Dim oView = DocumentManager.View - - _logConfig = LogConfig - _logger = LogConfig.GetLogger() - - _documentManager = DocumentManager - _dockManager = DockManager - _view = oView - - AddHandler oView.DocumentAdded, AddressOf View_DocumentAdded - AddHandler oView.DocumentClosed, AddressOf View_DocumentClosed - AddHandler oView.DocumentClosing, AddressOf View_DocumentClosing - AddHandler oView.DocumentActivated, AddressOf View_DocumentActivated - AddHandler oView.DocumentDeactivated, AddressOf View_DocumentDeactivated - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Sub - - Private Sub View_DocumentDeactivated(sender As Object, e As DocumentEventArgs) - Dim oDocument As BaseDocument = e.Document - - ' TODO: oDocument.Control can be nothing - If oDocument Is Nothing Then - Exit Sub - End If - - ' Maybe hide panels for this form - For Each oPanel As DockPanel In _dockManager.Panels - Dim oTag As Integer = oPanel.Tag - - If oTag = oDocument.Control.GetHashCode Then - oPanel.Hide() - End If - Next - End Sub - - Private Sub View_DocumentActivated(sender As Object, e As DocumentEventArgs) - Dim oDocument As BaseDocument = e.Document - Dim oHashcode As Integer = oDocument.Control.GetHashCode - - If oDocument Is Nothing Then - Exit Sub - End If - - ' Show Panels for this form - For Each oPanel As DockPanel In _dockManager.Panels - Dim oTag As Integer = oPanel.Tag - - If oTag = oHashcode Then - oPanel.Show() - End If - Next - End Sub - - Private Sub View_DocumentClosing(sender As Object, e As DocumentCancelEventArgs) - Dim oDocument As BaseDocument = e.Document - Dim oHashcode As Integer = oDocument.Control.GetHashCode - - If oDocument Is Nothing Then - Exit Sub - End If - - ' close all related panels. - For Each oPanel As DockPanel In _dockManager.Panels - Dim oTag As Integer = oPanel.Tag - - If oTag = oHashcode Then - oPanel.Close() - End If - Next - End Sub - - Private Sub View_DocumentClosed(sender As Object, e As DocumentEventArgs) - ' remove event handlers - _documents.Remove(e.Document) - End Sub - - Private Sub View_DocumentAdded(sender As Object, e As DocumentEventArgs) - ' Only Ribbon Forms can have panels! - If TypeOf e.Document.Control IsNot BaseRibbonForm Then - Exit Sub - End If - - ' Don't open panels for the same form twice! - If _documents.Contains(e.Document) Then - Exit Sub - End If - - _documents.Add(e.Document) - - Dim oForm As BaseRibbonForm = e.Document.Control - Dim oFormHash As Integer = oForm.GetHashCode - Dim oInitialPanelInfo As List(Of PanelInfo) = oForm.GetInitialPanels() - - ' TODO: determine how much panels at most can be added - ' check if initial panels should be loaded - For Each oPanelInfo As PanelInfo In oInitialPanelInfo - ' create the control - Dim oControl As BasePanel = GetPanelControl(oPanelInfo, oFormHash) - - If oControl Is Nothing Then - Dim oPanelType = oPanelInfo.PanelControl.GetType.ToString - _logger.Warn("Unknown panel type {0}", oPanelType) - Continue For - End If - - ' create panel - Dim oPanel = _dockManager.AddPanel(oPanelInfo.Position) - - ' configure panel - oPanel.Options.ShowCloseButton = oPanelInfo.CanBeClosed - oPanel.Options.ShowAutoHideButton = oPanelInfo.CanBePinned - oPanel.Options.ShowMaximizeButton = oPanelInfo.CanBeMaximized - oPanel.Options.AllowFloating = oPanelInfo.CanBeUndocked - - ' relation is defined through HashCode of form saved in Tag property of panel - ' - ' Form Panel - ' GetHashCode --------> Tag - ' - oPanel.Tag = oFormHash - oPanel.Text = oPanelInfo.Title - oPanel.Controls.Add(oControl) - Next - - ' TODO: establish communication channel to load panels on-demand - End Sub - - Private Function GetPanelControl(PanelInfo As PanelInfo, FormHash As Integer) As BasePanel - If TypeOf PanelInfo.PanelControl Is DocumentPanel Then - Dim oPanelControl As DocumentPanel = DirectCast(PanelInfo.PanelControl, DocumentPanel) - oPanelControl.Datasource = PanelInfo.Datasource - oPanelControl.Dock = DockStyle.Fill - - Return oPanelControl - Else - Return Nothing - End If - End Function -End Class diff --git a/GUIs.ClientSuite/ClassService.vb b/GUIs.ClientSuite/ClassService.vb deleted file mode 100644 index f64ec31f..00000000 --- a/GUIs.ClientSuite/ClassService.vb +++ /dev/null @@ -1,102 +0,0 @@ -Imports System.ServiceModel -Imports System.ServiceModel.Channels -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.EDMI.API -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.GUIs.ClientSuite.Base -Imports System.ServiceModel.Security - -Public Class ClassService - Inherits BaseClass - - Public Enum ConnectionTestResult - Successful - NotFound - EmptyURI - Authentication - Unknown - End Enum - - Public Sub New(LogConfig As LogConfig) - MyBase.New(LogConfig) - End Sub - - Public Function TestConnection() As ConnectionTestResult - Return TestConnection(My.SysConfig.ServiceConnection) - End Function - - Public Function TestConnection(EndpointURL As String) As ConnectionTestResult - Try - Dim oChannelFactory = GetChannelFactory(EndpointURL) - Dim oChannel = oChannelFactory.CreateChannel() - oChannel.OperationTimeout = New TimeSpan(0, 0, ClassConstants.SERVICE_OPEN_TIMEOUT) - oChannel.Open() - oChannel.Close() - - Return ConnectionTestResult.Successful - Catch ex As EndpointNotFoundException - Logger.Error(ex) - Return ConnectionTestResult.NotFound - Catch ex As Exception - Logger.Error(ex) - Return ConnectionTestResult.Unknown - End Try - End Function - - Public Async Function TestConnectionAsync() As Task(Of ConnectionTestResult) - Return Await TestConnectionAsync(My.SysConfig.ServiceConnection) - End Function - - Public Async Function TestConnectionAsync(EndpointURL As String) As Task(Of ConnectionTestResult) - Return Await Task.Factory.StartNew(Function() - Try - Dim oChannelFactory = GetChannelFactory(EndpointURL) - Dim oChannel = oChannelFactory.CreateChannel() - oChannel.OperationTimeout = New TimeSpan(0, 0, ClassConstants.SERVICE_OPEN_TIMEOUT) - oChannel.Open() - oChannel.Close() - - Return ConnectionTestResult.Successful - Catch ex As EndpointNotFoundException - Logger.Error(ex) - Return ConnectionTestResult.NotFound - Catch ex As UriFormatException - Logger.Error(ex) - Return ConnectionTestResult.EmptyURI - Catch ex As SecurityNegotiationException - Logger.Error(ex) - Return ConnectionTestResult.Authentication - Catch ex As Exception - Logger.Error(ex) - Return ConnectionTestResult.Unknown - End Try - End Function) - End Function - - Public Function GetChannelFactory() As IChannelFactory(Of IEDMIServiceChannel) - Return GetChannelFactory(My.SysConfig.ServiceConnection) - End Function - - Public Function GetChannelFactory(EndpointURL As String) As ChannelFactory(Of IEDMIServiceChannel) - Dim oBinding = GetBinding() - Dim oEndpoint = New EndpointAddress(EndpointURL) - - Dim oFactory As New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oEndpoint) - Return oFactory - End Function - - Private Function GetBinding() As NetTcpBinding - Dim oBinding As New NetTcpBinding() - oBinding.Security.Mode = SecurityMode.Transport - oBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows - oBinding.MaxReceivedMessageSize = ClassConstants.SERVICE_MAX_MESSAGE_SIZE - oBinding.MaxBufferSize = ClassConstants.SERVICE_MAX_BUFFER_SIZE - oBinding.MaxBufferPoolSize = ClassConstants.SERVICE_MAX_BUFFER_SIZE - oBinding.MaxConnections = ClassConstants.SERVICE_MAX_CONNECTIONS - oBinding.ReaderQuotas.MaxArrayLength = ClassConstants.SERVICE_MAX_ARRAY_LENGTH - oBinding.ReaderQuotas.MaxStringContentLength = ClassConstants.SERVICE_MAX_STRING_LENGTH - oBinding.OpenTimeout = New TimeSpan(0, 0, ClassConstants.SERVICE_OPEN_TIMEOUT) - - Return oBinding - End Function -End Class diff --git a/GUIs.ClientSuite/ClassUIConfig.vb b/GUIs.ClientSuite/ClassUIConfig.vb deleted file mode 100644 index 32606537..00000000 --- a/GUIs.ClientSuite/ClassUIConfig.vb +++ /dev/null @@ -1,14 +0,0 @@ -Imports System.Xml.Serialization - -Public Class ClassUIConfig - Public Property SkinName As String = "Office 2016 Colorful" - - Public Property EditFormConfigs As New List(Of EditFormConfig) - - Public Class EditFormConfig - Public Property SysKey As String - - Public Property SplitterDistance As Integer = 700 - Public Property SplitterHorizontal As Boolean = True - End Class -End Class diff --git a/GUIs.ClientSuite/ClassUtils.vb b/GUIs.ClientSuite/ClassUtils.vb deleted file mode 100644 index 69565a62..00000000 --- a/GUIs.ClientSuite/ClassUtils.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class ClassUtils - -End Class diff --git a/GUIs.ClientSuite/ClientSuite.vbproj b/GUIs.ClientSuite/ClientSuite.vbproj deleted file mode 100644 index 46e78f0f..00000000 --- a/GUIs.ClientSuite/ClientSuite.vbproj +++ /dev/null @@ -1,547 +0,0 @@ - - - - - Debug - AnyCPU - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7} - WinExe - DigitalData.GUIs.ClientSuite.My.MyApplication - DigitalData.GUIs.ClientSuite - ClientSuite - 512 - WindowsForms - v4.6.1 - true - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - - - AnyCPU - true - full - true - true - bin\Debug\ - ClientSuite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - ClientSuite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - My Project\app.manifest - - - - - - - - - - - - - - - - - - - - - ..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - ..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll - - - - ..\packages\NLog.4.7.0\lib\net45\NLog.dll - - - ..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll - - - - - - - - - - - - - - ..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll - True - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmDatasourceEditor.vb - - - Form - - - - - - - frmFormDesigner.vb - - - Form - - - frmWorkflowOverview.vb - - - Form - - - frmWorkflowRawData.vb - - - Form - - - frmWorkflowStep.vb - - - Form - - - frmSearch.vb - - - Form - - - BasePanel.vb - - - UserControl - - - DocumentPanel.vb - - - UserControl - - - - - - - - GridOverview.vb - - - UserControl - - - NavControlOverview.vb - - - UserControl - - - - - DockManagerTest.vb - - - Form - - - frmDocTest.vb - - - Form - - - - - - - frmStaticListEditor.vb - - - Form - - - Form - - - Form - - - frmFileTest.vb - - - Form - - - frmHome.vb - - - Form - - - frmMain.vb - - - Form - - - frmConfigService.vb - - - Form - - - frmSplash.vb - - - Form - - - frmConfigUser.vb - - - Form - - - frmObjectEditor.vb - - - Form - - - frmUserManager.vb - - - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - True - True - ControlProperties.resx - - - True - True - ControlProperties.en.resx - - - UserControlAssignment.vb - - - UserControl - - - ProcessManagerWidget.vb - - - UserControl - - - frmWorkflowTest.vb - - - Form - - - - - BaseForm.vb - - - frmDatasourceEditor.vb - - - frmFormDesigner.vb - - - frmWorkflowOverview.vb - - - frmWorkflowRawData.vb - - - frmWorkflowStep.vb - - - frmSearch.vb - - - DocumentPanel.vb - - - GridOverview.vb - - - NavControlOverview.vb - - - DockManagerTest.vb - - - frmDocTest.vb - - - frmStaticListEditor.vb - - - frmStaticListEditor.vb - - - frmFileTest.vb - - - frmHome.vb - - - frmMain.vb - - - frmConfigService.vb - - - frmSplash.vb - - - frmConfigUser.vb - - - frmObjectEditor.vb - - - frmUserManager.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - PublicResXFileCodeGenerator - ControlProperties.en.Designer.vb - My.Resources - - - PublicResXFileCodeGenerator - ControlProperties.Designer.vb - My.Resources - - - UserControlAssignment.vb - - - ProcessManagerWidget.vb - - - frmWorkflowTest.vb - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - PublicSettingsSingleFileGenerator - My - Settings.Designer.vb - - - Designer - - - - - Designer - - - - - - - - - - - - False - Microsoft .NET Framework 4.6.1 %28x86 und x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - - - - - - - - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {5ebacbfa-f11a-4bbf-8d02-91461f2293ed} - License - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {a8c3f298-76ab-4359-ab3c-986e313b4336} - EDMIService - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ClientSuite.vbproj.bak b/GUIs.ClientSuite/ClientSuite.vbproj.bak deleted file mode 100644 index adca8ce1..00000000 --- a/GUIs.ClientSuite/ClientSuite.vbproj.bak +++ /dev/null @@ -1,546 +0,0 @@ - - - - - Debug - AnyCPU - {406C95F4-9FEA-45B6-8385-1768CDBBF1A7} - WinExe - DigitalData.GUIs.ClientSuite.My.MyApplication - DigitalData.GUIs.ClientSuite - ClientSuite - 512 - WindowsForms - v4.6.1 - true - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - - - AnyCPU - true - full - true - true - bin\Debug\ - ClientSuite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - ClientSuite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - My Project\app.manifest - - - - - - - - - - - - - - - - - - - - ..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - ..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll - - - - ..\packages\NLog.4.7.0\lib\net45\NLog.dll - - - ..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll - - - - - - - - - - - - - - ..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll - True - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmDatasourceEditor.vb - - - Form - - - - - - - frmFormDesigner.vb - - - Form - - - frmWorkflowOverview.vb - - - Form - - - frmWorkflowRawData.vb - - - Form - - - frmWorkflowStep.vb - - - Form - - - frmSearch.vb - - - Form - - - BasePanel.vb - - - UserControl - - - DocumentPanel.vb - - - UserControl - - - - - - - - GridOverview.vb - - - UserControl - - - NavControlOverview.vb - - - UserControl - - - - - DockManagerTest.vb - - - Form - - - frmDocTest.vb - - - Form - - - - - - - frmStaticListEditor.vb - - - Form - - - Form - - - Form - - - frmFileTest.vb - - - Form - - - frmHome.vb - - - Form - - - frmMain.vb - - - Form - - - frmConfigService.vb - - - Form - - - frmSplash.vb - - - Form - - - frmConfigUser.vb - - - Form - - - frmObjectEditor.vb - - - Form - - - frmUserManager.vb - - - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - True - True - ControlProperties.resx - - - True - True - ControlProperties.en.resx - - - UserControlAssignment.vb - - - UserControl - - - ProcessManagerWidget.vb - - - UserControl - - - frmWorkflowTest.vb - - - Form - - - - - BaseForm.vb - - - frmDatasourceEditor.vb - - - frmFormDesigner.vb - - - frmWorkflowOverview.vb - - - frmWorkflowRawData.vb - - - frmWorkflowStep.vb - - - frmSearch.vb - - - DocumentPanel.vb - - - GridOverview.vb - - - NavControlOverview.vb - - - DockManagerTest.vb - - - frmDocTest.vb - - - frmStaticListEditor.vb - - - frmStaticListEditor.vb - - - frmFileTest.vb - - - frmHome.vb - - - frmMain.vb - - - frmConfigService.vb - - - frmSplash.vb - - - frmConfigUser.vb - - - frmObjectEditor.vb - - - frmUserManager.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - PublicResXFileCodeGenerator - ControlProperties.en.Designer.vb - My.Resources - - - PublicResXFileCodeGenerator - ControlProperties.Designer.vb - My.Resources - - - UserControlAssignment.vb - - - ProcessManagerWidget.vb - - - frmWorkflowTest.vb - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - PublicSettingsSingleFileGenerator - My - Settings.Designer.vb - - - Designer - - - - - Designer - - - - - - - - - - - - False - Microsoft .NET Framework 4.6.1 %28x86 und x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - - - - - - - - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {5ebacbfa-f11a-4bbf-8d02-91461f2293ed} - License - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {a8c3f298-76ab-4359-ab3c-986e313b4336} - EDMIService - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/Common/ClassCommon.vb b/GUIs.ClientSuite/Common/ClassCommon.vb deleted file mode 100644 index c725ef89..00000000 --- a/GUIs.ClientSuite/Common/ClassCommon.vb +++ /dev/null @@ -1,17 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class ClassCommon - Private _LogConfig As LogConfig - Private _Logger As Logger - - Public Commands As ClassCommonCommands - Public Views As ClassCommonViews - - Public Sub New(LogConfig As LogConfig) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - - Commands = New ClassCommonCommands(LogConfig) - Views = New ClassCommonViews(LogConfig) - End Sub -End Class diff --git a/GUIs.ClientSuite/Common/ClassCommonCommands.vb b/GUIs.ClientSuite/Common/ClassCommonCommands.vb deleted file mode 100644 index 21e36b7b..00000000 --- a/GUIs.ClientSuite/Common/ClassCommonCommands.vb +++ /dev/null @@ -1,81 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference - -Public Class ClassCommonCommands - Private _LogConfig As LogConfig - Private _Logger As Logger - - Public Sub New(LogConfig As LogConfig) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - End Sub - - Public Async Function FNIDB_RADM_NEW_USER2GROUP(UserId As Integer, GroupId As Integer) As Task(Of Integer) - Try - Dim oSQL = $"SELECT FNIDB_RADM_NEW_USER2GROUP({UserId},{GroupId}, '{Environment.UserName}') FROM RDB$DATABASE;" - Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"Add User To Group", False) - - Dim oResult = Await My.Channel.ReturnScalarAsync(oSQL) - Await My.Channel.CloseDatabaseRequestAsync() - - If oResult.OK Then - Return oResult.Scalar - Else - Return Nothing - End If - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function FNIDB_RADM_NEW_GROUP2GROUP(ParentGroupId As Integer, GroupId As Integer) As Task(Of Integer) - Try - Dim oSQL = $"SELECT FNIDB_RADM_NEW_GROUP2GROUP({GroupId},{ParentGroupId}, '{Environment.UserName}') FROM RDB$DATABASE;" - Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"Add Group To Group", False) - Dim oRecordIds As New List(Of Integer) - - Dim oResult = Await My.Channel.ReturnScalarAsync(oSQL) - Await My.Channel.CloseDatabaseRequestAsync() - - If oResult.OK Then - Return oResult.Scalar - Else - Return Nothing - End If - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function FNIDB_DELETE_RECORD_FINALLY(RecordId As Integer) As Task(Of Boolean) - Try - Dim oSQL = $"SELECT FNIDB_DELETE_RECORD_FINALLY({RecordId},'{Environment.UserName}') FROM RDB$DATABASE;" - Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"Delete Record", False) - - Dim oResult = Await My.Channel.ReturnScalarAsync(oSQL) - Await My.Channel.CloseDatabaseRequestAsync() - - Return oResult.OK - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function FNIDB_NEW_DOC_VALUE(DocumentId As Int64, Syskey As String, LanguageKey As String, Value As String) As Task(Of ScalarResult) - Try - Dim oSQL = $"SELECT FNIDB_NEW_DOC_VALUE({DocumentId}, '{Syskey}', '{LanguageKey}', '{My.Application.User.UserName}', '{Value}') FROM RDB$DATABASE;" - Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"Delete Record", False) - Dim oResult = Await My.Channel.ReturnScalarAsync(oSQL) - - Await My.Channel.CloseDatabaseRequestAsync() - - Return oResult - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function -End Class diff --git a/GUIs.ClientSuite/Common/ClassCommonViews.vb b/GUIs.ClientSuite/Common/ClassCommonViews.vb deleted file mode 100644 index 9cb0a812..00000000 --- a/GUIs.ClientSuite/Common/ClassCommonViews.vb +++ /dev/null @@ -1,76 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class ClassCommonViews - Private _LogConfig As LogConfig - Private _Logger As Logger - - Public Sub New(LogConfig As LogConfig) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - End Sub - - Public Async Function VWIDB_FORM_CONTROL(FormId As Int64) As Task(Of DataTable) - Try - My.Channel.CreateDatabaseRequest("Load Controls", True) - - Dim oSQL As String = $"SELECT * FROM VWIDB_FORM_CONTROL WHERE 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 - - Public Async Function VWIDB_CONTROL_DATA(ProcessRequestID As Int64) As Task(Of DataTable) - Try - My.Channel.CreateDatabaseRequest("Load Control Data", True) - Dim oSQL As String = $"SELECT * FROM VWIDB_CONTROL_DATA WHERE PROCESS_REQUESTID = {ProcessRequestID}" - 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 - - 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 diff --git a/GUIs.ClientSuite/ControlDefaults/GridControlDefaults.vb b/GUIs.ClientSuite/ControlDefaults/GridControlDefaults.vb deleted file mode 100644 index b37973db..00000000 --- a/GUIs.ClientSuite/ControlDefaults/GridControlDefaults.vb +++ /dev/null @@ -1,69 +0,0 @@ -Imports DevExpress.XtraGrid -Imports DevExpress.XtraGrid.Views.Grid - -Public Class GridControlDefaults - Public Shared Sub DefaultGridSettings(grid As GridControl, Container As Control) - For Each oView In grid.Views - If TypeOf oView Is GridView Then - DefaultGridViewSettings(oView) - End If - Next - End Sub - - Public Shared Sub ReadOnlyGridSettings(grid As GridControl, Container As Control) - For Each oView In grid.Views - If TypeOf oView Is GridView Then - ReadonlyGridViewSettings(oView, Container) - End If - Next - End Sub - - Public Shared Sub CheckboxSelectGridSettings(grid As GridControl, Container As Control) - For Each oView In grid.Views - If TypeOf oView Is GridView Then - CheckboxSelectGridViewSettings(oView) - End If - Next - End Sub - - ''' - ''' Set a view to readonly - ''' - Private Shared Sub ReadonlyGridViewSettings(ByRef View As GridView, Container As Control) - View.OptionsBehavior.Editable = False - View.OptionsBehavior.ReadOnly = True - End Sub - - ''' - ''' Set view Multiselect with checkboxes - ''' - Private Shared Sub CheckboxSelectGridViewSettings(ByRef View As GridView) - View.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect - View.OptionsSelection.MultiSelect = True - End Sub - - ''' - ''' Set default settings for view - ''' - Private Shared Sub DefaultGridViewSettings(ByRef View As GridView) - View.OptionsView.ShowAutoFilterRow = True - - ' Color Settings - View.OptionsView.EnableAppearanceEvenRow = True - View.Appearance.EvenRow.BackColor = Color.Aquamarine - View.Appearance.FilterPanel.BackColor = Color.Orange - - AddHandler View.RowStyle, AddressOf GridView_RowStyle - 'AddHandler View.Layout, AddressOf GridView_Layout - End Sub - - Private Shared Sub GridView_Layout(sender As Object, e As EventArgs) - 'Throw New NotImplementedException() - End Sub - - Private Shared Sub GridView_RowStyle(sender As Object, e As RowStyleEventArgs) - If e.RowHandle = GridControl.AutoFilterRowHandle Then - e.Appearance.BackColor = Color.LightSalmon - End If - End Sub -End Class diff --git a/GUIs.ClientSuite/ControlDefaults/TreeListDefaults.vb b/GUIs.ClientSuite/ControlDefaults/TreeListDefaults.vb deleted file mode 100644 index dc443370..00000000 --- a/GUIs.ClientSuite/ControlDefaults/TreeListDefaults.vb +++ /dev/null @@ -1,29 +0,0 @@ -Imports DevExpress.XtraTreeList - -Public Class TreeListDefaults - Public Shared Sub DefaultTreeListSettings(TreeList As TreeList, Container As Control) - With TreeList.OptionsView - .FocusRectStyle = DrawFocusRectStyle.None - .ShowColumns = False - .ShowHorzLines = False - .ShowIndentAsRowStyle = True - .ShowIndicator = False - .ShowVertLines = False - End With - - With TreeList.OptionsSelection - .EnableAppearanceFocusedCell = False - End With - - With TreeList.Appearance.Empty - .BackColor = Color.Transparent - .Options.UseBackColor = True - End With - - With TreeList.Appearance.Row - .BackColor = Color.Transparent - .Options.UseBackColor = True - End With - End Sub - -End Class diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Data.vb b/GUIs.ClientSuite/FormDesigner/Controls/Data.vb deleted file mode 100644 index 249723a1..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Data.vb +++ /dev/null @@ -1,41 +0,0 @@ -Imports DevExpress.XtraEditors -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Namespace Controls - Public Class ControlData - Inherits BaseClass - - Public Sub New(LogConfig As LogConfig) - MyBase.New(LogConfig) - End Sub - - Public Sub LoadControlData(ByRef Controls As List(Of BaseEdit), Data As DataTable) - Dim oCounter = 0 - - ' TODO: Do we need databinding and does it work with lookup control - For Each oControl As BaseEdit In Controls - Dim oBindingSource As New BindingSource(Data, Nothing) - - Select Case oControl.GetType - Case GetType(TextEdit) - oControl.DataBindings.Add("Text", oBindingSource, "CTRLVALUE", True, DataSourceUpdateMode.OnPropertyChanged) - Case GetType(MemoEdit) - oControl.DataBindings.Add("Text", oBindingSource, "CTRLVALUE", True, DataSourceUpdateMode.OnPropertyChanged) - Case GetType(DateEdit) - oControl.DataBindings.Add("Text", oBindingSource, "CTRLVALUE", True, DataSourceUpdateMode.OnPropertyChanged) - Case GetType(LookupControl2) - oControl.DataBindings.Add("Text", oBindingSource, "CTRLVALUE", True, DataSourceUpdateMode.OnPropertyChanged) - Case Else - - End Select - - oBindingSource.Position = oCounter - oCounter += 1 - Next - End Sub - End Class - -End Namespace - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/DatasourceEditor.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/DatasourceEditor.vb deleted file mode 100644 index 9d41137f..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/DatasourceEditor.vb +++ /dev/null @@ -1,48 +0,0 @@ -Imports System.ComponentModel -'Imports System.ComponentModel.Design -Imports System.Drawing.Design -'Imports System.Windows.Forms -Imports System.Windows.Forms.Design - -Namespace Controls.Editors - Public Class DatasourceEditor - Inherits UITypeEditor - - Public Overrides Function GetEditStyle(context As ITypeDescriptorContext) As UITypeEditorEditStyle - Return UITypeEditorEditStyle.Modal - End Function - - Public Overrides Function EditValue(context As ITypeDescriptorContext, provider As IServiceProvider, value As Object) As Object - Dim oService As IWindowsFormsEditorService = TryCast(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService) - Dim oDatasource As DatasourceType = DirectCast(value, DatasourceType) - - If oService IsNot Nothing AndAlso oDatasource IsNot Nothing Then - Using oForm As New frmDatasourceEditor() - oForm.Value = oDatasource - If oService.ShowDialog(oForm) = DialogResult.OK Then - - value = oForm.Value - End If - End Using - End If - - Return value - End Function - End Class - - Public Class DatasourceTypeConverter - Inherits TypeConverter - - Public Overrides Function ToString() As String - Return MyBase.ToString() - End Function - - ' Diese Funktion gibt den String zurück, der im PropertyGrid für den Benutzer sichtbar ist, kann ruhig etwas hübscher sein als foo;bar;baz - Public Overrides Function ConvertTo(context As ITypeDescriptorContext, culture As Globalization.CultureInfo, value As Object, destinationType As Type) As Object - Return "Datasource" - End Function - End Class - -End Namespace - - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/DatasourceType.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/DatasourceType.vb deleted file mode 100644 index 90849a36..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/DatasourceType.vb +++ /dev/null @@ -1,23 +0,0 @@ -Imports System.ComponentModel -Imports System.Drawing.Design -Imports DigitalData.GUIs.ClientSuite.Controls.Editors - -Namespace Controls.Editors - - - Public Class DatasourceType - Public Property StaticList As New List(Of String) - Public Property SQLCommand As String = String.Empty - - Public Sub New() - End Sub - - Public Sub New(Values As List(Of String)) - _StaticList = Values - End Sub - - Public Sub New(SQLCommand As String) - _SQLCommand = SQLCommand - End Sub - End Class -End Namespace diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/StaticListEditor.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/StaticListEditor.vb deleted file mode 100644 index bf53f438..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/StaticListEditor.vb +++ /dev/null @@ -1,72 +0,0 @@ -Imports System.ComponentModel -'Imports System.ComponentModel.Design -Imports System.Drawing.Design -'Imports System.Windows.Forms -Imports System.Windows.Forms.Design - -Public Class StaticListEditor - Inherits UITypeEditor - - Public Overrides Function GetEditStyle(context As ITypeDescriptorContext) As UITypeEditorEditStyle - Return UITypeEditorEditStyle.Modal - End Function - - Public Overrides Function EditValue(context As ITypeDescriptorContext, provider As IServiceProvider, value As Object) As Object - Dim oService As IWindowsFormsEditorService = TryCast(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService) - Dim oStaticListString As String = DirectCast(value, StaticList).Value - - If oService IsNot Nothing AndAlso oStaticListString IsNot Nothing Then - Using oForm As New frmStaticListEditor() - oStaticListString = oStaticListString.Replace(";", vbNewLine) ' Semikolon zu vbNewLine - oForm.Value = oStaticListString - If oService.ShowDialog(oForm) = DialogResult.OK Then - Dim oString As String = oForm.Value.Replace(vbNewLine, ";") ' vbNewLine zu Semikolon - Dim oStaticList As New StaticList(oString) - value = oStaticList - End If - End Using - End If - - Return value - End Function -End Class - - - -Public Class StaticList - - Public Sub New() - _Value = String.Empty - End Sub - - Public Sub New(Value As String) - _Value = Value - End Sub - - Public Property Value As String -End Class - -Public Class StaticListTypeConverter - Inherits TypeConverter - - - Public Overrides Function ToString() As String - Return MyBase.ToString() - End Function - - ' Diese Funktion gibt den String zurück, der im PropertyGrid für den Benutzer sichtbar ist, kann ruhig etwas hübscher sein als foo;bar;baz - Public Overrides Function ConvertTo(context As ITypeDescriptorContext, culture As Globalization.CultureInfo, value As Object, destinationType As Type) As Object - Dim oStaticListString = String.Empty - - If TypeOf value Is StaticList Then - Dim oStaticList As StaticList = DirectCast(value, StaticList) - oStaticListString = oStaticList.Value - ElseIf TypeOf value Is String Then - oStaticListString = value - Else - MsgBox("Error in Converting StaticList value") - End If - - Return oStaticListString.Replace(";", ", ") - End Function -End Class diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.Designer.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.Designer.vb deleted file mode 100644 index bdc56032..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ - _ -Partial Class frmDatasourceEditor - Inherits DevExpress.XtraEditors.XtraForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.PanelEditor = New DevExpress.XtraEditors.PanelControl() - Me.btnSave = New System.Windows.Forms.Button() - CType(Me.PanelEditor, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'PanelEditor - ' - Me.PanelEditor.Dock = System.Windows.Forms.DockStyle.Top - Me.PanelEditor.Location = New System.Drawing.Point(0, 0) - Me.PanelEditor.Name = "PanelEditor" - Me.PanelEditor.Size = New System.Drawing.Size(800, 394) - Me.PanelEditor.TabIndex = 0 - ' - 'btnSave - ' - Me.btnSave.Location = New System.Drawing.Point(713, 415) - Me.btnSave.Name = "btnSave" - Me.btnSave.Size = New System.Drawing.Size(75, 23) - Me.btnSave.TabIndex = 1 - Me.btnSave.Text = "Speichern" - Me.btnSave.UseVisualStyleBackColor = True - ' - 'frmDatasourceEditor - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.btnSave) - Me.Controls.Add(Me.PanelEditor) - Me.Name = "frmDatasourceEditor" - Me.Text = "frmDatasourceEditor" - CType(Me.PanelEditor, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents PanelEditor As DevExpress.XtraEditors.PanelControl - Friend WithEvents btnSave As Button -End Class diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.resx b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.vb deleted file mode 100644 index 2fac159a..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmDatasourceEditor.vb +++ /dev/null @@ -1,50 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Controls.Editors -Imports ScintillaNET - -Public Class frmDatasourceEditor - Public Value As DatasourceType - - Private _Editor As Scintilla - - Private Sub frmDatasourceEditor_Load(sender As Object, e As EventArgs) Handles MyBase.Load - - - _Editor = New Scintilla() With { - .Dock = DockStyle.Fill, - .BorderStyle = BorderStyle.None, - .Text = Value.SQLCommand - } - - _Editor.StyleResetDefault() - With _Editor.Styles(Style.Default) - .Font = "Consolas" - .Size = 10 - End With - _Editor.StyleClearAll() - _Editor.Lexer = Lexer.Sql - - _Editor.Styles(Style.LineNumber).ForeColor = Color.FromArgb(255, 128, 128, 128) - _Editor.Styles(Style.LineNumber).BackColor = Color.FromArgb(255, 228, 228, 228) - _Editor.Styles(Style.Sql.Comment).ForeColor = Color.Green - _Editor.Styles(Style.Sql.CommentLine).ForeColor = Color.Green - _Editor.Styles(Style.Sql.CommentLineDoc).ForeColor = Color.Green - _Editor.Styles(Style.Sql.Number).ForeColor = Color.Maroon - _Editor.Styles(Style.Sql.Word).ForeColor = Color.Blue - _Editor.Styles(Style.Sql.Word2).ForeColor = Color.Fuchsia - _Editor.Styles(Style.Sql.User1).ForeColor = Color.Gray - _Editor.Styles(Style.Sql.User2).ForeColor = Color.FromArgb(255, 0, 128, 192) - _Editor.Styles(Style.Sql.String).ForeColor = Color.Red - _Editor.Styles(Style.Sql.Character).ForeColor = Color.Red - _Editor.Styles(Style.Sql.[Operator]).ForeColor = Color.Black - _Editor.SetKeywords(0, "add alter as authorization backup begin bigint binary bit break browse bulk by cascade case catch check checkpoint close clustered column commit compute constraint containstable continue create current cursor cursor database date datetime datetime2 datetimeoffset dbcc deallocate decimal declare default delete deny desc disk distinct distributed double drop dump else end errlvl escape except exec execute exit external fetch file fillfactor float for foreign freetext freetexttable from full function goto grant group having hierarchyid holdlock identity identity_insert identitycol if image index insert int intersect into key kill lineno load merge money national nchar nocheck nocount nolock nonclustered ntext numeric nvarchar of off offsets on open opendatasource openquery openrowset openxml option order over percent plan precision primary print proc procedure public raiserror read readtext real reconfigure references replication restore restrict return revert revoke rollback rowcount rowguidcol rule save schema securityaudit select set setuser shutdown smalldatetime smallint smallmoney sql_variant statistics table table tablesample text textsize then time timestamp tinyint to top tran transaction trigger truncate try union unique uniqueidentifier update updatetext use user values varbinary varchar varying view waitfor when where while with writetext xml go ") - _Editor.SetKeywords(1, "ascii cast char charindex ceiling coalesce collate contains convert current_date current_time current_timestamp current_user floor isnull max min nullif object_id session_user substring system_user tsequal ") - _Editor.SetKeywords(4, "all and any between cross exists in inner is join left like not null or outer pivot right some unpivot ( ) * ") - _Editor.SetKeywords(5, "sys objects sysobjects ") - - PanelEditor.Controls.Add(_Editor) - End Sub - - Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click - Value.SQLCommand = _Editor.Text - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.Designer.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.Designer.vb deleted file mode 100644 index e9eb2566..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.Designer.vb +++ /dev/null @@ -1,81 +0,0 @@ - _ -Partial Class frmStaticListEditor - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmStaticListEditor)) - Me.txtValue = New System.Windows.Forms.TextBox() - Me.Button1 = New System.Windows.Forms.Button() - Me.Label1 = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - Me.Button2 = New System.Windows.Forms.Button() - Me.SuspendLayout() - ' - 'txtValue - ' - resources.ApplyResources(Me.txtValue, "txtValue") - Me.txtValue.Name = "txtValue" - ' - 'Button1 - ' - resources.ApplyResources(Me.Button1, "Button1") - Me.Button1.DialogResult = System.Windows.Forms.DialogResult.OK - Me.Button1.Name = "Button1" - Me.Button1.UseVisualStyleBackColor = True - ' - 'Label1 - ' - resources.ApplyResources(Me.Label1, "Label1") - Me.Label1.Name = "Label1" - ' - 'Label2 - ' - resources.ApplyResources(Me.Label2, "Label2") - Me.Label2.Name = "Label2" - ' - 'Button2 - ' - resources.ApplyResources(Me.Button2, "Button2") - Me.Button2.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Button2.Name = "Button2" - Me.Button2.UseVisualStyleBackColor = True - ' - 'frmStaticListEditor - ' - resources.ApplyResources(Me, "$this") - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Controls.Add(Me.Button2) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.Button1) - Me.Controls.Add(Me.txtValue) - Me.Name = "frmStaticListEditor" - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents txtValue As System.Windows.Forms.TextBox - Friend WithEvents Button1 As System.Windows.Forms.Button - Friend WithEvents Label1 As System.Windows.Forms.Label - Friend WithEvents Label2 As System.Windows.Forms.Label - Friend WithEvents Button2 As System.Windows.Forms.Button -End Class diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.en-US.resx b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.en-US.resx deleted file mode 100644 index 9250f51e..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.en-US.resx +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Save - - - - 159, 13 - - - Enter Listelements (One per line) - - - Cancel - - - Edit Static List - - \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.resx b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.resx deleted file mode 100644 index d2989568..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.resx +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - 3 - - - 1 - - - - 6, 13 - - - Listenelemente eingeben (Ein Element pro Zeile) - - - 12, 235 - - - Statische Liste bearbeiten - - - - Bottom, Right - - - 234, 13 - - - Top, Bottom, Left, Right - - - 75, 23 - - - Button2 - - - True - - - Bottom, Left - - - 12, 227 - - - 3 - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 0, 13 - - - 431, 230 - - - 4 - - - $this - - - $this - - - 75, 23 - - - 0, 0 - - - $this - - - $this - - - 1 - - - 0 - - - CenterScreen - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 518, 265 - - - 516, 224 - - - Label1 - - - Label2 - - - 2 - - - 4 - - - 0 - - - txtValue - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Button1 - - - Speichern - - - True - - - 350, 230 - - - 2 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bottom, Right - - - frmStaticListEditor - - - Abbrechen - - - True - - \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.vb b/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.vb deleted file mode 100644 index 4ca1596e..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Editors/frmStaticListEditor.vb +++ /dev/null @@ -1,19 +0,0 @@ -Public Class frmStaticListEditor - - Public Property Value() As String - Get - Return txtValue.Text - End Get - Set(value As String) - txtValue.Text = value - End Set - End Property - - Private Sub frmStaticListEditor_Load(sender As Object, e As EventArgs) Handles MyBase.Load - 'noop - End Sub - - Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Loader.vb b/GUIs.ClientSuite/FormDesigner/Controls/Loader.vb deleted file mode 100644 index 85e2309b..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Loader.vb +++ /dev/null @@ -1,106 +0,0 @@ -Imports DevExpress.XtraEditors -Imports DevExpress.XtraLayout -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Namespace Controls - Public Class ControlLoader - Inherits BaseClass - - Private _LayoutControlGroup As LayoutControlGroup - Private _LayoutControls As List(Of BaseEdit) - - Public ReadOnly Property LayoutControls As List(Of BaseEdit) - Get - If _LayoutControls Is Nothing Then - _LayoutControls = New List(Of BaseEdit) - End If - Return _LayoutControls - End Get - End Property - - Public Sub New(LogConfig As LogConfig, LayoutControlGroup As LayoutControlGroup) - MyBase.New(LogConfig) - _LayoutControlGroup = LayoutControlGroup - End Sub - - Public Sub AddControl(Name As String, Value As String, LayoutControlGroup As LayoutControlGroup) - Dim oTextEdit As New SimpleLabelItem() With { - .Name = Name, - .Text = Name & " - " & Value - } - - LayoutControlGroup.AddItem(oTextEdit) - End Sub - Public Sub AddControl(Name As String, Value As String) - AddControl(Name, Value, _LayoutControlGroup) - End Sub - - Public Sub AddSeparator(LayoutControlGroup As LayoutControlGroup) - Dim oSeparator = New SimpleSeparator() - - LayoutControlGroup.AddItem(oSeparator) - End Sub - Public Sub AddSeparator() - AddSeparator(_LayoutControlGroup) - End Sub - - Public Sub LoadControls(Datatable As DataTable, LayoutControlGroup As LayoutControlGroup) - For Each oRow As DataRow In Datatable.Rows - Dim oCaption As String = oRow.Item("COLNAME") - Dim oControlType As String = oRow.Item("CTRLTYPE") - Dim oControlId As Int64 = oRow.Item("RECORD_ID") - Dim oEditor As BaseEdit = CreateLayoutControl(oControlType, oControlId, oControlId) - - If oEditor Is Nothing Then - Continue For - End If - - oEditor.Tag = New Metadata() With { - .Id = oControlId, - .Type = oControlType, - .Caption = oCaption - } - - LayoutControls.Add(oEditor) - LayoutControlGroup.AddItem(oCaption, oEditor) - Next - - LayoutControlGroup.AddItem(New EmptySpaceItem()) - End Sub - Public Sub LoadControls(Datatable As DataTable) - LoadControls(Datatable, _LayoutControlGroup) - End Sub - - Public Function CreateLayoutControl(Type As String, Name As String, Id As Int64) - Dim oEditor As BaseEdit = Nothing - - Logger.Debug("Create new Control of type {0} with name {1}", Type, Name) - - Select Case Type - Case ClassConstants.CONTROL_TEXTEDIT - Dim oTextEdit As New TextEdit() With {.Name = Name} - oEditor = oTextEdit - Case ClassConstants.CONTROL_MEMOEDIT - Dim oMemoEdit As New MemoEdit() With {.Name = Name} - oEditor = oMemoEdit - Case ClassConstants.CONTROL_DATEEDIT - Dim oDateEdit As New DateEdit() With {.Name = Name} - oEditor = oDateEdit - Case ClassConstants.CONTROL_CHECKEDIT - Dim oCheckEdit As New CheckEdit() With {.Name = Name} - oEditor = oCheckEdit - Case ClassConstants.CONTROL_COMBOEDIT - Dim oComboEdit As New LookupControl2() With {.Name = Name} - oEditor = oComboEdit - Case Else - oEditor = Nothing - End Select - - Return oEditor - End Function - End Class - -End Namespace - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Localization.vb b/GUIs.ClientSuite/FormDesigner/Controls/Localization.vb deleted file mode 100644 index 8f3b697c..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Localization.vb +++ /dev/null @@ -1,30 +0,0 @@ -Imports System.ComponentModel - -Namespace Controls - Public Class Localization - Private Shared Function Lookup(key As String) - Try - Return My.Resources.ControlProperties.ResourceManager.GetString(key) - Catch ex As Exception - Return key - End Try - End Function - - Public Class LocalizedDescriptionAttribute - Inherits DescriptionAttribute - - Public Sub New(key As String) - MyBase.New(Lookup(key)) - End Sub - End Class - - Public Class LocalizedCategoryAttribute - Inherits CategoryAttribute - - Public Sub New(key As String) - MyBase.New(Lookup(key)) - End Sub - End Class - End Class -End Namespace - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Metadata.vb b/GUIs.ClientSuite/FormDesigner/Controls/Metadata.vb deleted file mode 100644 index ee1ced53..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Metadata.vb +++ /dev/null @@ -1,9 +0,0 @@ -Namespace Controls - Public Class Metadata - Public Id As Int64 - Public Type As String - Public Caption As String - End Class -End Namespace - - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Properties/BaseProperties.vb b/GUIs.ClientSuite/FormDesigner/Controls/Properties/BaseProperties.vb deleted file mode 100644 index d8086c57..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Properties/BaseProperties.vb +++ /dev/null @@ -1,17 +0,0 @@ -Imports System.ComponentModel -Imports DigitalData.GUIs.ClientSuite.Controls.Localization - -Namespace Controls.Properties - Public MustInherit Class BaseProperties - - - - <[ReadOnly](True)> - Public Property Id As Integer - - - - Public Property Name As String - End Class -End Namespace - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Properties/CheckboxProperties.vb b/GUIs.ClientSuite/FormDesigner/Controls/Properties/CheckboxProperties.vb deleted file mode 100644 index c2512d04..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Properties/CheckboxProperties.vb +++ /dev/null @@ -1,7 +0,0 @@ -Namespace Controls.Properties - Public Class CheckboxProperties - Inherits BaseProperties - End Class -End Namespace - - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Properties/ComboboxProperties.vb b/GUIs.ClientSuite/FormDesigner/Controls/Properties/ComboboxProperties.vb deleted file mode 100644 index 0b9a6e18..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Properties/ComboboxProperties.vb +++ /dev/null @@ -1,14 +0,0 @@ -Imports System.ComponentModel -Imports DigitalData.GUIs.ClientSuite.Controls.Editors -Imports DigitalData.GUIs.ClientSuite.Controls.Localization - -Namespace Controls.Properties - Public Class ComboboxProperties - Inherits BaseProperties - - - - Public Property Datasource As DatasourceType - End Class -End Namespace - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Properties/DatepickerProperties.vb b/GUIs.ClientSuite/FormDesigner/Controls/Properties/DatepickerProperties.vb deleted file mode 100644 index 4b3213ad..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Properties/DatepickerProperties.vb +++ /dev/null @@ -1,6 +0,0 @@ -Namespace Controls.Properties - Public Class DatepickerProperties - Inherits BaseProperties - End Class - -End Namespace \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Properties/MemoeditProperties.vb b/GUIs.ClientSuite/FormDesigner/Controls/Properties/MemoeditProperties.vb deleted file mode 100644 index 14c155d6..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Properties/MemoeditProperties.vb +++ /dev/null @@ -1,7 +0,0 @@ -Namespace Controls.Properties - Public Class MemoeditProperties - Inherits BaseProperties - End Class -End Namespace - - diff --git a/GUIs.ClientSuite/FormDesigner/Controls/Properties/TextboxProperties.vb b/GUIs.ClientSuite/FormDesigner/Controls/Properties/TextboxProperties.vb deleted file mode 100644 index 0dd09224..00000000 --- a/GUIs.ClientSuite/FormDesigner/Controls/Properties/TextboxProperties.vb +++ /dev/null @@ -1,7 +0,0 @@ -Namespace Controls.Properties - Public Class TextboxProperties - Inherits BaseProperties - End Class -End Namespace - - diff --git a/GUIs.ClientSuite/FormDesigner/frmFormDesigner.Designer.vb b/GUIs.ClientSuite/FormDesigner/frmFormDesigner.Designer.vb deleted file mode 100644 index 7eb54990..00000000 --- a/GUIs.ClientSuite/FormDesigner/frmFormDesigner.Designer.vb +++ /dev/null @@ -1,320 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmFormDesigner - Inherits BaseRibbonForm - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFormDesigner)) - Me.FormDesignerRibbon = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.BarCheckEditLayout = New DevExpress.XtraBars.BarCheckItem() - Me.BarCheckEditControls = New DevExpress.XtraBars.BarCheckItem() - Me.RibbonPageCategory1 = New DevExpress.XtraBars.Ribbon.RibbonPageCategory() - Me.RibbonPageFormDesigner = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.LayoutControlMain = New DevExpress.XtraLayout.LayoutControl() - Me.LayoutControlGroupMain = New DevExpress.XtraLayout.LayoutControlGroup() - Me.ToolboxControlMain = New DevExpress.XtraToolbox.ToolboxControl() - Me.ToolboxGroupMain = New DevExpress.XtraToolbox.ToolboxGroup() - Me.ToolboxItemTextbox = New DevExpress.XtraToolbox.ToolboxItem() - Me.ToolboxItemMemoedit = New DevExpress.XtraToolbox.ToolboxItem() - Me.ToolboxItemDatepicker = New DevExpress.XtraToolbox.ToolboxItem() - Me.ToolboxItemCombobox = New DevExpress.XtraToolbox.ToolboxItem() - Me.ToolboxItemCheckbox = New DevExpress.XtraToolbox.ToolboxItem() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.XtraTabControlMain = New DevExpress.XtraTab.XtraTabControl() - Me.XtraTabPageControls = New DevExpress.XtraTab.XtraTabPage() - Me.XtraTabPageProperties = New DevExpress.XtraTab.XtraTabPage() - Me.PropertyGridControlMain = New DevExpress.XtraVerticalGrid.PropertyGridControl() - Me.SplitContainerMain = New DevExpress.XtraEditors.SplitContainerControl() - CType(Me.FormDesignerRibbon, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlMain, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlGroupMain, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.XtraTabControlMain, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabControlMain.SuspendLayout() - Me.XtraTabPageControls.SuspendLayout() - Me.XtraTabPageProperties.SuspendLayout() - CType(Me.PropertyGridControlMain, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerMain.SuspendLayout() - Me.SuspendLayout() - ' - 'FormDesignerRibbon - ' - Me.FormDesignerRibbon.ExpandCollapseItem.Id = 0 - Me.FormDesignerRibbon.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.FormDesignerRibbon.ExpandCollapseItem, Me.BarCheckEditLayout, Me.BarCheckEditControls}) - Me.FormDesignerRibbon.Location = New System.Drawing.Point(0, 0) - Me.FormDesignerRibbon.MaxItemId = 6 - Me.FormDesignerRibbon.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always - Me.FormDesignerRibbon.Name = "FormDesignerRibbon" - Me.FormDesignerRibbon.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategory1}) - Me.FormDesignerRibbon.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] - Me.FormDesignerRibbon.Size = New System.Drawing.Size(870, 146) - Me.FormDesignerRibbon.StatusBar = Me.RibbonStatusBar - ' - 'BarCheckEditLayout - ' - Me.BarCheckEditLayout.Caption = "Layout bearbeiten" - Me.BarCheckEditLayout.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio - Me.BarCheckEditLayout.GroupIndex = 1 - Me.BarCheckEditLayout.Id = 3 - Me.BarCheckEditLayout.ImageOptions.Image = CType(resources.GetObject("BarCheckEditLayout.ImageOptions.Image"), System.Drawing.Image) - Me.BarCheckEditLayout.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckEditLayout.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarCheckEditLayout.Name = "BarCheckEditLayout" - ' - 'BarCheckEditControls - ' - Me.BarCheckEditControls.BindableChecked = True - Me.BarCheckEditControls.Caption = "Elemente bearbeiten" - Me.BarCheckEditControls.Checked = True - Me.BarCheckEditControls.CheckStyle = DevExpress.XtraBars.BarCheckStyles.Radio - Me.BarCheckEditControls.GroupIndex = 1 - Me.BarCheckEditControls.Id = 5 - Me.BarCheckEditControls.ImageOptions.Image = CType(resources.GetObject("BarCheckEditControls.ImageOptions.Image"), System.Drawing.Image) - Me.BarCheckEditControls.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckEditControls.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarCheckEditControls.Name = "BarCheckEditControls" - ' - 'RibbonPageCategory1 - ' - Me.RibbonPageCategory1.Name = "RibbonPageCategory1" - Me.RibbonPageCategory1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageFormDesigner}) - Me.RibbonPageCategory1.Text = "Form Designer" - ' - 'RibbonPageFormDesigner - ' - Me.RibbonPageFormDesigner.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2}) - Me.RibbonPageFormDesigner.Name = "RibbonPageFormDesigner" - Me.RibbonPageFormDesigner.Text = "Allgemein" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarCheckEditControls) - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarCheckEditLayout) - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 508) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.FormDesignerRibbon - Me.RibbonStatusBar.Size = New System.Drawing.Size(870, 21) - ' - 'LayoutControlMain - ' - Me.LayoutControlMain.AllowCustomization = False - Me.LayoutControlMain.AllowDrop = True - Me.LayoutControlMain.BackColor = System.Drawing.Color.Transparent - Me.LayoutControlMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.LayoutControlMain.Location = New System.Drawing.Point(0, 0) - Me.LayoutControlMain.Name = "LayoutControlMain" - Me.LayoutControlMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(706, 255, 650, 400) - Me.LayoutControlMain.OptionsCustomizationForm.ShowLayoutTreeView = False - Me.LayoutControlMain.OptionsCustomizationForm.ShowLoadButton = False - Me.LayoutControlMain.OptionsCustomizationForm.ShowSaveButton = False - Me.LayoutControlMain.Root = Me.LayoutControlGroupMain - Me.LayoutControlMain.Size = New System.Drawing.Size(655, 362) - Me.LayoutControlMain.TabIndex = 2 - Me.LayoutControlMain.Text = "LayoutControl1" - ' - 'LayoutControlGroupMain - ' - Me.LayoutControlGroupMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] - Me.LayoutControlGroupMain.GroupBordersVisible = False - Me.LayoutControlGroupMain.Name = "Root" - Me.LayoutControlGroupMain.Size = New System.Drawing.Size(655, 362) - Me.LayoutControlGroupMain.TextVisible = False - ' - 'ToolboxControlMain - ' - Me.ToolboxControlMain.Caption = "Form Controls" - Me.ToolboxControlMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.ToolboxControlMain.Groups.Add(Me.ToolboxGroupMain) - Me.ToolboxControlMain.Location = New System.Drawing.Point(0, 0) - Me.ToolboxControlMain.Name = "ToolboxControlMain" - Me.ToolboxControlMain.OptionsMinimizing.AllowMinimizing = False - Me.ToolboxControlMain.OptionsView.ShowMenuButton = False - Me.ToolboxControlMain.OptionsView.ShowToolboxCaption = True - Me.ToolboxControlMain.SelectedGroup = Me.ToolboxGroupMain - Me.ToolboxControlMain.SelectedGroupIndex = 0 - Me.ToolboxControlMain.Size = New System.Drawing.Size(201, 337) - Me.ToolboxControlMain.TabIndex = 4 - Me.ToolboxControlMain.Text = "Form Controls" - ' - 'ToolboxGroupMain - ' - Me.ToolboxGroupMain.BeginGroupCaption = "" - Me.ToolboxGroupMain.Caption = "Basis Controls" - Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemTextbox) - Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemMemoedit) - Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemDatepicker) - Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemCombobox) - Me.ToolboxGroupMain.Items.Add(Me.ToolboxItemCheckbox) - Me.ToolboxGroupMain.Name = "ToolboxGroupMain" - ' - 'ToolboxItemTextbox - ' - Me.ToolboxItemTextbox.BeginGroupCaption = Nothing - Me.ToolboxItemTextbox.Caption = "Textbox" - Me.ToolboxItemTextbox.ImageOptions.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.TextBox - Me.ToolboxItemTextbox.Name = "ToolboxItemTextbox" - Me.ToolboxItemTextbox.Tag = "Textbox" - ' - 'ToolboxItemMemoedit - ' - Me.ToolboxItemMemoedit.BeginGroupCaption = Nothing - Me.ToolboxItemMemoedit.Caption = "Multiline Textbox" - Me.ToolboxItemMemoedit.ImageOptions.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.TextBox - Me.ToolboxItemMemoedit.Name = "ToolboxItemMemoedit" - Me.ToolboxItemMemoedit.Tag = "Memoedit" - ' - 'ToolboxItemDatepicker - ' - Me.ToolboxItemDatepicker.BeginGroupCaption = Nothing - Me.ToolboxItemDatepicker.Caption = "Datepicker" - Me.ToolboxItemDatepicker.ImageOptions.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.DatePicker - Me.ToolboxItemDatepicker.Name = "ToolboxItemDatepicker" - Me.ToolboxItemDatepicker.Tag = "Datepicker" - ' - 'ToolboxItemCombobox - ' - Me.ToolboxItemCombobox.BeginGroupCaption = Nothing - Me.ToolboxItemCombobox.Caption = "Combobox" - Me.ToolboxItemCombobox.ImageOptions.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.ComboBox - Me.ToolboxItemCombobox.Name = "ToolboxItemCombobox" - Me.ToolboxItemCombobox.Tag = "Combobox" - ' - 'ToolboxItemCheckbox - ' - Me.ToolboxItemCheckbox.BeginGroupCaption = Nothing - Me.ToolboxItemCheckbox.Caption = "Checkbox" - Me.ToolboxItemCheckbox.ImageOptions.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.CheckBox - Me.ToolboxItemCheckbox.Name = "ToolboxItemCheckbox" - Me.ToolboxItemCheckbox.Tag = "Checkbox" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'XtraTabControlMain - ' - Me.XtraTabControlMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.XtraTabControlMain.HeaderLocation = DevExpress.XtraTab.TabHeaderLocation.Bottom - Me.XtraTabControlMain.Location = New System.Drawing.Point(0, 0) - Me.XtraTabControlMain.Name = "XtraTabControlMain" - Me.XtraTabControlMain.SelectedTabPage = Me.XtraTabPageControls - Me.XtraTabControlMain.Size = New System.Drawing.Size(203, 362) - Me.XtraTabControlMain.TabIndex = 7 - Me.XtraTabControlMain.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPageControls, Me.XtraTabPageProperties}) - ' - 'XtraTabPageControls - ' - Me.XtraTabPageControls.Controls.Add(Me.ToolboxControlMain) - Me.XtraTabPageControls.Name = "XtraTabPageControls" - Me.XtraTabPageControls.Size = New System.Drawing.Size(201, 337) - Me.XtraTabPageControls.Text = "Controls" - ' - 'XtraTabPageProperties - ' - Me.XtraTabPageProperties.Controls.Add(Me.PropertyGridControlMain) - Me.XtraTabPageProperties.Name = "XtraTabPageProperties" - Me.XtraTabPageProperties.PageEnabled = False - Me.XtraTabPageProperties.Size = New System.Drawing.Size(201, 337) - Me.XtraTabPageProperties.Text = "Eigenschaften" - ' - 'PropertyGridControlMain - ' - Me.PropertyGridControlMain.Cursor = System.Windows.Forms.Cursors.Hand - Me.PropertyGridControlMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.PropertyGridControlMain.Location = New System.Drawing.Point(0, 0) - Me.PropertyGridControlMain.Name = "PropertyGridControlMain" - Me.PropertyGridControlMain.Size = New System.Drawing.Size(201, 337) - Me.PropertyGridControlMain.TabIndex = 0 - ' - 'SplitContainerMain - ' - Me.SplitContainerMain.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 - Me.SplitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerMain.Location = New System.Drawing.Point(0, 146) - Me.SplitContainerMain.Name = "SplitContainerMain" - Me.SplitContainerMain.Panel1.Controls.Add(Me.LayoutControlMain) - Me.SplitContainerMain.Panel1.Text = "PanelMain" - Me.SplitContainerMain.Panel2.Controls.Add(Me.XtraTabControlMain) - Me.SplitContainerMain.Panel2.MinSize = 200 - Me.SplitContainerMain.Panel2.Text = "PanelSidebar" - Me.SplitContainerMain.Size = New System.Drawing.Size(870, 362) - Me.SplitContainerMain.SplitterPosition = 655 - Me.SplitContainerMain.TabIndex = 3 - Me.SplitContainerMain.Text = "SplitContainerControl1" - ' - 'frmFormDesigner - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(870, 529) - Me.Controls.Add(Me.SplitContainerMain) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.FormDesignerRibbon) - Me.DefaultRibbonPage = Me.RibbonPageFormDesigner - Me.Name = "frmFormDesigner" - Me.Ribbon = Me.FormDesignerRibbon - Me.ShowIcon = False - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "Form Designer" - CType(Me.FormDesignerRibbon, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlMain, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlGroupMain, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.XtraTabControlMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabControlMain.ResumeLayout(False) - Me.XtraTabPageControls.ResumeLayout(False) - Me.XtraTabPageProperties.ResumeLayout(False) - CType(Me.PropertyGridControlMain, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerMain.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents FormDesignerRibbon As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents LayoutControlMain As DevExpress.XtraLayout.LayoutControl - Friend WithEvents LayoutControlGroupMain As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents ToolboxControlMain As DevExpress.XtraToolbox.ToolboxControl - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents ToolboxGroupMain As DevExpress.XtraToolbox.ToolboxGroup - Friend WithEvents ToolboxItemTextbox As DevExpress.XtraToolbox.ToolboxItem - Friend WithEvents ToolboxItemMemoedit As DevExpress.XtraToolbox.ToolboxItem - Friend WithEvents ToolboxItemDatepicker As DevExpress.XtraToolbox.ToolboxItem - Friend WithEvents XtraTabControlMain As DevExpress.XtraTab.XtraTabControl - Friend WithEvents XtraTabPageControls As DevExpress.XtraTab.XtraTabPage - Friend WithEvents XtraTabPageProperties As DevExpress.XtraTab.XtraTabPage - Friend WithEvents PropertyGridControlMain As DevExpress.XtraVerticalGrid.PropertyGridControl - Friend WithEvents SplitContainerMain As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents ToolboxItemCombobox As DevExpress.XtraToolbox.ToolboxItem - Friend WithEvents ToolboxItemCheckbox As DevExpress.XtraToolbox.ToolboxItem - Friend WithEvents BarCheckEditLayout As DevExpress.XtraBars.BarCheckItem - Friend WithEvents RibbonPageCategory1 As DevExpress.XtraBars.Ribbon.RibbonPageCategory - Friend WithEvents RibbonPageFormDesigner As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents BarCheckEditControls As DevExpress.XtraBars.BarCheckItem -End Class diff --git a/GUIs.ClientSuite/FormDesigner/frmFormDesigner.resx b/GUIs.ClientSuite/FormDesigner/frmFormDesigner.resx deleted file mode 100644 index 13eb9095..00000000 --- a/GUIs.ClientSuite/FormDesigner/frmFormDesigner.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAE91dGxpbmU7Qm9yZGVyO0NvbG9y - O0U+EsAAAACKSURBVDhPlZLLDYAgEETpiTpsylCUvXj3bgGyOsgSQmb5bPJCMtk3GNWJCGXbDwv/ITix - 50IIMkLnvG6INT4VzEwl6xMkpgrYzXoOC4isoOR/B9aMZGAW5KVW1Lx8FVqQl1pR8yIDq0CXuzLoFahk - yiAV1Dwx1gVdGdDfeAUarkDDFWi4Ag3nEfcCPknObrfoZGIAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAE91dGxpbmU7Qm9yZGVyO0NvbG9y - O0U+EsAAAAENSURBVFhHvZLRDYMwDETZiTm6VMVQHaIb9L//nSC9izBK4QhpYjnSE2Dhe0fVKaXkzu3+ - UMwgrfA+v3tY9oDhO0r5VoLvyoBREH4lN2YZ4AUFBaqAXvQA4aX0tMS0LEvyws7r/TmIgCox5wKe50Ru - lCV4nVwLXMgNK5H/pG4FGuVkkxOXAr1yMlygV47VzFCBkS/H+liBETlBRH+BUTlBTF8BDzlBVLXAc73+ - HC85Qdx/v4CnnCCyvYC3nCC2vQAWLLyU7WmWE8T+XcAk5XM5l6IzENtVwGT7ZympgdjuAia1qxQQrF6S - C9TgQZji8stNUkMOI5HDSOQwEjmMRA4jkcNI5DASOYxEDuNI0xdxpHdLr3Yd9wAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAgdEVYdFRpdGxlAEVkaXQ7QmFycztSaWJib247U3Rh - bmRhcmQ7MBPD2wAAAIxJREFUOE+tkksOgCAMBbkT5/BShjXn4S7GrXu3LqytsVgawk9fMsGkvEENBgA+ - ER+cc1DgfFYry0QiKIXm3vtVS7oEmENLugQSTJ9A5hcBMi6gDAuWbYdpDoztEnBZSpoF6mTCNgsyZab+ - CaUyUv+JtDn3+jgyuKYCDYVLQhKvcSLQoOCGBVym0kswFwCbJlIIfiUIAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAgdEVYdFRpdGxlAEVkaXQ7QmFycztSaWJib247U3Rh - bmRhcmQ7MBPD2wAAASZJREFUWEftkkEOgjAQRbkTtzDxUoYtR+Ae3sWwMmHvVhf1f2SStozQNm3ZMMkL - MDDzn0hjjDkUtVkTtVkTtVkTtUm6rjORPMEFcHaFlkHUJsEQDuHF5/u+/wzDcMGlv8u5tlGbJEVgHEdV - opoAS5OoKsDyJaoLsBaJNyUOEWCJBO6tPkxBbZIUgQ0mPKLmqE3CwVy17FJz1CY5BU6BnAKs6+3eAh7l - fM5ZBQs5BR7TS4JtWtwqL2CF229gBlVWQPnljgSqnMCf105EotxfsBEulPsIQ8MJHs8rEBNOMJJPICWc - OKE2MQKx4QRjM06oDQX2YKWEE8lxQlPAMgnxg6W/Cicy7yxLAcvssKBwIvPOshSwzA/dDScy7yxLActs - gaBw8ps3zRc04YO9+3Zd0gAAAABJRU5ErkJggg== - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/FormDesigner/frmFormDesigner.vb b/GUIs.ClientSuite/FormDesigner/frmFormDesigner.vb deleted file mode 100644 index bb946667..00000000 --- a/GUIs.ClientSuite/FormDesigner/frmFormDesigner.vb +++ /dev/null @@ -1,197 +0,0 @@ -Imports DevExpress.XtraEditors -Imports DevExpress.XtraToolbox -Imports DevExpress.XtraLayout -Imports DevExpress.XtraLayout.Customization -Imports DevExpress.XtraLayout.Dragging -Imports DevExpress.XtraLayout.HitInfo -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.GUIs.ClientSuite.Controls -Imports DigitalData.GUIs.ClientSuite.Controls.Properties -Imports DigitalData.GUIs.ClientSuite.Controls.Editors -Imports DigitalData.Modules.Language - -Public Class frmFormDesigner - Private _FormId As Int64 - Private _ControlLoader As ControlLoader - -#Region "Drag Helper" - Private _DragItem As BaseLayoutItem - Private _Window As DragFrameWindow - Private _DragController As LayoutItemDragController = Nothing - - Protected ReadOnly Property DragFrameWindow As DragFrameWindow - Get - If _Window Is Nothing Then - _Window = New DragFrameWindow(LayoutControlMain) - End If - Return _Window - End Get - End Property - - Private Sub ShowDragHelper() - DragFrameWindow.Visible = True - End Sub - - Private Sub HideDragHelper() - DragFrameWindow.Reset() - DragFrameWindow.Visible = False - End Sub - - Private Sub UpdateDragHelper(p As Point) - p = LayoutControlMain.PointToClient(p) - _DragController = New LayoutItemDragController(_DragItem, LayoutControlMain.Root, New Point(p.X, p.Y)) - DragFrameWindow.DragController = _DragController - End Sub -#End Region -#Region "Drag Drop Actions" - Private Sub ToolboxControlMain_DragItemDrop(sender As Object, e As ToolboxDragItemDropEventArgs) Handles ToolboxControlMain.DragItemDrop - Dim oPosition As Point = LayoutControlMain.PointToClient(MousePosition) - Dim oHitInfo As BaseLayoutItemHitInfo = LayoutControlMain.CalcHitInfo(oPosition) - Dim oLayoutControl As LayoutControlItem = DirectCast(_DragItem, LayoutControlItem) - Dim oControlName As String = oLayoutControl.Tag & Utils.ShortGUID() - Dim oControl As Control = _ControlLoader.CreateLayoutControl(oLayoutControl.Tag, oControlName, 0) - - If oLayoutControl IsNot Nothing Then - HideDragHelper() - oLayoutControl.Control = oControl - - If (_DragController IsNot Nothing AndAlso _DragItem IsNot Nothing) Then - If (_DragItem.Owner Is Nothing OrElse _DragItem.Parent Is Nothing) Then - _DragController.DragWildItem() - Else - _DragController.Drag() - End If - Focus() - End If - HideDragHelper() - _DragItem = Nothing - End If - End Sub - - Private Sub ToolboxControlMain_DragItemStart(sender As Object, e As ToolboxDragItemStartEventArgs) Handles ToolboxControlMain.DragItemStart - _DragItem = CreateLayoutControlItem(e.Item.Tag) - End Sub - - Private Sub ToolboxControlMain_DragItemMove(sender As Object, e As DevExpress.XtraToolbox.ToolboxDragItemMoveEventArgs) Handles ToolboxControlMain.DragItemMove - If (CType(LayoutControlMain, ILayoutControl)).EnableCustomizationMode OrElse Me.DesignMode Then Return - Dim oFormPosition As Point = PointToClient(e.Location) - Dim oLayoutPosition As Point = LayoutControlMain.PointToClient(e.Location) - - If LayoutControlMain.Bounds.Contains(oFormPosition) Then - - If Not DragFrameWindow.Visible Then - DragFrameWindow.Visible = True - Return - End If - - UpdateDragHelper(e.Location) - Else - DragFrameWindow.Visible = False - End If - End Sub -#End Region - - Public Sub New() - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _FormId = 104 - End Sub - - Public Sub New(FormId As Int64) - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _FormId = FormId - End Sub - - Private Async Sub frmFormDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load - FormDesignerRibbon.SelectPage(RibbonPageFormDesigner) - - _ControlLoader = New ControlLoader(My.LogConfig, LayoutControlGroupMain) - - Dim oTable = Await My.Common.Views.VWIDB_FORM_CONTROL(_FormId) - - _ControlLoader.LoadControls(oTable) - End Sub - - Private Function CreateLayoutControlItem(Id As String) As LayoutControlItem - Return New LayoutControlItem() With {.Tag = Id} - End Function - - Private Sub LayoutControlMain_ItemSelectionChanged(sender As Object, e As EventArgs) Handles LayoutControlMain.ItemSelectionChanged - ' only layout control items have properties - If TypeOf sender IsNot LayoutControlItem Then - Exit Sub - End If - - Dim oLayoutItem As LayoutControlItem = DirectCast(sender, LayoutControlItem) - Dim oSelectedControl As BaseEdit = oLayoutItem.Control - Dim oMetadata As New Metadata - - ' Don't load properties for layout items like splitters, separators, etc. - If oLayoutItem.Control Is Nothing Then - Exit Sub - End If - - - oMetadata = oSelectedControl.Tag - - Select Case oSelectedControl.GetType - Case GetType(MemoEdit) - PropertyGridControlMain.SelectedObject = New MemoeditProperties() With { - .Id = oMetadata.Id, - .Name = oMetadata.Caption - } - Case GetType(TextEdit) - PropertyGridControlMain.SelectedObject = New TextboxProperties() With { - .Id = oMetadata.Id, - .Name = oMetadata.Caption - } - Case GetType(LookupControl2) - PropertyGridControlMain.SelectedObject = New ComboboxProperties() With { - .Datasource = New DatasourceType, - .Id = oMetadata.Id, - .Name = oMetadata.Caption - } - Case GetType(DateEdit) - PropertyGridControlMain.SelectedObject = New DatepickerProperties() With { - .Id = oMetadata.Id, - .Name = oMetadata.Caption - } - Case GetType(CheckEdit) - PropertyGridControlMain.SelectedObject = New CheckboxProperties() With { - .Id = oMetadata.Id, - .Name = oMetadata.Caption - } - End Select - End Sub - - Private Sub BarCheckEditLayout_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarCheckEditLayout.CheckedChanged - If BarCheckEditLayout.Checked Then - LayoutControlMain.ShowCustomizationForm() - XtraTabPageProperties.PageEnabled = True - XtraTabPageControls.PageEnabled = False - XtraTabControlMain.SelectedTabPage = XtraTabPageProperties - End If - End Sub - - Private Sub BarCheckEditControls_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarCheckEditControls.CheckedChanged - If BarCheckEditControls.Checked Then - LayoutControlMain.HideCustomizationForm() - XtraTabPageProperties.PageEnabled = False - XtraTabPageControls.PageEnabled = True - XtraTabControlMain.SelectedTabPage = XtraTabPageControls - End If - End Sub - - Private Sub LayoutControlMain_HideCustomization(sender As Object, e As EventArgs) Handles LayoutControlMain.HideCustomization - BarCheckEditControls.Checked = True - End Sub - - Private Sub LayoutControlMain_ShowCustomization(sender As Object, e As EventArgs) Handles LayoutControlMain.ShowCustomization - BarCheckEditLayout.Checked = True - End Sub - - -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/FormUserManager/UserControlAssignment.Designer.vb b/GUIs.ClientSuite/FormUserManager/UserControlAssignment.Designer.vb deleted file mode 100644 index 1a5fe2dd..00000000 --- a/GUIs.ClientSuite/FormUserManager/UserControlAssignment.Designer.vb +++ /dev/null @@ -1,237 +0,0 @@ - -Partial Class UserControlAssignment - Inherits System.Windows.Forms.UserControl - - 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Me.SplitterMain = New DevExpress.XtraEditors.SplitContainerControl() - Me.GridNotAssignedToParent = New DevExpress.XtraGrid.GridControl() - Me.ViewNotAssignedToParent = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl() - Me.labelNotAssignedToParent = New System.Windows.Forms.Label() - Me.SplitterInner = New DevExpress.XtraEditors.SplitContainerControl() - Me.GridParentList = New DevExpress.XtraGrid.GridControl() - Me.ViewParentList = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl() - Me.labelParentList = New System.Windows.Forms.Label() - Me.GridAssignedToParent = New DevExpress.XtraGrid.GridControl() - Me.ViewAssignedToParent = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.PanelControl3 = New DevExpress.XtraEditors.PanelControl() - Me.labelAssignedToParent = New System.Windows.Forms.Label() - CType(Me.SplitterMain, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitterMain.SuspendLayout() - CType(Me.GridNotAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ViewNotAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelControl2.SuspendLayout() - CType(Me.SplitterInner, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitterInner.SuspendLayout() - CType(Me.GridParentList, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ViewParentList, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelControl1.SuspendLayout() - CType(Me.GridAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ViewAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.PanelControl3, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelControl3.SuspendLayout() - Me.SuspendLayout() - ' - 'SplitterMain - ' - Me.SplitterMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitterMain.Location = New System.Drawing.Point(0, 0) - Me.SplitterMain.Name = "SplitterMain" - Me.SplitterMain.Panel1.Controls.Add(Me.GridNotAssignedToParent) - Me.SplitterMain.Panel1.Controls.Add(Me.PanelControl2) - Me.SplitterMain.Panel1.Text = "Panel1" - Me.SplitterMain.Panel2.Controls.Add(Me.SplitterInner) - Me.SplitterMain.Panel2.Text = "Panel2" - Me.SplitterMain.Size = New System.Drawing.Size(892, 447) - Me.SplitterMain.SplitterPosition = 284 - Me.SplitterMain.TabIndex = 0 - Me.SplitterMain.Text = "SplitContainerControl1" - ' - 'GridNotAssignedToParent - ' - Me.GridNotAssignedToParent.AllowDrop = True - Me.GridNotAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridNotAssignedToParent.Location = New System.Drawing.Point(0, 41) - Me.GridNotAssignedToParent.MainView = Me.ViewNotAssignedToParent - Me.GridNotAssignedToParent.Name = "GridNotAssignedToParent" - Me.GridNotAssignedToParent.Size = New System.Drawing.Size(284, 406) - Me.GridNotAssignedToParent.TabIndex = 2 - Me.GridNotAssignedToParent.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewNotAssignedToParent}) - ' - 'ViewNotAssignedToParent - ' - Me.ViewNotAssignedToParent.GridControl = Me.GridNotAssignedToParent - Me.ViewNotAssignedToParent.Name = "ViewNotAssignedToParent" - ' - 'PanelControl2 - ' - Me.PanelControl2.Controls.Add(Me.labelNotAssignedToParent) - Me.PanelControl2.Dock = System.Windows.Forms.DockStyle.Top - Me.PanelControl2.Location = New System.Drawing.Point(0, 0) - Me.PanelControl2.Name = "PanelControl2" - Me.PanelControl2.Size = New System.Drawing.Size(284, 41) - Me.PanelControl2.TabIndex = 1 - ' - 'labelNotAssignedToParent - ' - Me.labelNotAssignedToParent.BackColor = System.Drawing.Color.Transparent - Me.labelNotAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill - Me.labelNotAssignedToParent.Location = New System.Drawing.Point(2, 2) - Me.labelNotAssignedToParent.Name = "labelNotAssignedToParent" - Me.labelNotAssignedToParent.Size = New System.Drawing.Size(280, 37) - Me.labelNotAssignedToParent.TabIndex = 0 - Me.labelNotAssignedToParent.Text = "Bitte anpassen!" - Me.labelNotAssignedToParent.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'SplitterInner - ' - Me.SplitterInner.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitterInner.Location = New System.Drawing.Point(0, 0) - Me.SplitterInner.Name = "SplitterInner" - Me.SplitterInner.Panel1.Controls.Add(Me.GridParentList) - Me.SplitterInner.Panel1.Controls.Add(Me.PanelControl1) - Me.SplitterInner.Panel1.Text = "Panel1" - Me.SplitterInner.Panel2.Controls.Add(Me.GridAssignedToParent) - Me.SplitterInner.Panel2.Controls.Add(Me.PanelControl3) - Me.SplitterInner.Panel2.Text = "Panel2" - Me.SplitterInner.Size = New System.Drawing.Size(596, 447) - Me.SplitterInner.SplitterPosition = 302 - Me.SplitterInner.TabIndex = 0 - Me.SplitterInner.Text = "SplitContainerControl2" - ' - 'GridParentList - ' - Me.GridParentList.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridParentList.Location = New System.Drawing.Point(0, 41) - Me.GridParentList.MainView = Me.ViewParentList - Me.GridParentList.Name = "GridParentList" - Me.GridParentList.Size = New System.Drawing.Size(302, 406) - Me.GridParentList.TabIndex = 1 - Me.GridParentList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewParentList}) - ' - 'ViewParentList - ' - Me.ViewParentList.GridControl = Me.GridParentList - Me.ViewParentList.Name = "ViewParentList" - ' - 'PanelControl1 - ' - Me.PanelControl1.Controls.Add(Me.labelParentList) - Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Top - Me.PanelControl1.Location = New System.Drawing.Point(0, 0) - Me.PanelControl1.Name = "PanelControl1" - Me.PanelControl1.Size = New System.Drawing.Size(302, 41) - Me.PanelControl1.TabIndex = 0 - ' - 'labelParentList - ' - Me.labelParentList.BackColor = System.Drawing.Color.Transparent - Me.labelParentList.Dock = System.Windows.Forms.DockStyle.Fill - Me.labelParentList.Location = New System.Drawing.Point(2, 2) - Me.labelParentList.Name = "labelParentList" - Me.labelParentList.Size = New System.Drawing.Size(298, 37) - Me.labelParentList.TabIndex = 0 - Me.labelParentList.Text = "Bitte anpassen!" - Me.labelParentList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'GridAssignedToParent - ' - Me.GridAssignedToParent.AllowDrop = True - Me.GridAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridAssignedToParent.Location = New System.Drawing.Point(0, 41) - Me.GridAssignedToParent.MainView = Me.ViewAssignedToParent - Me.GridAssignedToParent.Name = "GridAssignedToParent" - Me.GridAssignedToParent.Size = New System.Drawing.Size(282, 406) - Me.GridAssignedToParent.TabIndex = 2 - Me.GridAssignedToParent.Tag = "001" - Me.GridAssignedToParent.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewAssignedToParent}) - ' - 'ViewAssignedToParent - ' - Me.ViewAssignedToParent.GridControl = Me.GridAssignedToParent - Me.ViewAssignedToParent.Name = "ViewAssignedToParent" - ' - 'PanelControl3 - ' - Me.PanelControl3.Controls.Add(Me.labelAssignedToParent) - Me.PanelControl3.Dock = System.Windows.Forms.DockStyle.Top - Me.PanelControl3.Location = New System.Drawing.Point(0, 0) - Me.PanelControl3.Name = "PanelControl3" - Me.PanelControl3.Size = New System.Drawing.Size(282, 41) - Me.PanelControl3.TabIndex = 1 - ' - 'labelAssignedToParent - ' - Me.labelAssignedToParent.BackColor = System.Drawing.Color.Transparent - Me.labelAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill - Me.labelAssignedToParent.Location = New System.Drawing.Point(2, 2) - Me.labelAssignedToParent.Name = "labelAssignedToParent" - Me.labelAssignedToParent.Size = New System.Drawing.Size(278, 37) - Me.labelAssignedToParent.TabIndex = 0 - Me.labelAssignedToParent.Text = "Bitte anpassen!" - Me.labelAssignedToParent.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'UserControlAssignment - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Controls.Add(Me.SplitterMain) - Me.Name = "UserControlAssignment" - Me.Size = New System.Drawing.Size(892, 447) - CType(Me.SplitterMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitterMain.ResumeLayout(False) - CType(Me.GridNotAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewNotAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).EndInit() - Me.PanelControl2.ResumeLayout(False) - CType(Me.SplitterInner, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitterInner.ResumeLayout(False) - CType(Me.GridParentList, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewParentList, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.PanelControl1.ResumeLayout(False) - CType(Me.GridAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.PanelControl3, System.ComponentModel.ISupportInitialize).EndInit() - Me.PanelControl3.ResumeLayout(False) - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents SplitterMain As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents GridNotAssignedToParent As DevExpress.XtraGrid.GridControl - Friend WithEvents ViewNotAssignedToParent As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents PanelControl2 As DevExpress.XtraEditors.PanelControl - Friend WithEvents SplitterInner As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents GridParentList As DevExpress.XtraGrid.GridControl - Friend WithEvents ViewParentList As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl - Friend WithEvents GridAssignedToParent As DevExpress.XtraGrid.GridControl - Friend WithEvents ViewAssignedToParent As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents PanelControl3 As DevExpress.XtraEditors.PanelControl - Friend WithEvents labelNotAssignedToParent As Label - Friend WithEvents labelParentList As Label - Friend WithEvents labelAssignedToParent As Label -End Class diff --git a/GUIs.ClientSuite/FormUserManager/UserControlAssignment.resx b/GUIs.ClientSuite/FormUserManager/UserControlAssignment.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/FormUserManager/UserControlAssignment.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/FormUserManager/UserControlAssignment.vb b/GUIs.ClientSuite/FormUserManager/UserControlAssignment.vb deleted file mode 100644 index 824fac88..00000000 --- a/GUIs.ClientSuite/FormUserManager/UserControlAssignment.vb +++ /dev/null @@ -1,205 +0,0 @@ -Imports DevExpress.XtraGrid -Imports DevExpress.XtraGrid.Views.Base -Imports DevExpress.XtraGrid.Views.Grid -Imports DigitalData.GUIs.ClientSuite.ClassLayout - -Public Class UserControlAssignment - Private _DragDropManager As ClassDragDrop - - Private _ParentIdColumn As String - Private _ChildIdColumn As String - - Private _ParentList As DataTable - Private _ChildList As DataTable - Private _AssignmentList As DataTable - - Private _ParentRecordId As Integer - - Public Property TextParentList As String - Public Property TextAssignedToParent As String - Public Property TextNotAssignedToParent As String - - Public Event ChildRemoved(ParentId As Integer, ChildId As Integer, RelationRecordId As Integer) - Public Event ChildAdded(ParentId As Integer, ChildId As Integer, RelationRecordId As Integer) - - Private Sub UserControlAssignment_Load(sender As Object, e As EventArgs) Handles Me.Load - _DragDropManager = New ClassDragDrop() - _DragDropManager.AddGridView(ViewAssignedToParent) - _DragDropManager.AddGridView(ViewNotAssignedToParent) - - ' Load text customizations - labelAssignedToParent.Text = TextAssignedToParent - labelNotAssignedToParent.Text = TextNotAssignedToParent - labelParentList.Text = TextParentList - - ' Load grid customizations - Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) - oGridPatcher. - ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings). - ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings). - ProcessControl(AddressOf GridControlDefaults.CheckboxSelectGridSettings, GridNotAssignedToParent). - ProcessControl(AddressOf GridControlDefaults.CheckboxSelectGridSettings, GridAssignedToParent) - - ' Load view layouts - Try - Dim ViewParentListPath = GetLayoutPath(GroupName.LayoutUserManager, Name, ViewParentList.Name) - Dim ViewAssignedPath = GetLayoutPath(GroupName.LayoutUserManager, Name, ViewAssignedToParent.Name) - Dim ViewNotAssignedPath = GetLayoutPath(GroupName.LayoutUserManager, Name, ViewNotAssignedToParent.Name) - - If IO.File.Exists(ViewParentListPath) Then - ViewParentList.RestoreLayoutFromXml(ViewParentListPath) - End If - If IO.File.Exists(ViewAssignedPath) Then - ViewAssignedToParent.RestoreLayoutFromXml(ViewAssignedPath) - End If - If IO.File.Exists(ViewNotAssignedPath) Then - ViewNotAssignedToParent.RestoreLayoutFromXml(ViewNotAssignedPath) - End If - Catch ex As Exception - - End Try - End Sub - - Private Function MaybeCopyToDataTable(RowCollection As EnumerableRowCollection(Of DataRow)) As DataTable - If RowCollection.Count > 0 Then - Return RowCollection.CopyToDataTable() - Else - Return New DataTable() - End If - End Function - - Public Sub Init(ParentList As DataTable, ChildrenList As DataTable, AssignmentList As DataTable, ParentIdColumn As String, ChildIdColumn As String) - _ParentList = ParentList - _ChildList = ChildrenList - _AssignmentList = AssignmentList - - _ParentIdColumn = ParentIdColumn - _ChildIdColumn = ChildIdColumn - - ' This will trigger FocusedRowChanged, needs to be last!! - GridParentList.DataSource = ParentList - End Sub - - Public Sub UpdateData(ParentList As DataTable, ChildrenList As DataTable, AssignmentList As DataTable) - _ParentList = ParentList - _ChildList = ChildrenList - _AssignmentList = AssignmentList - - Dim oFocusedParentRow = ViewParentList.FocusedRowHandle - - ViewParentList.BeginDataUpdate() - GridParentList.DataSource = ParentList - ViewParentList.EndDataUpdate() - - ViewParentList.FocusedRowHandle = oFocusedParentRow - End Sub - - Private Function GetIdsFromDataRows(Rows As List(Of DataRow)) As List(Of Integer) - Dim oIds As New List(Of Integer) - - For Each oRow As DataRow In Rows - oIds.Add(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN)) - Next - - Return oIds - End Function - - Private Function GetModifiedRows(Grid As GridControl, Data As IDataObject) As List(Of DataRow) - Dim oTable As DataTable = Grid.DataSource - Dim oModifiedRows As New List(Of DataRow) - Dim oPrimaryKeys As New List(Of Integer) - - For Each oRow As DataRow In oTable.Rows - oPrimaryKeys.Add(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN)) - Next - - If Data.GetDataPresent(GetType(GridView)) Then - Dim oView As GridView = Data.GetData(GetType(GridView)) - Dim oSelectedRows() As Integer = oView.GetSelectedRows() - - If oSelectedRows.Length = 0 Then - Return oModifiedRows - End If - - ' Die ausgewählten Rows auslesen und gridUsersAssigned hinzufügen - For Each oRowIndex As Integer In oView.GetSelectedRows() - Dim oRowView As DataRowView = oView.GetRow(oRowIndex) - Dim oRow As DataRow = oRowView.Row - - If Not oPrimaryKeys.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN)) Then - oModifiedRows.Add(oRow) - End If - Next - - ElseIf Data.GetDataPresent(GetType(DataRow)) Then - Dim oRow As DataRow = Data.GetData(GetType(DataRow)) - - If Not oPrimaryKeys.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN)) Then - oModifiedRows.Add(oRow) - End If - End If - - Return oModifiedRows - End Function - - Private Function GetAssignmentRecord(ParentId As Integer, ChildId As Integer) - Dim oRows = _AssignmentList.Select($"{_ParentIdColumn} = {ParentId} And {_ChildIdColumn} = {ChildId}").ToList() - - If oRows.Count = 0 Then - Return Nothing - Else - Return oRows.First().Item(ClassConstants.ATTRIBUTE_ID_COLUMN) - End If - End Function - - Private Sub GridNotAssignedToParent_DragDrop(sender As Object, e As DragEventArgs) Handles GridNotAssignedToParent.DragDrop - Dim oGrid As GridControl = sender - Dim oChildIds = GetIdsFromDataRows(GetModifiedRows(oGrid, e.Data)) - - For Each oChildId In oChildIds - Dim oRelationRecordId = GetAssignmentRecord(_ParentRecordId, oChildId) - - RaiseEvent ChildRemoved(_ParentRecordId, oChildId, oRelationRecordId) - Next - End Sub - - Private Sub GridAssignedToParent_DragDrop(sender As Object, e As DragEventArgs) Handles GridAssignedToParent.DragDrop - Dim oGrid As GridControl = sender - Dim oChildIds = GetIdsFromDataRows(GetModifiedRows(oGrid, e.Data)) - - For Each oChildId In oChildIds - Dim oRelationRecordId = GetAssignmentRecord(_ParentRecordId, oChildId) - - RaiseEvent ChildAdded(_ParentRecordId, oChildId, oRelationRecordId) - Next - End Sub - - Private Sub ViewParentList_FocusedRowObjectChanged(sender As Object, e As FocusedRowObjectChangedEventArgs) Handles ViewParentList.FocusedRowObjectChanged - Dim oRowHandle = e.FocusedRowHandle - _ParentRecordId = ViewParentList.GetRowCellValue(oRowHandle, ClassConstants.ATTRIBUTE_ID_COLUMN) - - Dim oAssignedChildIds = From oRow In _AssignmentList.AsEnumerable() - Where oRow.Item(_ParentIdColumn) = _ParentRecordId - Select oRow.Item(_ChildIdColumn) - - If _ChildList Is Nothing Then - Exit Sub - End If - - - Dim oAssignedChildren As EnumerableRowCollection(Of DataRow) = From oRow In _ChildList.AsEnumerable() - Where oAssignedChildIds.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN)) - - Dim oNotAssignedChildren As EnumerableRowCollection(Of DataRow) = From oRow In _ChildList.AsEnumerable() - Where Not oAssignedChildIds.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN)) And oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN) <> _ParentRecordId - - GridAssignedToParent.DataSource = MaybeCopyToDataTable(oAssignedChildren) - GridNotAssignedToParent.DataSource = MaybeCopyToDataTable(oNotAssignedChildren) - End Sub - - Private Sub View_LayoutChanged(sender As Object, e As EventArgs) Handles ViewNotAssignedToParent.Layout, ViewAssignedToParent.Layout, ViewParentList.Layout - Dim oView As BaseView = sender - Dim oLayoutPath = GetLayoutPath(GroupName.LayoutUserManager, Name, oView.Name) - oView.SaveLayoutToXml(oLayoutPath) - End Sub -End Class diff --git a/GUIs.ClientSuite/FormUserManager/frmUserManager.Designer.vb b/GUIs.ClientSuite/FormUserManager/frmUserManager.Designer.vb deleted file mode 100644 index cf5e819f..00000000 --- a/GUIs.ClientSuite/FormUserManager/frmUserManager.Designer.vb +++ /dev/null @@ -1,207 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmUserManager - Inherits BaseRibbonForm - - 'Form overrides dispose to clean up the component list. - - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmUserManager)) - Me.UserRibbon = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.BarButtonUserEdit = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonGroupEdit = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonAssign = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonRefresh = New DevExpress.XtraBars.BarButtonItem() - Me.RibbonPageCategoryUserManager = New DevExpress.XtraBars.Ribbon.RibbonPageCategory() - Me.RibbonPageUserManager = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.UserNavbar = New DevExpress.XtraBars.Navigation.OfficeNavigationBar() - Me.NavbarUser2Group = New DevExpress.XtraBars.Navigation.NavigationBarItem() - Me.NavbarGroup2Group = New DevExpress.XtraBars.Navigation.NavigationBarItem() - Me.ContentPanel = New DevExpress.XtraEditors.PanelControl() - CType(Me.UserRibbon, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.UserNavbar, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ContentPanel, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'UserRibbon - ' - Me.UserRibbon.ExpandCollapseItem.Id = 0 - Me.UserRibbon.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.UserRibbon.ExpandCollapseItem, Me.BarButtonUserEdit, Me.BarButtonGroupEdit, Me.BarButtonAssign, Me.BarButtonItem1, Me.BarButtonRefresh}) - Me.UserRibbon.Location = New System.Drawing.Point(0, 0) - Me.UserRibbon.MaxItemId = 10 - Me.UserRibbon.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always - Me.UserRibbon.Name = "UserRibbon" - Me.UserRibbon.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryUserManager}) - Me.UserRibbon.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] - Me.UserRibbon.Size = New System.Drawing.Size(1070, 146) - Me.UserRibbon.StatusBar = Me.RibbonStatusBar - ' - 'BarButtonUserEdit - ' - Me.BarButtonUserEdit.Caption = "Benutzer Verwaltung" - Me.BarButtonUserEdit.Id = 1 - Me.BarButtonUserEdit.ImageOptions.Image = CType(resources.GetObject("BarButtonUserEdit.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonUserEdit.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonUserEdit.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonUserEdit.Name = "BarButtonUserEdit" - ' - 'BarButtonGroupEdit - ' - Me.BarButtonGroupEdit.Caption = "Gruppen Verwaltung" - Me.BarButtonGroupEdit.Id = 2 - Me.BarButtonGroupEdit.ImageOptions.Image = CType(resources.GetObject("BarButtonGroupEdit.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonGroupEdit.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonGroupEdit.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonGroupEdit.Name = "BarButtonGroupEdit" - ' - 'BarButtonAssign - ' - Me.BarButtonAssign.Caption = "Zuordnen" - Me.BarButtonAssign.Id = 6 - Me.BarButtonAssign.ImageOptions.Image = CType(resources.GetObject("BarButtonAssign.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonAssign.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonAssign.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonAssign.Name = "BarButtonAssign" - ' - 'BarButtonItem1 - ' - Me.BarButtonItem1.Caption = "Zuordnung aufheben" - Me.BarButtonItem1.Id = 7 - Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem1.Name = "BarButtonItem1" - ' - 'BarButtonRefresh - ' - Me.BarButtonRefresh.Caption = "Neu Laden" - Me.BarButtonRefresh.Id = 8 - Me.BarButtonRefresh.ImageOptions.Image = CType(resources.GetObject("BarButtonRefresh.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonRefresh.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonRefresh.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonRefresh.Name = "BarButtonRefresh" - ' - 'RibbonPageCategoryUserManager - ' - Me.RibbonPageCategoryUserManager.Name = "RibbonPageCategoryUserManager" - Me.RibbonPageCategoryUserManager.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageUserManager}) - Me.RibbonPageCategoryUserManager.Text = "User Manager" - ' - 'RibbonPageUserManager - ' - Me.RibbonPageUserManager.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3}) - Me.RibbonPageUserManager.Name = "RibbonPageUserManager" - Me.RibbonPageUserManager.Text = "Allgemein" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonUserEdit) - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonGroupEdit) - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "Sprungmarken" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonAssign) - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1) - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "Zuordnung" - ' - 'RibbonPageGroup3 - ' - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonRefresh) - Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "Daten" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.HideWhenMerging = DevExpress.Utils.DefaultBoolean.[True] - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 519) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.UserRibbon - Me.RibbonStatusBar.Size = New System.Drawing.Size(1070, 21) - ' - 'UserNavbar - ' - Me.UserNavbar.Dock = System.Windows.Forms.DockStyle.Bottom - Me.UserNavbar.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarUser2Group, Me.NavbarGroup2Group}) - Me.UserNavbar.Location = New System.Drawing.Point(0, 474) - Me.UserNavbar.Name = "UserNavbar" - Me.UserNavbar.Size = New System.Drawing.Size(1070, 45) - Me.UserNavbar.TabIndex = 2 - Me.UserNavbar.Text = "OfficeNavigationBar1" - ' - 'NavbarUser2Group - ' - Me.NavbarUser2Group.Name = "NavbarUser2Group" - Me.NavbarUser2Group.Text = "Userzuordnung" - ' - 'NavbarGroup2Group - ' - Me.NavbarGroup2Group.Name = "NavbarGroup2Group" - Me.NavbarGroup2Group.ShowPeekFormOnItemHover = DevExpress.Utils.DefaultBoolean.[True] - Me.NavbarGroup2Group.Text = "Gruppenzuordnung" - ' - 'ContentPanel - ' - Me.ContentPanel.Dock = System.Windows.Forms.DockStyle.Fill - Me.ContentPanel.Location = New System.Drawing.Point(0, 146) - Me.ContentPanel.Name = "ContentPanel" - Me.ContentPanel.Size = New System.Drawing.Size(1070, 328) - Me.ContentPanel.TabIndex = 8 - ' - 'frmUserManager - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1070, 540) - Me.Controls.Add(Me.ContentPanel) - Me.Controls.Add(Me.UserNavbar) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.UserRibbon) - Me.DefaultRibbonPage = Me.RibbonPageUserManager - Me.Name = "frmUserManager" - Me.Ribbon = Me.UserRibbon - Me.ShowIcon = False - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "User Manager" - CType(Me.UserRibbon, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.UserNavbar, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ContentPanel, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents UserRibbon As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPageUserManager As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents BarButtonUserEdit As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonGroupEdit As DevExpress.XtraBars.BarButtonItem - Friend WithEvents RibbonPageCategoryUserManager As DevExpress.XtraBars.Ribbon.RibbonPageCategory - Friend WithEvents BarButtonAssign As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents BarButtonRefresh As DevExpress.XtraBars.BarButtonItem - Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents UserNavbar As DevExpress.XtraBars.Navigation.OfficeNavigationBar - Friend WithEvents NavbarUser2Group As DevExpress.XtraBars.Navigation.NavigationBarItem - Friend WithEvents NavbarGroup2Group As DevExpress.XtraBars.Navigation.NavigationBarItem - Friend WithEvents ContentPanel As DevExpress.XtraEditors.PanelControl -End Class diff --git a/GUIs.ClientSuite/FormUserManager/frmUserManager.resx b/GUIs.ClientSuite/FormUserManager/frmUserManager.resx deleted file mode 100644 index c16d22d1..00000000 --- a/GUIs.ClientSuite/FormUserManager/frmUserManager.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl - cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAMxJREFUOE+l0TsKwkAUheEUYu8yFGystIr22UN2 - 4RpsrK2tXIErCIKuISvQOhYqMv4HZuIwDJmgxQfJPXMPeWTGmL9Eh+vDbo4T7tYZuc1auo8tD3CFCdww - RLJgjHDZmSBZsERsWVZIFmwQWxZlyYIF3giXNdPH7S4QwgphQWWzXgU5nnDLuu73Gx0OlLhYpTfvLiAY - YYuhN9P/10xZvIDBDEe8oMfeY2rpWjNlOqOz3wJuCjzg3jlFZwu/oPbCvmq/oAnCPpq24Hcm+wDispls - ZjsJhAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl - cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAcdJREFUWEfF1r8rxVEYx3HFYjAoshKLwd2tpCiL - 8rdIBonl1t39WKxSBjsLKynJoKSIUchAUV/vU9+vnuf0nOd8B/caXsPn3PN8nsNN6SqK4l+psLS3Vcc8 - 9vGIr9ITDrAg++pQgYKcTRQZu7IzRwWGPbOwFloWZa9HBQY94dduLbMcyl6PCgx6bmAts9zKXo8KDHre - YS2zvMpejwoMeqxFKZ+y16MCgylTsBZ5pmR3igoMpWzDWuLZlt0pKjCU0oS1xNOU3SkqMJQyimdYiyzh - 7qjsTlGBIc8qrGWWZdnrUYFBzwSsZZYJ2etRgcGcI1gLpWPZmaMCwzkNfMBaHITPGrIzRwWG65jDC+Ll - b5iTfXWoQEFdg1hB+EpOsYYh2VWXCpTkdBtnv8qOHtmZo0JcGJnEBcbEWSz8pVxiUvZ6VBBFlWGs4xrV - d32CXsR3+3CO6l6Y2cCI3BFTgcuVfuwg/L9XFUpnmEZPaQZXsO6GjtDVL3dVVOBSMI47WGWx75L1WSx0 - jst9gQpcGMB9OdAOoXtA7owf0BKX26Uld8YPaOdPX7mXO+MHWAN/Tu6MH/AQX26DB7lTPeA/mIedZB52 - knnYOUXXD9NKheoC25U6AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz - ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v - uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB - unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2 - sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM - 0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII= - - - - - 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== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u - O5UGMy8AAABgSURBVDhP3YxRCoAwDEN3QS/lqbxdtNKUTDJEHAh+vNGl6WsAXmFDsqwbkphtx4bkR4Kc - bceGRAUjzofFp0wVFPEnWrzk1e0CJfMS6I7ME4w4Sp1Ad8SGhII4/kZwD9oOmV+r+RzWkL4AAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u - O5UGMy8AAACPSURBVFhH7c5RCoQwDEVRN+imXJW7i82HIOlFHhKiSD4Owp1p+xYzexXGShgrYayEsRJG - xbrtdhV/V2FU9IAe0AP+PSBeniW+46bg6HCG+I6bgqPDGeI7bgqODmeI77gpqJTLFRgVNGB8b13PnzAq - xoXfG/AERkUPoAHji/+9g1HRA7JgrISxEsZKGOvYcgB55Y6E3tOuXgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAjdEVYdFRpdGxlAENhbmNlbDtTdG9wO0V4aXQ7QmFy - cztSaWJib247TJaWsgAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlOq4sHSf0Y - BlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgPy+QzUIN+ - ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQhiM0+DBa - I5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAjdEVYdFRpdGxlAENhbmNlbDtTdG9wO0V4aXQ7QmFy - cztSaWJib247TJaWsgAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1VcxaomD57pek1e - hLj4FilSP9Dd0LtSyr8ixZlIcSZSnIkUL8+3f6LJOvhzixRr0BV4AXf13I3LuQev4OjzPVKEgeUfoIBv - kBpRM1hOLzM+gRyxEnDxALiaRiM7wpcbzNy3fb8OBi4+gTagd4Qq5/lBda0EgsvksRrboK0RqXIiRRiM - zIh0OZEiTJ6eEUPlRIowtmyNGC4nUoRZEY0YLidSRECEGuFJlRMpImSLaMRSDmRmhBQZsoF65jZgeTFV - ZoQUGRIQlRvLCJUZIUWEKKK3XWndI6SIgN5yPvPwE1XZLVKEubfc7gyPkCKMmXJjaIQUYSJR+Qn4Yk96 - hBRhGCk3UiNWAi7uwVs1+oCeckONeAfdPyTX4Ksas+WW4UecwU3bQ1YCwWXCEVydKicuhyOYIcuJFC0I - 8P/Qn7tosvK/5TOR4kykOBMpzqPsfgBphQ1j4i+mWAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAndEVYdFRpdGxlAFJlZnJlc2g7UmVwZWF0O0JhcnM7 - UmliYm9uO1JlbG9hZM1N9ukAAADSSURBVDhPpZKxDcJAEASNRAE0YNGBc4qwyEjIHSJHkNMEJZCSmYx+ - aOLZff2eTugegQlGOu3e7b9936SU/iIUf8GK/nwXLRjBBJ4F1tTo5b5awAIcQKpwAxsQBqxADxhyAgNY - F1g/gELaKGBfGhhiuvM7oJBRukwO6Zo5RA0e6LwJ/UlaNCwsJPCMjyaHj9fLEnX1EH89roriIM3D5uLb - MHXfwD3T4I/qpDvfh9jn+QY+Eq5IIe9r3AGF2JwPIHwkConYgtxbCyDznvJcQvF7UvMC/+yHWnrFMzsA - AAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAndEVYdFRpdGxlAFJlZnJlc2g7UmVwZWF0O0JhcnM7 - UmliYm9uO1JlbG9hZM1N9ukAAAHOSURBVFhHxZY9TsNQEIRTBJp0SBQoFBQg5QTQJSfwVVLSJkJCHAFu - 4APQcIB01KkoKLgCvZlB3mjfZl7sEPFSfEo8b3Z35L/nQdM0R0WKJZFiSaRYEimWRIo5qoe3CZiDGqzB - dwv/U+PaRNXmkGIETcdgCT5A0wE99I5Vr4gUPWh0C15BHNQFa6aqp0eKBhqQC/AJ1JAuVmBnCCkSFJKq - /b0CFuIdLMAMnLXwPzWuxRA8E9nLIUWCIg5nAx/iEdwoP+EaeAExxFL5yZZwXz8PUWDDDQtxEv0ReEYg - huCNKZ+O5ADDz2GMw43Ke3cBL89EvBxz5U0OYMoNN/YJwXvC19bKt/kDQ9dwo1cI+Hhj+rq18pm573Aj - CcHjsN6X6qDiA0P81m8aeLDId7s3z5QvAt/el3GrCYGBG4svWCifAt6uEMmZS4oNmLir+SI+UtkXUATe - XIiKj7r3JoUGjNx2487Hl8tI+T3wnAIVgsOH0Z8ceFDALdU3IAzR9Sp+AtfAh0hOu0eKBEX8BlDbcJ/N - 6Av4EHIGkaKBwinglhpD9IEhLoHsbUjRgwYM8dcPkjvV0yPFCBod75PMg6bH+Sj9T6RYEimWRIolkWI5 - msEP/+Ty+jngCqIAAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/FormUserManager/frmUserManager.vb b/GUIs.ClientSuite/FormUserManager/frmUserManager.vb deleted file mode 100644 index 1eed2de2..00000000 --- a/GUIs.ClientSuite/FormUserManager/frmUserManager.vb +++ /dev/null @@ -1,153 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class frmUserManager - Private _Logger As Logger - - Private _UserTable As DataTable - Private _GroupTable As DataTable - Private _UserToGroupTable As DataTable - Private _GroupToGroupTable As DataTable - - Private _UserToGroupControl As UserControlAssignment - Private _GroupToGroupControl As UserControlAssignment - - Public Sub New() - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _Logger = My.LogConfig.GetLogger() - End Sub - - Private Async Sub frmUserManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Await InitDataAsync() - - UserNavbar.SelectedItem = NavbarUser2Group - End Sub - - Private Sub ShowUserToGroupControl() - If _UserToGroupControl Is Nothing Then - _UserToGroupControl = New UserControlAssignment() With { - .TextAssignedToParent = "Zugeordnete Benutzer", - .TextNotAssignedToParent = "Nicht zugeordnete Benutzer", - .TextParentList = "Verfügbare Gruppen", - .Dock = DockStyle.Fill - } - - AddHandler _UserToGroupControl.ChildAdded, AddressOf HandleUserAddedToGroup - AddHandler _UserToGroupControl.ChildRemoved, AddressOf HandleUserRemovedFromGroup - - _UserToGroupControl.Init(_GroupTable, _UserTable, _UserToGroupTable, "GROUP_ID", "USER_ID") - - ContentPanel.Controls.Add(_UserToGroupControl) - End If - - _UserToGroupControl.Visible = True - End Sub - - Private Sub ShowGroupToGroupControl() - If _GroupToGroupControl Is Nothing Then - _GroupToGroupControl = New UserControlAssignment() With { - .TextAssignedToParent = "Zugeordnete Gruppen", - .TextNotAssignedToParent = "Nicht zugeordnete Gruppen", - .TextParentList = "Verfügbare Gruppen", - .Dock = DockStyle.Fill - } - - AddHandler _GroupToGroupControl.ChildAdded, AddressOf HandleGroupAddedToGroup - AddHandler _GroupToGroupControl.ChildRemoved, AddressOf HandleGroupRemovedFromGroup - - _GroupToGroupControl.Init(_GroupTable, _GroupTable, _GroupToGroupTable, "GROUP2_ID", "GROUP1_ID") - - _ContentPanel.Controls.Add(_GroupToGroupControl) - End If - - _GroupToGroupControl.Visible = True - End Sub - - Private Async Function InitDataAsync() As Task - _UserTable = Await GetAttributeListAsync("User") - _GroupTable = Await GetAttributeListAsync("Group") - _UserToGroupTable = Await GetAttributeListAsync("User2Group") - _GroupToGroupTable = Await GetAttributeListAsync("Group2Group") - End Function - - Private Async Function UpdateDataAsync() As Task - _UserTable = Await GetAttributeListAsync("User") - _GroupTable = Await GetAttributeListAsync("Group") - _UserToGroupTable = Await GetAttributeListAsync("User2Group") - _GroupToGroupTable = Await GetAttributeListAsync("Group2Group") - - _UserToGroupControl.UpdateData(_GroupTable, _UserTable, _UserToGroupTable) - _GroupToGroupControl.UpdateData(_GroupTable, _GroupTable, _GroupToGroupTable) - End Function - - Private Async Sub HandleUserAddedToGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer) - Dim oRecordId = Await My.Common.Commands.FNIDB_RADM_NEW_USER2GROUP(UserId, GroupId) - - Await UpdateDataAsync() - End Sub - - Private Async Sub HandleUserRemovedFromGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer) - Dim oResult = Await My.Common.Commands.FNIDB_DELETE_RECORD_FINALLY(RelationRecordId) - - Await UpdateDataAsync() - End Sub - - Private Async Sub HandleGroupAddedToGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer) - Dim oRecordId = Await My.Common.Commands.FNIDB_RADM_NEW_GROUP2GROUP(GroupId, ParentGroupId) - - Await UpdateDataAsync() - End Sub - - Private Async Sub HandleGroupRemovedFromGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer) - Dim oResult = Await My.Common.Commands.FNIDB_DELETE_RECORD_FINALLY(RelationRecordId) - - Await UpdateDataAsync() - End Sub - - Private Async Function GetAttributeListAsync(AttributeName As String) As Task(Of DataTable) - Try - Dim oSQL = $"SELECT * FROM VWIDB_{AttributeName.ToUpper}" - Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"List Attribute {AttributeName}", False) - Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL) - - Await My.Channel.CloseDatabaseRequestAsync() - - Return oResult.Table - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Private Sub BarButtonUserEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserEdit.ItemClick - Dim oForm As New frmObjectEditor(ClassConstants.DB_USER_ATTRIBUTE_ID, ClassConstants.DB_USER_ATTRIBUTE_SYSKEY, _UserTable) - oForm.Show() - End Sub - - Private Sub BarButtonGroupEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonGroupEdit.ItemClick - Dim oForm As New frmObjectEditor(ClassConstants.DB_GROUP_ATTRIBUTE_ID, ClassConstants.DB_GROUP_ATTRIBUTE_SYSKEY, _GroupTable) - oForm.Show() - End Sub - - Private Async Sub BarButtonRefresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonRefresh.ItemClick - Await UpdateDataAsync() - End Sub - - Private Sub OfficeNavigationBar1_SelectedItemChanged(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles UserNavbar.SelectedItemChanged - ' Hide all UserControls - For Each oControl As Control In ContentPanel.Controls - oControl.Visible = False - Next - - ' Then check the currently selected navbar item and show the corresponding UserControl - If UserNavbar.SelectedItem.Equals(NavbarUser2Group) Then - ShowUserToGroupControl() - ElseIf UserNavbar.SelectedItem.Equals(NavbarGroup2Group) Then - ShowGroupToGroupControl() - End If - End Sub - - -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/GridOverview.Designer.vb b/GUIs.ClientSuite/ModuleWorkflow/GridOverview.Designer.vb deleted file mode 100644 index 26ff8515..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/GridOverview.Designer.vb +++ /dev/null @@ -1,94 +0,0 @@ - _ -Partial Class GridOverview - Inherits System.Windows.Forms.UserControl - - 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Me.GridControl = New DevExpress.XtraGrid.GridControl() - Me.ContextMenu = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.ShowRawDataToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.gvOverview = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - CType(Me.GridControl, System.ComponentModel.ISupportInitialize).BeginInit() - Me.ContextMenu.SuspendLayout() - CType(Me.gvOverview, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'GridControl - ' - Me.GridControl.ContextMenuStrip = Me.ContextMenu - 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}) - ' - 'ContextMenu - ' - Me.ContextMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ShowRawDataToolStripMenuItem}) - Me.ContextMenu.Name = "ContextMenu" - Me.ContextMenu.Size = New System.Drawing.Size(181, 48) - ' - 'ShowRawDataToolStripMenuItem - ' - Me.ShowRawDataToolStripMenuItem.Name = "ShowRawDataToolStripMenuItem" - Me.ShowRawDataToolStripMenuItem.Size = New System.Drawing.Size(180, 22) - Me.ShowRawDataToolStripMenuItem.Text = "Show Raw Data" - ' - '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() - Me.ContextMenu.ResumeLayout(False) - 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 - Friend WithEvents ContextMenu As ContextMenuStrip - Friend WithEvents ShowRawDataToolStripMenuItem As ToolStripMenuItem -End Class diff --git a/GUIs.ClientSuite/ModuleWorkflow/GridOverview.resx b/GUIs.ClientSuite/ModuleWorkflow/GridOverview.resx deleted file mode 100644 index 69b2acbc..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/GridOverview.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/GridOverview.vb b/GUIs.ClientSuite/ModuleWorkflow/GridOverview.vb deleted file mode 100644 index 70ac4ee5..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/GridOverview.vb +++ /dev/null @@ -1,37 +0,0 @@ -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 - - Private Sub ShowRawDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShowRawDataToolStripMenuItem.Click - Dim oItem As WorkflowItem = gvOverview.GetFocusedRow() - - If oItem IsNot Nothing Then - Dim oForm As New frmWorkflowRawData(oItem.Raw) - oForm.ShowDialog() - End If - - End Sub -End Class diff --git a/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.Designer.vb b/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.Designer.vb deleted file mode 100644 index 56bf792f..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.Designer.vb +++ /dev/null @@ -1,60 +0,0 @@ - _ -Partial Class NavControlOverview - Inherits System.Windows.Forms.UserControl - - 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - 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 diff --git a/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.resx b/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.vb b/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.vb deleted file mode 100644 index d2150829..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/NavControlOverview.vb +++ /dev/null @@ -1,40 +0,0 @@ -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 diff --git a/GUIs.ClientSuite/ModuleWorkflow/WorkflowDetail.vb b/GUIs.ClientSuite/ModuleWorkflow/WorkflowDetail.vb deleted file mode 100644 index 089ffd99..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/WorkflowDetail.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class WorkflowDetail - Public Property Title -End Class diff --git a/GUIs.ClientSuite/ModuleWorkflow/WorkflowItem.vb b/GUIs.ClientSuite/ModuleWorkflow/WorkflowItem.vb deleted file mode 100644 index 2e60147a..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/WorkflowItem.vb +++ /dev/null @@ -1,42 +0,0 @@ -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 Raw As DataRow - - 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 diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.Designer.vb b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.Designer.vb deleted file mode 100644 index dfcaaf9a..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.Designer.vb +++ /dev/null @@ -1,337 +0,0 @@ - -Partial Class frmWorkflowOverview - Inherits DigitalData.GUIs.ClientSuite.Base.BaseRibbonForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - 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 diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.resx b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.resx deleted file mode 100644 index 8a96f180..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.resx +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAYdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1w5 - 6BYAAADzSURBVDhPpdA9CsJAEAVglYBYeQYPoJ2tBxDEMq2FJ5BASsVrWNhqmc4rKHgJsbAXTKXre2En - TNZJESw+iPPzzKTlnPuLWWyifJhtT23YwdPbQwfMuhUwBhdgzaxbAbEauMISIm8BZ5B+bAWkvvmBunPe - wJnUCujDCy5Qdw57nOn/BPiQBA6gzxGssZfoHb3MW4cwADlHY429EURlAH50YQM3uMMU5BxZLl4b2OMM - Z7nTY8AR9D/RCniO/OYza3qGMgbkqvCANcg5E694bWCPMzKfl9/Af4fwnLlXeW29EwZY54QyvRMG6HPq - 5HqnEtCca30Bw6t+WSTe8moAAAAASUVORK5CYII= - - - - - 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 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFBlb3BsZTtBc3NpZ25+WIkkAAAA - 4ElEQVQ4T6XRPQ4BURQF4ClEr1FrSSSiokLPGuxEQqbQWIRFSKYXCWuwAmoKRJ5zJu/Ke/fd0Si+MRnn - nMxP5pz7S3nI81wbwAHu3hFGkGStgRpcwClXqEOUtwbaoMuiA1HeGhiDVaYJRHlrYA1WmfhflLcGhvAG - XeY1vtwobw3QHvQAryXZqgF+sidImeet2arIYOF/S1UDNIeT1wvKTspkDTRgA99v7sNSrhzoww5ewNve - QheaCIbliAxM4QHyzCGWl7ooZOCsSiF5aeFI8gg3VdL0SDLwU1gAjvjzIvsAqlQYjVXYUosAAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFBlb3BsZTtBc3NpZ25+WIkkAAAB - 0UlEQVRYR8XWsStFYRgG8DNIGQyKrIrFwG69UhSD8sfIcON2B2UmBnZlMCoWVjYZlBSxIWUg5HgenXP6 - vu88597zHjeGX3K+732fx7mUKI7jf+V902w2y5iFXbiDj8Q97ME8qBmpSoENiNvYATWbYy0wDSpQWQC1 - w2MtwNeuwpR9UDs81gKXoMKUK1A7PNYCL6DClGdQOzzWAiqoyBuoHR5LgRqooFY4o3ZlLAU2QYW0whm1 - K2MpsAoqpBXOqF0ZS4FheAQVpPAuZ9SujKUA1UGFKYugdnisBcZAhSm8q3Z4rAXoEFSg6wjUbE6VAuPw - CiqYeMY7ajanSgGagXcIw/mMZ2pGqlqgGx4gLPAEPFMzUtUCNABLwN+JE1iGQVB3C1kLTMB68EzZBt5V - Z54yBYagARfA18x/v0ZA3SX++X0B73KmNtc4iKCefM0pKtAHW8BA93OmY+gB9z71whmk91aSEIbHaWBI - FRiF62RJkVOYhK7EFJxDeh6Gly7QDzfOonY+E+4zFV66wFqwzCr9rMPwQmEBy0+vMJhvQIYpYQG11CJ9 - A6VLhAVug4VVFJXIPndXWODXggC3RHj2wyvQCSIkLaHO/qQAsYR63vkCNnH0DUZ2qvqAgwutAAAAAElF - TkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz - ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v - uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB - unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2 - sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM - 0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII= - - - - - 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== - - - - - 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 - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS - aWJib247U3RhbmRhcmQ7Y1ZIMAAAAUFJREFUWEfFlUEOwjAMBHlYheBjSLw8xJKN3N1N43AIhxFi8Xp8 - KOqttfZXZLgTGe5Ehjuh4DgO5C6yKnfcj1AAC16d5p/424xvFx0ZCsSCYOUI6qInoKAPqwXfRZ0sUgy7 - 6DIo6IMPKCJXR4zkwQN9py9GHzLeqaRQR8zktpN8FNiQs3JESW6gj4IYdCpHlOUG+ijIw87siCtOcgN9 - FGDB+eUIkhvoo0CVnJUjpNxAHwWqlKgcMZQb6KNAlRKzB87I/w4CfRSoklORB8Mj0EeBKnVW5IE8An0U - iNIv8oCOQB8FUJjJ7YGbPZinI9BHQRquyGO2fAT6KPDBFXlQOgJ9FPSh2etYyYPZEfPXsdEHR4uu5MFl - F10UBF6gBUWGXfRQkPHiqjyQXXRQgPTSMy9YhLq4n4LdyHAnMtyJDPfRbh/esgzdHdsY9wAAAABJRU5E - rkJggg== - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.vb b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.vb deleted file mode 100644 index a15c9e02..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowOverview.vb +++ /dev/null @@ -1,52 +0,0 @@ -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"), - .Raw = oRow - }) - 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 \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.Designer.vb b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.Designer.vb deleted file mode 100644 index 47af0902..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.Designer.vb +++ /dev/null @@ -1,52 +0,0 @@ - _ -Partial Class frmWorkflowRawData - Inherits DevExpress.XtraEditors.XtraForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.VGridControl1 = New DevExpress.XtraVerticalGrid.VGridControl() - CType(Me.VGridControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'VGridControl1 - ' - Me.VGridControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.VGridControl1.LayoutStyle = DevExpress.XtraVerticalGrid.LayoutViewStyle.SingleRecordView - Me.VGridControl1.Location = New System.Drawing.Point(0, 0) - Me.VGridControl1.Name = "VGridControl1" - Me.VGridControl1.Size = New System.Drawing.Size(800, 450) - Me.VGridControl1.TabIndex = 1 - ' - 'frmWorkflowRawData - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.VGridControl1) - Me.Name = "frmWorkflowRawData" - Me.Text = "Rohdaten" - CType(Me.VGridControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents VGridControl1 As DevExpress.XtraVerticalGrid.VGridControl -End Class diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.resx b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.vb b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.vb deleted file mode 100644 index a37f25c6..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowRawData.vb +++ /dev/null @@ -1,19 +0,0 @@ -Public Class frmWorkflowRawData - Private _Data As DataRow - - Public Sub New(Data As DataRow) - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _Data = Data - End Sub - - Private Sub frmWorkflowRawData_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Dim oDataTable As New DataTable() - oDataTable.Merge(_Data.Table) - oDataTable.Clear() - oDataTable.LoadDataRow(_Data.ItemArray, True) - VGridControl1.DataSource = oDataTable - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.Designer.vb b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.Designer.vb deleted file mode 100644 index 329a35d6..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.Designer.vb +++ /dev/null @@ -1,169 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmWorkflowStep - Inherits BaseRibbonForm - - 'Form overrides dispose to clean up the component list. - - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() - Me.LayoutControlGroupMain = New DevExpress.XtraLayout.LayoutControlGroup() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.Button1 = New System.Windows.Forms.Button() - Me.Label1 = New System.Windows.Forms.Label() - Me.cmbJobState = New DevExpress.XtraEditors.ComboBoxEdit() - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlGroupMain, System.ComponentModel.ISupportInitialize).BeginInit() - Me.GroupBox1.SuspendLayout() - CType(Me.cmbJobState.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'RibbonControl - ' - Me.RibbonControl.ExpandCollapseItem.Id = 0 - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem}) - Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 1 - Me.RibbonControl.Name = "RibbonControl" - Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl.Size = New System.Drawing.Size(991, 146) - Me.RibbonControl.StatusBar = Me.RibbonStatusBar - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 494) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(991, 21) - ' - 'LayoutControl1 - ' - Me.LayoutControl1.BackColor = System.Drawing.Color.Gray - Me.LayoutControl1.Location = New System.Drawing.Point(0, 146) - Me.LayoutControl1.Name = "LayoutControl1" - Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(1039, 241, 650, 400) - Me.LayoutControl1.Root = Me.LayoutControlGroupMain - Me.LayoutControl1.Size = New System.Drawing.Size(991, 251) - Me.LayoutControl1.TabIndex = 2 - Me.LayoutControl1.Text = "LayoutControl1" - ' - 'LayoutControlGroupMain - ' - Me.LayoutControlGroupMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] - Me.LayoutControlGroupMain.GroupBordersVisible = False - Me.LayoutControlGroupMain.Name = "Root" - Me.LayoutControlGroupMain.Size = New System.Drawing.Size(991, 251) - Me.LayoutControlGroupMain.TextVisible = False - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.Button1) - Me.GroupBox1.Controls.Add(Me.Label1) - Me.GroupBox1.Controls.Add(Me.cmbJobState) - Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Bottom - Me.GroupBox1.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(0, 403) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(991, 91) - Me.GroupBox1.TabIndex = 5 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Job - Aktualisierung" - ' - 'Button1 - ' - Me.Button1.Dock = System.Windows.Forms.DockStyle.Right - Me.Button1.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.StatusAnnotations_Complete_and_ok_32xLG - Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button1.Location = New System.Drawing.Point(830, 19) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(158, 69) - Me.Button1.TabIndex = 2 - Me.Button1.Text = "Job abschliessen" - Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.Button1.UseVisualStyleBackColor = True - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 28) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(43, 16) - Me.Label1.TabIndex = 1 - Me.Label1.Text = "State:" - ' - 'cmbJobState - ' - Me.cmbJobState.Location = New System.Drawing.Point(15, 47) - Me.cmbJobState.MenuManager = Me.RibbonControl - Me.cmbJobState.Name = "cmbJobState" - Me.cmbJobState.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.cmbJobState.Size = New System.Drawing.Size(210, 20) - Me.cmbJobState.TabIndex = 0 - ' - 'frmWorkflowStep - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(991, 515) - Me.Controls.Add(Me.GroupBox1) - Me.Controls.Add(Me.LayoutControl1) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.RibbonControl) - Me.Name = "frmWorkflowStep" - Me.Ribbon = Me.RibbonControl - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "View WorkflowStep" - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlGroupMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.GroupBox1.ResumeLayout(False) - Me.GroupBox1.PerformLayout() - CType(Me.cmbJobState.Properties, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl - Friend WithEvents LayoutControlGroupMain As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents GroupBox1 As GroupBox - Friend WithEvents Label1 As Label - Friend WithEvents cmbJobState As DevExpress.XtraEditors.ComboBoxEdit - Friend WithEvents Button1 As Button -End Class diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.resx b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.vb b/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.vb deleted file mode 100644 index afe6c3cc..00000000 --- a/GUIs.ClientSuite/ModuleWorkflow/frmWorkflowStep.vb +++ /dev/null @@ -1,77 +0,0 @@ -Imports DevExpress.XtraLayout -Imports DigitalData.GUIs.ClientSuite.Controls - -Public Class frmWorkflowStep - Private _ControlLoader As ControlLoader - Private _ControlData As ControlData - - Private _FormId As Int64 - Private _ProcessRequestId As Int64 - Private _ProcessName As String - Private _RequestName As String - - Private _HeaderGroup As LayoutControlGroup - Private _BodyGroup As LayoutControlGroup - - Public Sub New(ProcessRequestId As Int64) - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _ProcessRequestId = ProcessRequestId - End Sub - - Private Async Function GetRequestData(RequestId) As Task - Await My.Channel.CreateDatabaseRequestAsync("Get Request Data", True) - Dim oSQL = $"SELECT RECORD_ID,PROCESS_NAME, REQUEST_TITLE, FORMID FROM VWIDB_PROCESS_REQUEST WHERE RECORD_ID = {RequestId}" - If My.Application.Service.Online = False Then - - End If - Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL) - - If Not oResult.OK Then - Throw New ApplicationException("Request data could not be fetched!") - ShowErrorMessage(oResult.ErrorMessage) - End If - - My.Channel.CloseDatabaseRequest() - - Dim oRows = oResult.Table.Rows - - If oRows.Count = 1 Then - _FormId = oRows.Item(0).Item("FORMID") - _ProcessName = oRows.Item(0).Item("PROCESS_NAME") - _RequestName = oRows.Item(0).Item("REQUEST_TITLE") - Else - Throw New ApplicationException("Request data could not be fetched!") - End If - End Function - - - Private Async Sub frmWorkflowStep_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Await GetRequestData(_ProcessRequestId) - - Dim oControlTable = Await My.Common.Views.VWIDB_FORM_CONTROL(_FormId) - Dim oControlData = Await My.Common.Views.VWIDB_CONTROL_DATA(_ProcessRequestId) - - _HeaderGroup = LayoutControlGroupMain.AddGroup("Request Header") - _BodyGroup = LayoutControlGroupMain.AddGroup("Control Body") - - _ControlLoader = New ControlLoader(My.LogConfig, _BodyGroup) - _ControlData = New ControlData(My.LogConfig) - - LayoutControl1.BeginUpdate() - - _ControlLoader.LoadControls(oControlTable) - _ControlData.LoadControlData(_ControlLoader.LayoutControls, oControlData) - - LayoutControl1.EndUpdate() - - _ControlLoader.AddControl("Process Name", _ProcessName, _HeaderGroup) - _ControlLoader.AddControl("Request Name", _RequestName, _HeaderGroup) - End Sub - - Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click - - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/My Project/Application.Designer.vb b/GUIs.ClientSuite/My Project/Application.Designer.vb deleted file mode 100644 index 5c8d1e2a..00000000 --- a/GUIs.ClientSuite/My Project/Application.Designer.vb +++ /dev/null @@ -1,38 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -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 - - _ - Public Sub New() - MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) - Me.IsSingleInstance = true - Me.EnableVisualStyles = true - Me.SaveMySettingsOnExit = true - Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses - End Sub - - _ - Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.DigitalData.GUIs.ClientSuite.frmMain - End Sub - End Class -End Namespace diff --git a/GUIs.ClientSuite/My Project/Application.myapp b/GUIs.ClientSuite/My Project/Application.myapp deleted file mode 100644 index 5eb49b3b..00000000 --- a/GUIs.ClientSuite/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - true - frmMain - true - 0 - true - 0 - true - \ No newline at end of file diff --git a/GUIs.ClientSuite/My Project/AssemblyInfo.vb b/GUIs.ClientSuite/My Project/AssemblyInfo.vb deleted file mode 100644 index 92efcbed..00000000 --- a/GUIs.ClientSuite/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/GUIs.ClientSuite/My Project/Resources.Designer.vb b/GUIs.ClientSuite/My Project/Resources.Designer.vb deleted file mode 100644 index a23044d4..00000000 --- a/GUIs.ClientSuite/My Project/Resources.Designer.vb +++ /dev/null @@ -1,163 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.GUIs.ClientSuite.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - 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 - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - 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 - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - 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 - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property CheckBox() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("CheckBox", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property ComboBox() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("ComboBox", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property DatePicker() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("DatePicker", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property iconfinder_Gowalla_324477() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("iconfinder_Gowalla_324477", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property StatusAnnotations_Complete_and_ok_32xLG() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("StatusAnnotations_Complete_and_ok_32xLG", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property TextBox() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("TextBox", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property user_16xLG() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("user_16xLG", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - End Module -End Namespace diff --git a/GUIs.ClientSuite/My Project/Resources.resx b/GUIs.ClientSuite/My Project/Resources.resx deleted file mode 100644 index c8fa5830..00000000 --- a/GUIs.ClientSuite/My Project/Resources.resx +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\TextBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconfinder_Gowalla_324477.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\DatePicker.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ComboBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\user_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\CheckBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ampel-gelb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ampel-gruen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ampel-rot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/GUIs.ClientSuite/My Project/Settings.Designer.vb b/GUIs.ClientSuite/My Project/Settings.Designer.vb deleted file mode 100644 index e1bda371..00000000 --- a/GUIs.ClientSuite/My Project/Settings.Designer.vb +++ /dev/null @@ -1,82 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Public NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - - _ - Public ReadOnly Property IDBNetworkServiceAddress() As String - Get - Return CType(Me("IDBNetworkServiceAddress"),String) - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.GUIs.ClientSuite.My.MySettings - Get - Return Global.DigitalData.GUIs.ClientSuite.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/GUIs.ClientSuite/My Project/Settings.settings b/GUIs.ClientSuite/My Project/Settings.settings deleted file mode 100644 index b8867bbb..00000000 --- a/GUIs.ClientSuite/My Project/Settings.settings +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - net.tcp://172.24.12.39:9000/DigitalData/Services/Main - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/My Project/app.manifest b/GUIs.ClientSuite/My Project/app.manifest deleted file mode 100644 index ef881eb8..00000000 --- a/GUIs.ClientSuite/My Project/app.manifest +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/GUIs.ClientSuite/My Project/licenses.licx b/GUIs.ClientSuite/My Project/licenses.licx deleted file mode 100644 index e69de29b..00000000 diff --git a/GUIs.ClientSuite/My Project/licenses.licx.bak b/GUIs.ClientSuite/My Project/licenses.licx.bak deleted file mode 100644 index fff75b68..00000000 --- a/GUIs.ClientSuite/My Project/licenses.licx.bak +++ /dev/null @@ -1,10 +0,0 @@ -DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ClientSuite/MyApplication.vb b/GUIs.ClientSuite/MyApplication.vb deleted file mode 100644 index 6751fcf3..00000000 --- a/GUIs.ClientSuite/MyApplication.vb +++ /dev/null @@ -1,46 +0,0 @@ -Imports System.ServiceModel -Imports System.Threading -Imports DigitalData.Modules.Config -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference - -Namespace My - ''' - ''' Extends the My Namespace - ''' Example: My.LogConfig - ''' - - Module Extension - Property SystemConfigManager As ConfigManager(Of ClassConfig) - ReadOnly Property SysConfig As ClassConfig - Get - Return SystemConfigManager.Config - End Get - End Property - - Property UIConfigManager As ConfigManager(Of ClassUIConfig) - ReadOnly Property UIConfig As ClassUIConfig - Get - Return UIConfigManager.Config - End Get - End Property - - Property LogConfig As LogConfig - Property ChannelFactory As ChannelFactory(Of IEDMIServiceChannel) - Property Channel As IEDMIServiceChannel - Property MainForm As frmMain - Property Common As ClassCommon - End Module - - ''' - ''' Extends the My.Application Namespace to hold Application State - ''' Example: My.Application.User - ''' - Partial Class MyApplication - ' User Config - Public User As New ClassUserState() - Public Service As New ClassServiceState() - End Class -End Namespace - - diff --git a/GUIs.ClientSuite/Panels/BasePanel.Designer.vb b/GUIs.ClientSuite/Panels/BasePanel.Designer.vb deleted file mode 100644 index fb6a0d8b..00000000 --- a/GUIs.ClientSuite/Panels/BasePanel.Designer.vb +++ /dev/null @@ -1,29 +0,0 @@ - _ -Partial Class BasePanel - Inherits System.Windows.Forms.UserControl - - 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - components = New System.ComponentModel.Container() - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - End Sub - -End Class diff --git a/GUIs.ClientSuite/Panels/BasePanel.vb b/GUIs.ClientSuite/Panels/BasePanel.vb deleted file mode 100644 index 46978bc6..00000000 --- a/GUIs.ClientSuite/Panels/BasePanel.vb +++ /dev/null @@ -1,8 +0,0 @@ -Public Class BasePanel - Public Property Caption As String - Public ReadOnly Property OwnerForm As Integer - Get - Return Parent?.Parent?.Tag - End Get - End Property -End Class diff --git a/GUIs.ClientSuite/Panels/DocumentPanel.Designer.vb b/GUIs.ClientSuite/Panels/DocumentPanel.Designer.vb deleted file mode 100644 index 05bf67b9..00000000 --- a/GUIs.ClientSuite/Panels/DocumentPanel.Designer.vb +++ /dev/null @@ -1,61 +0,0 @@ - _ -Partial Class DocumentPanel - Inherits BasePanel - - 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.GridControlMain = New DevExpress.XtraGrid.GridControl() - Me.GridViewMain = New DevExpress.XtraGrid.Views.Grid.GridView() - CType(Me.GridControlMain, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridViewMain, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'GridControlMain - ' - Me.GridControlMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridControlMain.Location = New System.Drawing.Point(0, 0) - Me.GridControlMain.MainView = Me.GridViewMain - Me.GridControlMain.Name = "GridControlMain" - Me.GridControlMain.Size = New System.Drawing.Size(1027, 383) - Me.GridControlMain.TabIndex = 0 - Me.GridControlMain.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewMain}) - ' - 'GridViewMain - ' - Me.GridViewMain.GridControl = Me.GridControlMain - Me.GridViewMain.Name = "GridViewMain" - ' - 'DocumentPanel - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Controls.Add(Me.GridControlMain) - Me.Name = "DocumentPanel" - Me.Size = New System.Drawing.Size(1027, 383) - CType(Me.GridControlMain, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridViewMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents GridControlMain As DevExpress.XtraGrid.GridControl - Friend WithEvents GridViewMain As DevExpress.XtraGrid.Views.Grid.GridView -End Class diff --git a/GUIs.ClientSuite/Panels/DocumentPanel.resx b/GUIs.ClientSuite/Panels/DocumentPanel.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/Panels/DocumentPanel.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/Panels/DocumentPanel.vb b/GUIs.ClientSuite/Panels/DocumentPanel.vb deleted file mode 100644 index beca791e..00000000 --- a/GUIs.ClientSuite/Panels/DocumentPanel.vb +++ /dev/null @@ -1,28 +0,0 @@ -Imports DevExpress.XtraGrid -Imports DevExpress.XtraGrid.Views.Grid -Imports DigitalData.GUIs.ClientSuite - -Public Class DocumentPanel - Inherits BasePanel - - Public WriteOnly Property Datasource As DataTable - Set(value As DataTable) - GridControlMain.DataSource = value - End Set - End Property - - Private Sub DocumentPanel_Load(sender As Object, e As EventArgs) Handles Me.Load - Dim oGridPatcher As New ClassControlPatcher(Of GridControl)(Me) - oGridPatcher. - ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings). - ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings) - End Sub - - Private Sub GridViewMain_RowClick(sender As Object, e As RowClickEventArgs) Handles GridViewMain.RowClick - If e.Button = MouseButtons.Left And e.Clicks = 2 Then - MsgBox($"Open Preview for form {OwnerForm}") - - 'TODO: Open Preview Panel for OwnerForm - End If - End Sub -End Class diff --git a/GUIs.ClientSuite/Panels/PanelInfo.vb b/GUIs.ClientSuite/Panels/PanelInfo.vb deleted file mode 100644 index b72b2fad..00000000 --- a/GUIs.ClientSuite/Panels/PanelInfo.vb +++ /dev/null @@ -1,26 +0,0 @@ -Imports DevExpress.XtraBars.Docking - -Public Class PanelInfo - Public ReadOnly Title As String - Public ReadOnly PanelControl As BasePanel - Public ReadOnly Position As DockingStyle - Public ReadOnly Datasource As DataTable - - Public CanBeClosed As Boolean = True - Public CanBePinned As Boolean = True - Public CanBeUndocked As Boolean = True - Public CanBeMaximized As Boolean = True - - Public Sub New(PanelControl As BasePanel, Position As DockingStyle) - Me.Title = PanelControl.Caption - Me.PanelControl = PanelControl - Me.Position = Position - End Sub - - Public Sub New(PanelControl As BasePanel, Position As DockingStyle, Datasource As DataTable) - Me.Title = PanelControl.Caption - Me.PanelControl = PanelControl - Me.Position = Position - Me.Datasource = Datasource - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/Resources/CheckBox.png b/GUIs.ClientSuite/Resources/CheckBox.png deleted file mode 100644 index d7cb93f4..00000000 Binary files a/GUIs.ClientSuite/Resources/CheckBox.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/ComboBox.png b/GUIs.ClientSuite/Resources/ComboBox.png deleted file mode 100644 index 91985513..00000000 Binary files a/GUIs.ClientSuite/Resources/ComboBox.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/DatePicker.png b/GUIs.ClientSuite/Resources/DatePicker.png deleted file mode 100644 index 273433cc..00000000 Binary files a/GUIs.ClientSuite/Resources/DatePicker.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/StatusAnnotations_Complete_and_ok_32xLG.png b/GUIs.ClientSuite/Resources/StatusAnnotations_Complete_and_ok_32xLG.png deleted file mode 100644 index 2d79cef4..00000000 Binary files a/GUIs.ClientSuite/Resources/StatusAnnotations_Complete_and_ok_32xLG.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/TextBox.png b/GUIs.ClientSuite/Resources/TextBox.png deleted file mode 100644 index e38d5a05..00000000 Binary files a/GUIs.ClientSuite/Resources/TextBox.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/ampel-gelb.png b/GUIs.ClientSuite/Resources/ampel-gelb.png deleted file mode 100644 index 5d51423e..00000000 Binary files a/GUIs.ClientSuite/Resources/ampel-gelb.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/ampel-gruen.png b/GUIs.ClientSuite/Resources/ampel-gruen.png deleted file mode 100644 index fe34e2a5..00000000 Binary files a/GUIs.ClientSuite/Resources/ampel-gruen.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/ampel-rot.png b/GUIs.ClientSuite/Resources/ampel-rot.png deleted file mode 100644 index 97dae97a..00000000 Binary files a/GUIs.ClientSuite/Resources/ampel-rot.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/email_go.png b/GUIs.ClientSuite/Resources/email_go.png deleted file mode 100644 index 4a6c5d39..00000000 Binary files a/GUIs.ClientSuite/Resources/email_go.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/folder_go.png b/GUIs.ClientSuite/Resources/folder_go.png deleted file mode 100644 index 34a736f7..00000000 Binary files a/GUIs.ClientSuite/Resources/folder_go.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/iconfinder_Gowalla_324477.png b/GUIs.ClientSuite/Resources/iconfinder_Gowalla_324477.png deleted file mode 100644 index 315254e4..00000000 Binary files a/GUIs.ClientSuite/Resources/iconfinder_Gowalla_324477.png and /dev/null differ diff --git a/GUIs.ClientSuite/Resources/user_16xLG.png b/GUIs.ClientSuite/Resources/user_16xLG.png deleted file mode 100644 index b1382443..00000000 Binary files a/GUIs.ClientSuite/Resources/user_16xLG.png and /dev/null differ diff --git a/GUIs.ClientSuite/State/ClassServiceState.vb b/GUIs.ClientSuite/State/ClassServiceState.vb deleted file mode 100644 index 25047b48..00000000 --- a/GUIs.ClientSuite/State/ClassServiceState.vb +++ /dev/null @@ -1,4 +0,0 @@ -Public Class ClassServiceState - Public Property Online As Boolean = True - Public Property LastChecked As DateTime = DateTime.Now -End Class diff --git a/GUIs.ClientSuite/State/ClassUserState.vb b/GUIs.ClientSuite/State/ClassUserState.vb deleted file mode 100644 index 41bc5b75..00000000 --- a/GUIs.ClientSuite/State/ClassUserState.vb +++ /dev/null @@ -1,20 +0,0 @@ -Imports System.Threading - -''' -''' Helper Class to hold User State -''' -Public Class ClassUserState - Public UserName As String - Public MachineName As String - Public Language As String - Public IsAdmin As Boolean - - ''' - ''' Initialize user object with values that can be read from the environment - ''' - Public Sub New() - Language = Thread.CurrentThread.CurrentCulture.Name - UserName = Environment.UserName - MachineName = Environment.MachineName - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/Strings/ControlProperties.Designer.vb b/GUIs.ClientSuite/Strings/ControlProperties.Designer.vb deleted file mode 100644 index 941129d9..00000000 --- a/GUIs.ClientSuite/Strings/ControlProperties.Designer.vb +++ /dev/null @@ -1,472 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Public Class ControlProperties - - Private Shared resourceMan As Global.System.Resources.ResourceManager - - Private Shared resourceCulture As Global.System.Globalization.CultureInfo - - _ - Friend Sub New() - MyBase.New - End Sub - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Public Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.GUIs.ClientSuite.ControlProperties", GetType(ControlProperties).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Public Shared Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Termin Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_appointment() As String - Get - Return ResourceManager.GetString("category_appointment", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Daten ähnelt. - ''' - Public Shared ReadOnly Property category_data() As String - Get - Return ResourceManager.GetString("category_data", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Datenbank Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_database() As String - Get - Return ResourceManager.GetString("category_database", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Datums Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_date() As String - Get - Return ResourceManager.GetString("category_date", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Schrift Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_font() As String - Get - Return ResourceManager.GetString("category_font", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Form Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_form() As String - Get - Return ResourceManager.GetString("category_form", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Information ähnelt. - ''' - Public Shared ReadOnly Property category_info() As String - Get - Return ResourceManager.GetString("category_info", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Eingabe Eigenschaften ähnelt. - ''' - Public Shared ReadOnly Property category_input() As String - Get - Return ResourceManager.GetString("category_input", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Andere Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_other() As String - Get - Return ResourceManager.GetString("category_other", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Ansichts Einstellungen ähnelt. - ''' - Public Shared ReadOnly Property category_view() As String - Get - Return ResourceManager.GetString("category_view", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Schlägt bereits eingegebene Einträge bei der der Eingabe vor. ähnelt. - ''' - Public Shared ReadOnly Property desc_autosuggest() As String - Get - Return ResourceManager.GetString("desc_autosuggest", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Hintergrundfarbe des Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_backcolor() As String - Get - Return ResourceManager.GetString("desc_backcolor", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den Beschreibungstext dieses Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_caption() As String - Get - Return ResourceManager.GetString("desc_caption", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den Spaltentitel des Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_col_title() As String - Get - Return ResourceManager.GetString("desc_col_title", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Farbe an. ähnelt. - ''' - Public Shared ReadOnly Property desc_color() As String - Get - Return ResourceManager.GetString("desc_color", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Legt die Datenquelle des Elements fest. ähnelt. - ''' - Public Shared ReadOnly Property desc_datasource() As String - Get - Return ResourceManager.GetString("desc_datasource", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den Standardwert dieses Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_defaultvalue() As String - Get - Return ResourceManager.GetString("desc_defaultvalue", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Beschreibung des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden ähnelt. - ''' - Public Shared ReadOnly Property desc_description() As String - Get - Return ResourceManager.GetString("desc_description", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt einen SQL Befehl an, der das Control abhängig vom Ergebnis (0 oder 1) aktiviert oder deaktiviert ähnelt. - ''' - Public Shared ReadOnly Property desc_enabledwhen() As String - Get - Return ResourceManager.GetString("desc_enabledwhen", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Schriftart an. ähnelt. - ''' - Public Shared ReadOnly Property desc_fontstyle() As String - Get - Return ResourceManager.GetString("desc_fontstyle", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt das Format des Textes an. ähnelt. - ''' - Public Shared ReadOnly Property desc_format() As String - Get - Return ResourceManager.GetString("desc_format", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Form-ID der zu öffnenden Form an. ähnelt. - ''' - Public Shared ReadOnly Property desc_formid() As String - Get - Return ResourceManager.GetString("desc_formid", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Der Name eines Elements von dem das End-Datum gelesen wird. ähnelt. - ''' - Public Shared ReadOnly Property desc_fromdate() As String - Get - Return ResourceManager.GetString("desc_fromdate", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Der Text, der beim überfahren des Controls angezeigt wird ähnelt. - ''' - Public Shared ReadOnly Property desc_hint() As String - Get - Return ResourceManager.GetString("desc_hint", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die eindeutige ID des Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_id() As String - Get - Return ResourceManager.GetString("desc_id", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Position des Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_location() As String - Get - Return ResourceManager.GetString("desc_location", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Die Id des Formulars, das über das Kontextmenü geöffnet wird. ähnelt. - ''' - Public Shared ReadOnly Property desc_masterdataid() As String - Get - Return ResourceManager.GetString("desc_masterdataid", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an, ob das Feld mehrzeilig sein soll. ähnelt. - ''' - Public Shared ReadOnly Property desc_multiline() As String - Get - Return ResourceManager.GetString("desc_multiline", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den internen Namen des Elements an. ähnelt. - ''' - Public Shared ReadOnly Property desc_name() As String - Get - Return ResourceManager.GetString("desc_name", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den Ort des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden ähnelt. - ''' - Public Shared ReadOnly Property desc_place() As String - Get - Return ResourceManager.GetString("desc_place", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an, ob dieses Element nur lesbar ist. ähnelt. - ''' - Public Shared ReadOnly Property desc_readonly() As String - Get - Return ResourceManager.GetString("desc_readonly", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an ob dieses Element benötigt wird um die Eingabe abzuschließen. ähnelt. - ''' - Public Shared ReadOnly Property desc_required() As String - Get - Return ResourceManager.GetString("desc_required", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Screen-ID der zu öffnenden Form an. ähnelt. - ''' - Public Shared ReadOnly Property desc_screenid() As String - Get - Return ResourceManager.GetString("desc_screenid", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an, ob nur vorhandene Listeneinträge ausgewählt werden können ähnelt. - ''' - Public Shared ReadOnly Property desc_select_only() As String - Get - Return ResourceManager.GetString("desc_select_only", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an, ob das Feld als Spalte im Grid angezeigt wird. ähnelt. - ''' - Public Shared ReadOnly Property desc_showcolumn() As String - Get - Return ResourceManager.GetString("desc_showcolumn", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Größe des Elements an ähnelt. - ''' - Public Shared ReadOnly Property desc_size() As String - Get - Return ResourceManager.GetString("desc_size", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Datenbank-Abfrage für dieses Element an. Es können @RECORD_ID und @FORM_ID als Platzhalter verwendet werden. ähnelt. - ''' - Public Shared ReadOnly Property desc_sqlcommand() As String - Get - Return ResourceManager.GetString("desc_sqlcommand", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Eine Liste von statischen Werten, die durch ';' getrennt sind. Überschreibt die Daten aus 'Datenbank-Einstellungen' ähnelt. - ''' - Public Shared ReadOnly Property desc_staticlist() As String - Get - Return ResourceManager.GetString("desc_staticlist", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den Betreff des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden ähnelt. - ''' - Public Shared ReadOnly Property desc_subject() As String - Get - Return ResourceManager.GetString("desc_subject", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt den optionalen zweiten Betreff des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden ähnelt. - ''' - Public Shared ReadOnly Property desc_subject2() As String - Get - Return ResourceManager.GetString("desc_subject2", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Reihenfolge an, in der das Element durch die Tabulatortaste aktiviert wird. ähnelt. - ''' - Public Shared ReadOnly Property desc_tabindex() As String - Get - Return ResourceManager.GetString("desc_tabindex", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an, ob das Element durch die Tabulartortaste aktiviert werden soll. ähnelt. - ''' - Public Shared ReadOnly Property desc_tabstop() As String - Get - Return ResourceManager.GetString("desc_tabstop", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Der Name eines Elements von dem das Start-Datum gelesen wird. ähnelt. - ''' - Public Shared ReadOnly Property desc_todate() As String - Get - Return ResourceManager.GetString("desc_todate", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Der Typ des Elements ähnelt. - ''' - Public Shared ReadOnly Property desc_type() As String - Get - Return ResourceManager.GetString("desc_type", resourceCulture) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Zeichenfolge, die Gibt an, ob das Element angezeigt wird. ähnelt. - ''' - Public Shared ReadOnly Property desc_visible() As String - Get - Return ResourceManager.GetString("desc_visible", resourceCulture) - End Get - End Property - End Class -End Namespace diff --git a/GUIs.ClientSuite/Strings/ControlProperties.en.Designer.vb b/GUIs.ClientSuite/Strings/ControlProperties.en.Designer.vb deleted file mode 100644 index e69de29b..00000000 diff --git a/GUIs.ClientSuite/Strings/ControlProperties.en.resx b/GUIs.ClientSuite/Strings/ControlProperties.en.resx deleted file mode 100644 index 9425bb30..00000000 --- a/GUIs.ClientSuite/Strings/ControlProperties.en.resx +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Scheduler Configuration - - - Data - - - Database Configuration - - - Date Configuration - - - Font Configuration - - - Form Configuration - - - Information - - - Other Configuration - - - View Configuration - - - Suggests already entered entries - - - The element's background color. - - - The element's caption. - - - The element's color. - - - The element's colum title. - - - The element's default value. - - - The appointment's description. Dynamic values from other controls can be inserted with the syntax [%controlname]. - - - An SQL Query that enables or disables the Control depending on the result (0 or 1) - - - The element's font style. - - - The element's number format. - - - The form-ID of the form that will be opened. - - - The appointment's start-date. Dynamic values from other controls can be inserted with the syntax [%controlname]. - - - The text that will be shown when the control is hovered over - - - The element's unique identifier. - - - The element's location - - - The Form's Id that will be opened via the contextmenu. - - - Should the element be a multiline field? - - - The element's internal name - - - The appointment's location. Dynamic values from other controls can be inserted with the syntax [%controlname]. - - - Is the element read-only? - - - Is the element required to be filled to complete the input? - - - The screen-ID of the form that will be opened. - - - Can only existing list items be selected? - - - Should the element be show as a column? - - - The element's size - - - The database query for this element. @RECORD_ID and @FORM_ID can be used as placeholders. Dynamic values from other controls can be inserted with the Syntax @controlid@. - - - A list of static values seperated by a semicolon (;) - - - The appointment's subject. Dynamic values from other controls can be inserted with the syntax [%controlname]. - - - The appointment's optional secondary subject. Dynamic values from other controls can be inserted with the syntax [%controlname]. - - - The order in which this element should be activated by the tab key. - - - Should this element be activated by the tab key? - - - The appointment's end-date. Dynamic values from other controls can be inserted with the syntax [%controlname]. - - - The element's type - - - Should the element be visible? - - - Input Configuration - - - Sets the element's datasource - - \ No newline at end of file diff --git a/GUIs.ClientSuite/Strings/ControlProperties.resx b/GUIs.ClientSuite/Strings/ControlProperties.resx deleted file mode 100644 index fd7976f0..00000000 --- a/GUIs.ClientSuite/Strings/ControlProperties.resx +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Termin Einstellungen - - - Daten - - - Datenbank Einstellungen - - - Datums Einstellungen - - - Schrift Einstellungen - - - Form Einstellungen - - - Information - - - Andere Einstellungen - - - Ansichts Einstellungen - - - Schlägt bereits eingegebene Einträge bei der der Eingabe vor. - - - Gibt die Hintergrundfarbe des Elements an. - - - Gibt den Beschreibungstext dieses Elements an. - - - Gibt die Farbe an. - - - Gibt den Spaltentitel des Elements an. - - - Gibt den Standardwert dieses Elements an. - - - Gibt die Beschreibung des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden - - - Gibt einen SQL Befehl an, der das Control abhängig vom Ergebnis (0 oder 1) aktiviert oder deaktiviert - - - Gibt die Schriftart an. - - - Gibt das Format des Textes an. - - - Gibt die Form-ID der zu öffnenden Form an. - - - Der Name eines Elements von dem das End-Datum gelesen wird. - - - Der Text, der beim überfahren des Controls angezeigt wird - - - Gibt die eindeutige ID des Elements an. - - - Gibt die Position des Elements an. - - - Die Id des Formulars, das über das Kontextmenü geöffnet wird. - - - Gibt an, ob das Feld mehrzeilig sein soll. - - - Gibt den internen Namen des Elements an. - - - Gibt den Ort des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden - - - Gibt an, ob dieses Element nur lesbar ist. - - - Gibt an ob dieses Element benötigt wird um die Eingabe abzuschließen. - - - Gibt die Screen-ID der zu öffnenden Form an. - - - Gibt an, ob nur vorhandene Listeneinträge ausgewählt werden können - - - Gibt an, ob das Feld als Spalte im Grid angezeigt wird. - - - Gibt die Größe des Elements an - - - Gibt die Datenbank-Abfrage für dieses Element an. Es können @RECORD_ID und @FORM_ID als Platzhalter verwendet werden. - - - Eine Liste von statischen Werten, die durch ';' getrennt sind. Überschreibt die Daten aus 'Datenbank-Einstellungen' - - - Gibt den Betreff des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden - - - Gibt den optionalen zweiten Betreff des Termins an. Dynamische Werte aus anderen Controls können mit der Syntax [%controlname] eingefügt werden - - - Gibt die Reihenfolge an, in der das Element durch die Tabulatortaste aktiviert wird. - - - Gibt an, ob das Element durch die Tabulartortaste aktiviert werden soll. - - - Der Name eines Elements von dem das Start-Datum gelesen wird. - - - Der Typ des Elements - - - Gibt an, ob das Element angezeigt wird. - - - Eingabe Eigenschaften - - - Legt die Datenquelle des Elements fest. - - \ No newline at end of file diff --git a/GUIs.ClientSuite/Widgets/ProcessManagerWidget.Designer.vb b/GUIs.ClientSuite/Widgets/ProcessManagerWidget.Designer.vb deleted file mode 100644 index ba4e5736..00000000 --- a/GUIs.ClientSuite/Widgets/ProcessManagerWidget.Designer.vb +++ /dev/null @@ -1,66 +0,0 @@ - _ -Partial Class ProcessManagerWidget - Inherits System.Windows.Forms.UserControl - - 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.GridMain = New DevExpress.XtraGrid.GridControl() - Me.ViewMain = New DevExpress.XtraGrid.Views.Grid.GridView() - CType(Me.GridMain, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ViewMain, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'GridMain - ' - Me.GridMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridMain.Location = New System.Drawing.Point(0, 0) - Me.GridMain.MainView = Me.ViewMain - Me.GridMain.Name = "GridMain" - Me.GridMain.Size = New System.Drawing.Size(405, 325) - Me.GridMain.TabIndex = 0 - Me.GridMain.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewMain}) - ' - 'ViewMain - ' - Me.ViewMain.GridControl = Me.GridMain - Me.ViewMain.Name = "ViewMain" - Me.ViewMain.OptionsBehavior.Editable = False - Me.ViewMain.OptionsBehavior.ReadOnly = True - Me.ViewMain.OptionsView.ColumnAutoWidth = False - Me.ViewMain.OptionsView.EnableAppearanceEvenRow = True - Me.ViewMain.OptionsView.ShowAutoFilterRow = True - ' - 'ProcessManagerOverview - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Controls.Add(Me.GridMain) - Me.Name = "ProcessManagerOverview" - Me.Size = New System.Drawing.Size(405, 325) - CType(Me.GridMain, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents GridMain As DevExpress.XtraGrid.GridControl - Friend WithEvents ViewMain As DevExpress.XtraGrid.Views.Grid.GridView -End Class diff --git a/GUIs.ClientSuite/Widgets/ProcessManagerWidget.resx b/GUIs.ClientSuite/Widgets/ProcessManagerWidget.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/Widgets/ProcessManagerWidget.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/Widgets/ProcessManagerWidget.vb b/GUIs.ClientSuite/Widgets/ProcessManagerWidget.vb deleted file mode 100644 index f4950a40..00000000 --- a/GUIs.ClientSuite/Widgets/ProcessManagerWidget.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports DevExpress.XtraGrid - -Public Class ProcessManagerWidget - Public Sub New() - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) - oGridPatcher. - ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings). - ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings) - - - End Sub - - Public Delegate Sub RowDoubleClickedDelegate(RowView As DataRowView) - Public Event RowDoubleClicked As RowDoubleClickedDelegate - - Public Property DataSource As DataTable - Get - Return GridMain.DataSource - End Get - Set(value As DataTable) - GridMain.DataSource = value - End Set - End Property - - Private Sub ViewMain_RowClick(sender As Object, e As DevExpress.XtraGrid.Views.Grid.RowClickEventArgs) Handles ViewMain.RowClick - If e.Clicks = 2 Then - Dim oRow As DataRowView = ViewMain.GetRow(e.RowHandle) - RaiseEvent RowDoubleClicked(oRow) - End If - End Sub -End Class diff --git a/GUIs.ClientSuite/Workers/HeartbeatWorker.vb b/GUIs.ClientSuite/Workers/HeartbeatWorker.vb deleted file mode 100644 index 892b90bd..00000000 --- a/GUIs.ClientSuite/Workers/HeartbeatWorker.vb +++ /dev/null @@ -1,60 +0,0 @@ -Imports System.Timers -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Namespace Workers - Public Class HeartbeatWorker - Inherits BaseClass - Implements IWorker - - Public Event OnlineChanged As OnlineChangedEventHandler - Public Delegate Sub OnlineChangedEventHandler(sender As Object, Online As Boolean) - - 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) - MyBase.New(LogConfig) - End Sub - - Public Sub Setup() Implements IWorker.Setup - Logger.Debug("Starting {0}", "HeartbeatWorker") - End Sub - - Public Async Sub Callback(Manager As WorkerManager, e As ElapsedEventArgs) Implements IWorker.Callback - Try - If My.Channel.State = ServiceModel.CommunicationState.Faulted Then - My.Channel = My.ChannelFactory.CreateChannel() - End If - - ' Connect to service and send hearbeat request - Dim oResult = Await My.Channel.HeartbeatAsync() - - Logger.Debug("Service is online") - - SetOnlineState(True) - Catch ex As Exception - - Logger.Debug("Service is offline!") - Logger.Error(ex) - - Manager.StopWorkers() - SetOnlineState(False) - Finally - My.Application.Service.LastChecked = DateTime.Now - End Try - End Sub - - Public Sub Teardown() Implements IWorker.Teardown - Logger.Debug("Stopping {0}", Name) - End Sub - - Private Sub SetOnlineState(NewState As Boolean) - If My.Application.Service.Online <> NewState Then - My.Application.Service.Online = NewState - RaiseEvent OnlineChanged(Me, NewState) - End If - End Sub - End Class -End Namespace - diff --git a/GUIs.ClientSuite/Workers/IWorker.vb b/GUIs.ClientSuite/Workers/IWorker.vb deleted file mode 100644 index 3a967712..00000000 --- a/GUIs.ClientSuite/Workers/IWorker.vb +++ /dev/null @@ -1,13 +0,0 @@ -Imports System.Timers - -Namespace Workers - Public Interface IWorker - ReadOnly Property Interval As Integer - ReadOnly Property Name As String - - Sub Setup() - Sub Teardown() - Sub Callback(manager As WorkerManager, e As ElapsedEventArgs) - End Interface -End Namespace - diff --git a/GUIs.ClientSuite/Workers/WorkerManager.vb b/GUIs.ClientSuite/Workers/WorkerManager.vb deleted file mode 100644 index e3407bc7..00000000 --- a/GUIs.ClientSuite/Workers/WorkerManager.vb +++ /dev/null @@ -1,100 +0,0 @@ -Imports System.Timers -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Namespace Workers - Public Class WorkerManager - Inherits BaseClass - - ''' - ''' Holds information about a worker - ''' - Class WorkerState - Public Worker As IWorker - Public Timer As Timer - End Class - - ''' - ''' List of workers that will be started. - ''' - Private WorkerTypes As New List(Of Type) From { - GetType(HeartbeatWorker), - GetType(WorkflowOverviewWorker) - } - Private Workers As New List(Of WorkerState) - - Public Sub New(LogConfig As LogConfig, SyncronizingObject As frmMain) - MyBase.New(LogConfig) - - Workers = CreateWorkers(SyncronizingObject) - End Sub - - Public Function GetWorker(Of T)() As T - For Each oWorkerState As WorkerState In Workers - If TypeOf oWorkerState.Worker Is T Then - Return oWorkerState.Worker - End If - Next - - Return Nothing - End Function - - Public Sub StopWorkers() - 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 - Dim oWorker As IWorker = Activator.CreateInstance(oWorkerType, New Object() {LogConfig}) - - Try - oWorker.Setup() - - Dim oWorkerState As New WorkerState() With { - .Worker = oWorker, - .Timer = CreateTimer(oWorker, SyncronizingObject) - } - - oWorkers.Add(oWorkerState) - Catch ex As Exception - Logger.Warn("Worker {0} threw an error during setup. Skipping.", oWorker.Name) - Logger.Error(ex) - Continue For - End Try - Next - - Return oWorkers - End Function - End Class -End Namespace - diff --git a/GUIs.ClientSuite/Workers/WorkflowOverviewWorker.vb b/GUIs.ClientSuite/Workers/WorkflowOverviewWorker.vb deleted file mode 100644 index 1e70e8be..00000000 --- a/GUIs.ClientSuite/Workers/WorkflowOverviewWorker.vb +++ /dev/null @@ -1,33 +0,0 @@ -Imports System.Timers -Imports DigitalData.GUIs.ClientSuite.Base -Imports DigitalData.Modules.Logging - -Namespace Workers - Public Class WorkflowOverviewWorker - Inherits BaseClass - Implements IWorker - - Public Sub New(LogConfig As LogConfig) - MyBase.New(LogConfig) - End Sub - - 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 - Throw New NotImplementedException() - End Sub - - Public Sub Teardown() Implements IWorker.Teardown - Throw New NotImplementedException() - End Sub - - Public Async Sub Callback(manager As WorkerManager, e As ElapsedEventArgs) Implements IWorker.Callback - Dim oSQL = $"" - Await My.Channel.CreateDatabaseRequestAsync("Get WFOverview", True) - - Throw New NotImplementedException() - End Sub - End Class -End Namespace - diff --git a/GUIs.ClientSuite/_TEST/DockManagerTest.Designer.vb b/GUIs.ClientSuite/_TEST/DockManagerTest.Designer.vb deleted file mode 100644 index bda335e8..00000000 --- a/GUIs.ClientSuite/_TEST/DockManagerTest.Designer.vb +++ /dev/null @@ -1,81 +0,0 @@ - _ -Partial Class DockManagerTest - Inherits DevExpress.XtraBars.Ribbon.RibbonForm - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'RibbonControl - ' - Me.RibbonControl.ExpandCollapseItem.Id = 0 - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem}) - Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 1 - Me.RibbonControl.Name = "RibbonControl" - Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl.Size = New System.Drawing.Size(1071, 146) - Me.RibbonControl.StatusBar = Me.RibbonStatusBar - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 617) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(1071, 21) - ' - 'DockManagerTest - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1071, 638) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.RibbonControl) - Me.Name = "DockManagerTest" - Me.Ribbon = Me.RibbonControl - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "DockManagerTest" - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - - -End Class diff --git a/GUIs.ClientSuite/_TEST/DockManagerTest.resx b/GUIs.ClientSuite/_TEST/DockManagerTest.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/_TEST/DockManagerTest.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/DockManagerTest.vb b/GUIs.ClientSuite/_TEST/DockManagerTest.vb deleted file mode 100644 index 429b8add..00000000 --- a/GUIs.ClientSuite/_TEST/DockManagerTest.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class DockManagerTest - -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/frmDocTest.Designer.vb b/GUIs.ClientSuite/_TEST/frmDocTest.Designer.vb deleted file mode 100644 index 3c41f2b8..00000000 --- a/GUIs.ClientSuite/_TEST/frmDocTest.Designer.vb +++ /dev/null @@ -1,121 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmDocTest - Inherits BaseForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.GridControl1 = New DevExpress.XtraGrid.GridControl() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.txtDoctype = New System.Windows.Forms.TextBox() - Me.Button1 = New System.Windows.Forms.Button() - Me.txtDocId = New System.Windows.Forms.TextBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'GridControl1 - ' - Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Top - Me.GridControl1.Location = New System.Drawing.Point(0, 0) - Me.GridControl1.MainView = Me.GridView1 - Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(800, 267) - Me.GridControl1.TabIndex = 0 - Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) - ' - 'GridView1 - ' - Me.GridView1.GridControl = Me.GridControl1 - Me.GridView1.Name = "GridView1" - ' - 'txtDoctype - ' - Me.txtDoctype.Location = New System.Drawing.Point(100, 299) - Me.txtDoctype.Name = "txtDoctype" - Me.txtDoctype.Size = New System.Drawing.Size(100, 20) - Me.txtDoctype.TabIndex = 1 - ' - 'Button1 - ' - Me.Button1.Location = New System.Drawing.Point(652, 511) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(136, 56) - Me.Button1.TabIndex = 2 - Me.Button1.Text = "Speichern" - Me.Button1.UseVisualStyleBackColor = True - ' - 'TextBox1 - ' - Me.txtDocId.Location = New System.Drawing.Point(100, 273) - Me.txtDocId.Name = "TextBox1" - Me.txtDocId.Size = New System.Drawing.Size(100, 20) - Me.txtDocId.TabIndex = 3 - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 302) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(47, 13) - Me.Label1.TabIndex = 4 - Me.Label1.Text = "Doctype" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(12, 276) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(36, 13) - Me.Label2.TabIndex = 4 - Me.Label2.Text = "DocId" - ' - 'frmDocTest - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 579) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.txtDocId) - Me.Controls.Add(Me.Button1) - Me.Controls.Add(Me.txtDoctype) - Me.Controls.Add(Me.GridControl1) - Me.Name = "frmDocTest" - Me.Text = "DocValue Test" - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents txtDoctype As TextBox - Friend WithEvents Button1 As Button - Friend WithEvents txtDocId As TextBox - Friend WithEvents Label1 As Label - Friend WithEvents Label2 As Label -End Class diff --git a/GUIs.ClientSuite/_TEST/frmDocTest.resx b/GUIs.ClientSuite/_TEST/frmDocTest.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/_TEST/frmDocTest.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/frmDocTest.vb b/GUIs.ClientSuite/_TEST/frmDocTest.vb deleted file mode 100644 index f94b8533..00000000 --- a/GUIs.ClientSuite/_TEST/frmDocTest.vb +++ /dev/null @@ -1,47 +0,0 @@ -Imports DevExpress.XtraGrid - -Public Class frmDocTest - Private Sub DocTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Try - Dim oControlPatcher = New ClassControlPatcher(Of GridControl)(Me) - oControlPatcher. - ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings). - ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings) - - Dim oSQL = "SELECT * FROM VWIDB_DOC_METADATA_DE" - My.Channel.CreateDatabaseRequest("Load Doc Values", True) - - Dim oResult = My.Channel.ReturnDatatable(oSQL) - - If Not oResult.OK Then - MsgBox(oResult.ErrorMessage) - Exit Sub - End If - - My.Channel.CloseDatabaseRequest() - - Dim oDatatable As DataTable = oResult.Table - - txtDoctype.DataBindings.Add(New Binding("Text", oDatatable, "DOCTYPE")) - txtDocId.DataBindings.Add(New Binding("Text", oDatatable, "DOC_ID")) - - GridControl1.DataSource = oDatatable - Catch ex As Exception - ShowErrorMessage(ex) - End Try - End Sub - - Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - Dim oDocId As Int64 = Int64.Parse(txtDocId.Text) - Dim oValue As String = txtDoctype.Text - Dim oSyskey As String = "001-DOCTYPE" - Dim oResult = Await My.Common.Commands.FNIDB_NEW_DOC_VALUE(oDocId, oSyskey, My.Application.User.Language, oValue) - - If Not oResult.OK Then - MsgBox(oResult.ErrorMessage) - Exit Sub - End If - - My.Channel.CloseDatabaseRequest() - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb b/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb deleted file mode 100644 index c80e2915..00000000 --- a/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb +++ /dev/null @@ -1,64 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmFileTest - Inherits BaseForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Me.Button1 = New System.Windows.Forms.Button() - Me.listboxLog = New System.Windows.Forms.ListBox() - Me.SuspendLayout() - ' - 'Button1 - ' - Me.Button1.Location = New System.Drawing.Point(12, 12) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(102, 27) - Me.Button1.TabIndex = 0 - Me.Button1.Text = "Upload file" - Me.Button1.UseVisualStyleBackColor = True - ' - 'listboxLog - ' - Me.listboxLog.Dock = System.Windows.Forms.DockStyle.Right - Me.listboxLog.FormattingEnabled = True - Me.listboxLog.Location = New System.Drawing.Point(165, 0) - Me.listboxLog.Name = "listboxLog" - Me.listboxLog.Size = New System.Drawing.Size(635, 450) - Me.listboxLog.TabIndex = 1 - ' - 'frmFileTest - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.listboxLog) - Me.Controls.Add(Me.Button1) - Me.Name = "frmFileTest" - Me.Text = "frmFileTest" - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents Button1 As Button - Friend WithEvents listboxLog As ListBox -End Class diff --git a/GUIs.ClientSuite/_TEST/frmFileTest.resx b/GUIs.ClientSuite/_TEST/frmFileTest.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/_TEST/frmFileTest.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/frmFileTest.vb b/GUIs.ClientSuite/_TEST/frmFileTest.vb deleted file mode 100644 index a9c0a296..00000000 --- a/GUIs.ClientSuite/_TEST/frmFileTest.vb +++ /dev/null @@ -1,95 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.EDMI.API - -Public Class frmFileTest - Private _fileOp As Document - - Private Sub frmFileTest_Load(sender As Object, e As EventArgs) Handles Me.Load - Try - _fileOp = New Document(My.LogConfig, My.Settings.IDBNetworkServiceAddress) - _fileOp.Connect() - Catch ex As Exception - Logger.Warn($"Unexpected error in frmFileTest_Load: {ex.Message}") - End Try - End Sub - - Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - Dim oDialog = New OpenFileDialog() With { - .Multiselect = True - } - - If oDialog.ShowDialog() <> DialogResult.OK Then - Exit Sub - End If - - For Each oFileName In oDialog.FileNames - Try - Dim oSW As New Stopwatch() - oSW.Start() - - Dim oResult = Await _fileOp.ImportFile2(oFileName) - - oSW.Stop() - - If oResult.OK = False Then - listboxLog.Items.Add($"Document upload failed! Reason: '{oResult.ErrorMessage}'") - Exit Sub - End If - - listboxLog.Items.Add($"Document uploaded!") - listboxLog.Items.Add($"Filename: {oResult.Document.FileName}") - listboxLog.Items.Add($"Time in milliseconds: {oSW.ElapsedMilliseconds}") - listboxLog.Items.Add($"----------------------------------------------------------") - Catch ex As Exception - listboxLog.Items.Add($"Document upload failed! Reason: '{ex.Message}'") - Logger.Error(ex) - End Try - Next - - End Sub - - 'Private Sub btnDocByDocId_Click(sender As Object, e As EventArgs) - ' Try - ' Dim oDocId As Int64 = Int64.Parse(TextBox1.Text) - ' Dim oResult = _fileOp.GetDocumentByDocumentId(oDocId) - - ' If Not oResult.OK Then - ' MsgBox(oResult.ErrorMessage) - ' Exit Sub - ' End If - - ' Dim oDocObject = oResult.Document - - ' listboxLog.Items.Add($"Document fetched!") - ' listboxLog.Items.Add($"DocId: {oDocObject.DocumentId}") - ' listboxLog.Items.Add($"ContainerId: {oDocObject.ContainerId}") - ' listboxLog.Items.Add($"Filename: {oDocObject.FileName}") - ' listboxLog.Items.Add($"----------------------------------------------------------") - ' Catch ex As Exception - ' ShowErrorMessage(ex) - ' End Try - 'End Sub - - 'Private Sub btnDocByContainerId_Click(sender As Object, e As EventArgs) - ' Try - ' Dim oContainerId As Int64 = Int64.Parse(TextBox2.Text) - ' Dim oResult = _fileOp.GetDocumentByContainerId(oContainerId) - - ' If Not oResult.OK Then - ' MsgBox(oResult.ErrorMessage) - ' Exit Sub - ' End If - - ' Dim oDocObject = oResult.Document - - ' listboxLog.Items.Add($"Document fetched!") - ' listboxLog.Items.Add($"DocId: {oDocObject.DocumentId}") - ' listboxLog.Items.Add($"ContainerId: {oDocObject.ContainerId}") - ' listboxLog.Items.Add($"Filename: {oDocObject.FileName}") - ' listboxLog.Items.Add($"----------------------------------------------------------") - ' Catch ex As Exception - ' ShowErrorMessage(ex) - ' End Try - 'End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/frmWorkflowTest.Designer.vb b/GUIs.ClientSuite/_TEST/frmWorkflowTest.Designer.vb deleted file mode 100644 index b95eabc7..00000000 --- a/GUIs.ClientSuite/_TEST/frmWorkflowTest.Designer.vb +++ /dev/null @@ -1,269 +0,0 @@ - _ -Partial Class frmWorkflowTest - Inherits DevExpress.XtraBars.Ribbon.RibbonForm - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl() - Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup() - Me.NavBarGroupControlContainer1 = New DevExpress.XtraNavBar.NavBarGroupControlContainer() - Me.TreeList1 = New DevExpress.XtraTreeList.TreeList() - Me.NavBarItem1 = New DevExpress.XtraNavBar.NavBarItem() - Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() - Me.TextEdit1 = New DevExpress.XtraEditors.TextEdit() - Me.TextEdit2 = New DevExpress.XtraEditors.TextEdit() - Me.TextEdit3 = New DevExpress.XtraEditors.TextEdit() - Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() - Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() - Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem() - Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.NavBarControl1.SuspendLayout() - Me.NavBarGroupControlContainer1.SuspendLayout() - CType(Me.TreeList1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.LayoutControl1.SuspendLayout() - CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TextEdit2.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TextEdit3.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'RibbonControl - ' - Me.RibbonControl.ExpandCollapseItem.Id = 0 - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem}) - Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 1 - Me.RibbonControl.Name = "RibbonControl" - Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl.Size = New System.Drawing.Size(1057, 146) - Me.RibbonControl.StatusBar = Me.RibbonStatusBar - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 582) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(1057, 21) - ' - 'NavBarControl1 - ' - Me.NavBarControl1.ActiveGroup = Me.NavBarGroup1 - Me.NavBarControl1.Controls.Add(Me.NavBarGroupControlContainer1) - Me.NavBarControl1.Dock = System.Windows.Forms.DockStyle.Right - Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1}) - Me.NavBarControl1.Items.AddRange(New DevExpress.XtraNavBar.NavBarItem() {Me.NavBarItem1}) - Me.NavBarControl1.Location = New System.Drawing.Point(846, 146) - Me.NavBarControl1.Name = "NavBarControl1" - Me.NavBarControl1.OptionsNavPane.ExpandedWidth = 211 - Me.NavBarControl1.PaintStyleKind = DevExpress.XtraNavBar.NavBarViewKind.NavigationPane - Me.NavBarControl1.Size = New System.Drawing.Size(211, 436) - Me.NavBarControl1.TabIndex = 2 - Me.NavBarControl1.Text = "NavBarControl1" - ' - 'NavBarGroup1 - ' - Me.NavBarGroup1.Caption = "NavBarGroup1" - Me.NavBarGroup1.ControlContainer = Me.NavBarGroupControlContainer1 - Me.NavBarGroup1.Expanded = True - Me.NavBarGroup1.GroupClientHeight = 321 - Me.NavBarGroup1.GroupStyle = DevExpress.XtraNavBar.NavBarGroupStyle.ControlContainer - Me.NavBarGroup1.ItemLinks.AddRange(New DevExpress.XtraNavBar.NavBarItemLink() {New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem1)}) - Me.NavBarGroup1.Name = "NavBarGroup1" - ' - 'NavBarGroupControlContainer1 - ' - Me.NavBarGroupControlContainer1.Appearance.BackColor = System.Drawing.SystemColors.Control - Me.NavBarGroupControlContainer1.Appearance.Options.UseBackColor = True - Me.NavBarGroupControlContainer1.Controls.Add(Me.TreeList1) - Me.NavBarGroupControlContainer1.Name = "NavBarGroupControlContainer1" - Me.NavBarGroupControlContainer1.Size = New System.Drawing.Size(211, 319) - Me.NavBarGroupControlContainer1.TabIndex = 0 - ' - 'TreeList1 - ' - Me.TreeList1.Dock = System.Windows.Forms.DockStyle.Fill - Me.TreeList1.Location = New System.Drawing.Point(0, 0) - Me.TreeList1.Name = "TreeList1" - Me.TreeList1.Size = New System.Drawing.Size(211, 319) - Me.TreeList1.TabIndex = 0 - ' - 'NavBarItem1 - ' - Me.NavBarItem1.Caption = "NavBarItem1" - Me.NavBarItem1.Name = "NavBarItem1" - ' - 'LayoutControl1 - ' - Me.LayoutControl1.Controls.Add(Me.TextEdit1) - Me.LayoutControl1.Controls.Add(Me.TextEdit2) - Me.LayoutControl1.Controls.Add(Me.TextEdit3) - Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.LayoutControl1.Location = New System.Drawing.Point(0, 146) - Me.LayoutControl1.Name = "LayoutControl1" - Me.LayoutControl1.Root = Me.LayoutControlGroup1 - Me.LayoutControl1.Size = New System.Drawing.Size(846, 436) - Me.LayoutControl1.TabIndex = 5 - Me.LayoutControl1.Text = "LayoutControl1" - ' - 'TextEdit1 - ' - Me.TextEdit1.Location = New System.Drawing.Point(106, 36) - Me.TextEdit1.MenuManager = Me.RibbonControl - Me.TextEdit1.Name = "TextEdit1" - Me.TextEdit1.Size = New System.Drawing.Size(360, 20) - Me.TextEdit1.StyleController = Me.LayoutControl1 - Me.TextEdit1.TabIndex = 4 - ' - 'TextEdit2 - ' - Me.TextEdit2.Location = New System.Drawing.Point(106, 12) - Me.TextEdit2.Name = "TextEdit2" - Me.TextEdit2.Size = New System.Drawing.Size(728, 20) - Me.TextEdit2.StyleController = Me.LayoutControl1 - Me.TextEdit2.TabIndex = 4 - ' - 'TextEdit3 - ' - Me.TextEdit3.Location = New System.Drawing.Point(564, 36) - Me.TextEdit3.MenuManager = Me.RibbonControl - Me.TextEdit3.Name = "TextEdit3" - Me.TextEdit3.Size = New System.Drawing.Size(270, 20) - Me.TextEdit3.StyleController = Me.LayoutControl1 - Me.TextEdit3.TabIndex = 5 - ' - 'LayoutControlGroup1 - ' - Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] - Me.LayoutControlGroup1.GroupBordersVisible = False - Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.EmptySpaceItem1, Me.LayoutControlItem3, Me.LayoutControlItem2}) - Me.LayoutControlGroup1.Name = "Root" - Me.LayoutControlGroup1.Size = New System.Drawing.Size(846, 436) - Me.LayoutControlGroup1.TextVisible = False - ' - 'LayoutControlItem1 - ' - Me.LayoutControlItem1.Control = Me.TextEdit1 - Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 24) - Me.LayoutControlItem1.Name = "LayoutControlItem1" - Me.LayoutControlItem1.Size = New System.Drawing.Size(458, 24) - Me.LayoutControlItem1.Text = "Rechnungsnummer" - Me.LayoutControlItem1.TextSize = New System.Drawing.Size(91, 13) - ' - 'EmptySpaceItem1 - ' - Me.EmptySpaceItem1.AllowHotTrack = False - Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 48) - Me.EmptySpaceItem1.Name = "EmptySpaceItem1" - Me.EmptySpaceItem1.Size = New System.Drawing.Size(458, 368) - Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0) - ' - 'LayoutControlItem2 - ' - Me.LayoutControlItem2.Control = Me.TextEdit2 - Me.LayoutControlItem2.CustomizationFormText = "LayoutControlItem1" - Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0) - Me.LayoutControlItem2.Name = "LayoutControlItem2" - Me.LayoutControlItem2.Size = New System.Drawing.Size(826, 24) - Me.LayoutControlItem2.Text = "Kundenummer" - Me.LayoutControlItem2.TextSize = New System.Drawing.Size(91, 13) - ' - 'LayoutControlItem3 - ' - Me.LayoutControlItem3.Control = Me.TextEdit3 - Me.LayoutControlItem3.Location = New System.Drawing.Point(458, 24) - Me.LayoutControlItem3.Name = "LayoutControlItem3" - Me.LayoutControlItem3.Size = New System.Drawing.Size(368, 392) - Me.LayoutControlItem3.Text = "Rechnungsbetrag" - Me.LayoutControlItem3.TextSize = New System.Drawing.Size(91, 13) - ' - 'frmWorkflowTest - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1057, 603) - Me.Controls.Add(Me.LayoutControl1) - Me.Controls.Add(Me.NavBarControl1) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.RibbonControl) - Me.Name = "frmWorkflowTest" - Me.Ribbon = Me.RibbonControl - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "frmWorkflowTest" - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.NavBarControl1.ResumeLayout(False) - Me.NavBarGroupControlContainer1.ResumeLayout(False) - CType(Me.TreeList1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.LayoutControl1.ResumeLayout(False) - CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TextEdit2.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TextEdit3.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents NavBarControl1 As DevExpress.XtraNavBar.NavBarControl - Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup - Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl - Friend WithEvents TextEdit1 As DevExpress.XtraEditors.TextEdit - Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents EmptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem - Friend WithEvents NavBarGroupControlContainer1 As DevExpress.XtraNavBar.NavBarGroupControlContainer - Friend WithEvents TreeList1 As DevExpress.XtraTreeList.TreeList - Friend WithEvents NavBarItem1 As DevExpress.XtraNavBar.NavBarItem - Friend WithEvents TextEdit2 As DevExpress.XtraEditors.TextEdit - Friend WithEvents TextEdit3 As DevExpress.XtraEditors.TextEdit - Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem -End Class diff --git a/GUIs.ClientSuite/_TEST/frmWorkflowTest.resx b/GUIs.ClientSuite/_TEST/frmWorkflowTest.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/_TEST/frmWorkflowTest.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/_TEST/frmWorkflowTest.vb b/GUIs.ClientSuite/_TEST/frmWorkflowTest.vb deleted file mode 100644 index e2b2239c..00000000 --- a/GUIs.ClientSuite/_TEST/frmWorkflowTest.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports DevExpress.XtraTreeList - -Public Class frmWorkflowTest - Private Sub frmWorkflowTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Dim oControlPatcher As New ClassControlPatcher(Of TreeList)(Me) - oControlPatcher. - ProcessContainer(AddressOf TreeListDefaults.DefaultTreeListSettings) - - - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/frmConfigService.Designer.vb b/GUIs.ClientSuite/frmConfigService.Designer.vb deleted file mode 100644 index 65a03c15..00000000 --- a/GUIs.ClientSuite/frmConfigService.Designer.vb +++ /dev/null @@ -1,155 +0,0 @@ - _ -Partial Class frmConfigService - Inherits DevExpress.XtraEditors.XtraForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.btnCancel = New System.Windows.Forms.Button() - Me.btnTest = New System.Windows.Forms.Button() - Me.Label1 = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label3 = New System.Windows.Forms.Label() - Me.lblStatus = New System.Windows.Forms.Label() - Me.btnOK = New System.Windows.Forms.Button() - Me.txtIPAddress = New DevExpress.XtraEditors.TextEdit() - Me.txtPort = New DevExpress.XtraEditors.TextEdit() - CType(Me.txtIPAddress.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.txtPort.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'btnCancel - ' - Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.btnCancel.Location = New System.Drawing.Point(338, 124) - Me.btnCancel.Name = "btnCancel" - Me.btnCancel.Size = New System.Drawing.Size(75, 23) - Me.btnCancel.TabIndex = 1 - Me.btnCancel.Text = "Cancel" - Me.btnCancel.UseVisualStyleBackColor = True - ' - 'btnTest - ' - Me.btnTest.Location = New System.Drawing.Point(12, 124) - Me.btnTest.Name = "btnTest" - Me.btnTest.Size = New System.Drawing.Size(109, 23) - Me.btnTest.TabIndex = 2 - Me.btnTest.Text = "Verbindungstest" - Me.btnTest.UseVisualStyleBackColor = True - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 16) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(64, 13) - Me.Label1.TabIndex = 3 - Me.Label1.Text = "IP-Adresse:" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(265, 16) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(31, 13) - Me.Label2.TabIndex = 3 - Me.Label2.Text = "Port:" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(12, 55) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(42, 13) - Me.Label3.TabIndex = 4 - Me.Label3.Text = "Status:" - ' - 'lblStatus - ' - Me.lblStatus.Location = New System.Drawing.Point(12, 68) - Me.lblStatus.Name = "lblStatus" - Me.lblStatus.Size = New System.Drawing.Size(401, 53) - Me.lblStatus.TabIndex = 4 - Me.lblStatus.Text = "Nicht verbunden" - ' - 'btnOK - ' - Me.btnOK.Location = New System.Drawing.Point(257, 124) - Me.btnOK.Name = "btnOK" - Me.btnOK.Size = New System.Drawing.Size(75, 23) - Me.btnOK.TabIndex = 1 - Me.btnOK.Text = "OK" - Me.btnOK.UseVisualStyleBackColor = True - ' - 'txtIPAddress - ' - Me.txtIPAddress.Location = New System.Drawing.Point(12, 32) - Me.txtIPAddress.Name = "txtIPAddress" - Me.txtIPAddress.Properties.Mask.EditMask = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" - Me.txtIPAddress.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx - Me.txtIPAddress.Size = New System.Drawing.Size(250, 20) - Me.txtIPAddress.TabIndex = 6 - ' - 'txtPort - ' - Me.txtPort.EditValue = "9000" - Me.txtPort.Location = New System.Drawing.Point(268, 32) - Me.txtPort.Name = "txtPort" - Me.txtPort.Properties.Mask.EditMask = "n0" - Me.txtPort.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric - Me.txtPort.Size = New System.Drawing.Size(145, 20) - Me.txtPort.TabIndex = 7 - ' - 'frmConfigService - ' - Me.AcceptButton = Me.btnOK - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.CancelButton = Me.btnCancel - Me.ClientSize = New System.Drawing.Size(425, 159) - Me.Controls.Add(Me.txtPort) - Me.Controls.Add(Me.txtIPAddress) - Me.Controls.Add(Me.lblStatus) - Me.Controls.Add(Me.Label3) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.btnTest) - Me.Controls.Add(Me.btnOK) - Me.Controls.Add(Me.btnCancel) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "frmConfigService" - Me.Text = "Dienst Kommunikation konfigurieren" - CType(Me.txtIPAddress.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.txtPort.Properties, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents btnCancel As Button - Friend WithEvents btnTest As Button - Friend WithEvents Label1 As Label - Friend WithEvents Label2 As Label - Friend WithEvents Label3 As Label - Friend WithEvents lblStatus As Label - Friend WithEvents btnOK As Button - Friend WithEvents txtIPAddress As DevExpress.XtraEditors.TextEdit - Friend WithEvents txtPort As DevExpress.XtraEditors.TextEdit -End Class diff --git a/GUIs.ClientSuite/frmConfigService.resx b/GUIs.ClientSuite/frmConfigService.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/frmConfigService.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmConfigService.vb b/GUIs.ClientSuite/frmConfigService.vb deleted file mode 100644 index 91390aee..00000000 --- a/GUIs.ClientSuite/frmConfigService.vb +++ /dev/null @@ -1,62 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class frmConfigService - Private _Logger As Logger - Private _Service As ClassService - Private _ErrorHandler As ClassErrorHandler - - Private Sub frmServiceConfig_Load(sender As Object, e As EventArgs) Handles Me.Load - _Logger = My.LogConfig.GetLogger() - _Service = New ClassService(My.LogConfig) - _ErrorHandler = New ClassErrorHandler(_Logger) - - If My.SystemConfigManager.Config.ServiceConnection <> String.Empty Then - txtIPAddress.Text = My.SystemConfigManager.Config.ServiceIP - txtPort.Text = My.SystemConfigManager.Config.ServicePort - End If - - txtIPAddress.Focus() - End Sub - - Private Async Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click - Try - Dim oIPAddress = txtIPAddress.Text - Dim oPort = txtPort.Text - Dim oEndpointURL = $"net.tcp://{oIPAddress}:{oPort}/DigitalData/Services/Main" - Dim oResult As ClassService.ConnectionTestResult - - My.SysConfig.ServiceIP = oIPAddress - My.SysConfig.ServicePort = Integer.Parse(oPort) - - lblStatus.Text = "Verbindung wird hergestellt..." - oResult = Await _Service.TestConnectionAsync() - - If oResult = ClassService.ConnectionTestResult.Successful Then - My.SystemConfigManager.Save() - lblStatus.Text = "Verbindung hergestellt." - Else - Select Case oResult - Case ClassService.ConnectionTestResult.NotFound - lblStatus.Text = "Dienst konnte nicht gefunden werden. Bitte überprüfen sie Addresse und Port." - Case ClassService.ConnectionTestResult.EmptyURI - lblStatus.Text = "Bitte tragen Sie eine gültige Dienst Adresse ein." - Case ClassService.ConnectionTestResult.Authentication - lblStatus.Text = "Authentifizierungsfehler. Prüfen Sie, ob sich Ihr Gerät in der korrekten Domäne befindet." - Case Else - lblStatus.Text = "Unbekannter Fehler." - End Select - End If - Catch ex As Exception - _ErrorHandler.ShowErrorMessage(ex) - End Try - End Sub - - Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click - If My.SystemConfigManager.Config.ServiceConnection <> String.Empty Then - DialogResult = DialogResult.OK - Close() - Else - MsgBox("Bitte tragen Sie die Dienst Adresse ein!") - End If - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/frmConfigUser.Designer.vb b/GUIs.ClientSuite/frmConfigUser.Designer.vb deleted file mode 100644 index fd1465bc..00000000 --- a/GUIs.ClientSuite/frmConfigUser.Designer.vb +++ /dev/null @@ -1,187 +0,0 @@ - -Partial Class frmConfigUser - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmConfigUser)) - Me.TabPageSupport = New DevExpress.XtraTab.XtraTabPage() - Me.btnAppFolder = New DevExpress.XtraEditors.SimpleButton() - Me.btnLogFolder = New DevExpress.XtraEditors.SimpleButton() - Me.Button4 = New System.Windows.Forms.Button() - Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() - Me.chkLogErrorsOnly = New System.Windows.Forms.CheckBox() - Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl() - Me.TabPageMain = New DevExpress.XtraTab.XtraTabPage() - Me.Label1 = New System.Windows.Forms.Label() - Me.Button3 = New System.Windows.Forms.Button() - Me.cmbLanguage = New System.Windows.Forms.ComboBox() - Me.TabPageSupport.SuspendLayout() - CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabControl1.SuspendLayout() - Me.TabPageMain.SuspendLayout() - Me.SuspendLayout() - ' - 'TabPageSupport - ' - Me.TabPageSupport.Controls.Add(Me.btnAppFolder) - Me.TabPageSupport.Controls.Add(Me.btnLogFolder) - Me.TabPageSupport.Controls.Add(Me.Button4) - Me.TabPageSupport.Controls.Add(Me.LinkLabel1) - Me.TabPageSupport.Controls.Add(Me.chkLogErrorsOnly) - Me.TabPageSupport.ImageOptions.Image = CType(resources.GetObject("TabPageSupport.ImageOptions.Image"), System.Drawing.Image) - Me.TabPageSupport.Name = "TabPageSupport" - Me.TabPageSupport.Size = New System.Drawing.Size(794, 403) - Me.TabPageSupport.Text = "Support" - ' - 'btnAppFolder - ' - Me.btnAppFolder.ImageOptions.Image = CType(resources.GetObject("btnAppFolder.ImageOptions.Image"), System.Drawing.Image) - Me.btnAppFolder.Location = New System.Drawing.Point(349, 58) - Me.btnAppFolder.Name = "btnAppFolder" - Me.btnAppFolder.Size = New System.Drawing.Size(164, 36) - Me.btnAppFolder.TabIndex = 21 - Me.btnAppFolder.Text = "AppData Ordner öffnen" - ' - 'btnLogFolder - ' - Me.btnLogFolder.ImageOptions.Image = CType(resources.GetObject("btnLogFolder.ImageOptions.Image"), System.Drawing.Image) - Me.btnLogFolder.Location = New System.Drawing.Point(349, 18) - Me.btnLogFolder.Name = "btnLogFolder" - Me.btnLogFolder.Size = New System.Drawing.Size(164, 34) - Me.btnLogFolder.TabIndex = 20 - Me.btnLogFolder.Text = "Log Ordner öffnen" - ' - 'Button4 - ' - Me.Button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button4.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.Button4.Location = New System.Drawing.Point(15, 14) - Me.Button4.Name = "Button4" - Me.Button4.Size = New System.Drawing.Size(133, 23) - Me.Button4.TabIndex = 19 - Me.Button4.Text = "Create Log-Email" - Me.Button4.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.Button4.UseVisualStyleBackColor = True - ' - 'LinkLabel1 - ' - Me.LinkLabel1.AutoSize = True - Me.LinkLabel1.Font = New System.Drawing.Font("Segoe UI", 9.75!) - Me.LinkLabel1.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.LinkLabel1.Location = New System.Drawing.Point(12, 87) - Me.LinkLabel1.Name = "LinkLabel1" - Me.LinkLabel1.Size = New System.Drawing.Size(200, 17) - Me.LinkLabel1.TabIndex = 15 - Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Link zu Support-Tool Digital Data" - ' - 'chkLogErrorsOnly - ' - Me.chkLogErrorsOnly.AutoSize = True - Me.chkLogErrorsOnly.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.chkLogErrorsOnly.Location = New System.Drawing.Point(154, 18) - Me.chkLogErrorsOnly.Name = "chkLogErrorsOnly" - Me.chkLogErrorsOnly.Size = New System.Drawing.Size(100, 17) - Me.chkLogErrorsOnly.TabIndex = 18 - Me.chkLogErrorsOnly.Text = "Log Errors Only" - Me.chkLogErrorsOnly.UseVisualStyleBackColor = True - ' - 'XtraTabControl1 - ' - Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.XtraTabControl1.Location = New System.Drawing.Point(0, 0) - Me.XtraTabControl1.Name = "XtraTabControl1" - Me.XtraTabControl1.SelectedTabPage = Me.TabPageSupport - Me.XtraTabControl1.Size = New System.Drawing.Size(800, 450) - Me.XtraTabControl1.TabIndex = 51 - Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.TabPageMain, Me.TabPageSupport}) - ' - 'TabPageMain - ' - Me.TabPageMain.Controls.Add(Me.Label1) - Me.TabPageMain.Controls.Add(Me.Button3) - Me.TabPageMain.Controls.Add(Me.cmbLanguage) - Me.TabPageMain.ImageOptions.Image = CType(resources.GetObject("TabPageMain.ImageOptions.Image"), System.Drawing.Image) - Me.TabPageMain.Name = "TabPageMain" - Me.TabPageMain.Size = New System.Drawing.Size(700, 444) - Me.TabPageMain.Text = "Allgemein" - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(15, 21) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(91, 13) - Me.Label1.TabIndex = 53 - Me.Label1.Text = "Aktuelle Sprache:" - ' - 'Button3 - ' - Me.Button3.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.Button3.Location = New System.Drawing.Point(158, 35) - Me.Button3.Name = "Button3" - Me.Button3.Size = New System.Drawing.Size(134, 23) - Me.Button3.TabIndex = 52 - Me.Button3.Text = "Sprache jetzt wechseln" - Me.Button3.UseVisualStyleBackColor = True - ' - 'cmbLanguage - ' - Me.cmbLanguage.FormattingEnabled = True - Me.cmbLanguage.Items.AddRange(New Object() {"de-DE", "en-US"}) - Me.cmbLanguage.Location = New System.Drawing.Point(18, 37) - Me.cmbLanguage.Name = "cmbLanguage" - Me.cmbLanguage.Size = New System.Drawing.Size(134, 21) - Me.cmbLanguage.TabIndex = 51 - ' - 'frmConfigUser - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.XtraTabControl1) - Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.Name = "frmConfigUser" - Me.Text = "Grundeinstellungen User" - Me.TabPageSupport.ResumeLayout(False) - Me.TabPageSupport.PerformLayout() - CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabControl1.ResumeLayout(False) - Me.TabPageMain.ResumeLayout(False) - Me.TabPageMain.PerformLayout() - Me.ResumeLayout(False) - - End Sub - - Friend WithEvents TabPageSupport As DevExpress.XtraTab.XtraTabPage - Friend WithEvents Button4 As Button - Friend WithEvents LinkLabel1 As LinkLabel - Friend WithEvents chkLogErrorsOnly As CheckBox - Friend WithEvents XtraTabControl1 As DevExpress.XtraTab.XtraTabControl - Friend WithEvents TabPageMain As DevExpress.XtraTab.XtraTabPage - Friend WithEvents Label1 As Label - Friend WithEvents Button3 As Button - Friend WithEvents cmbLanguage As ComboBox - Friend WithEvents btnLogFolder As DevExpress.XtraEditors.SimpleButton - Friend WithEvents btnAppFolder As DevExpress.XtraEditors.SimpleButton -End Class diff --git a/GUIs.ClientSuite/frmConfigUser.resx b/GUIs.ClientSuite/frmConfigUser.resx deleted file mode 100644 index c4c2117d..00000000 --- a/GUIs.ClientSuite/frmConfigUser.resx +++ /dev/null @@ -1,1298 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAArdEVYdFRpdGxlAE9wZW47Rm9sZGVyO0JhcnM7Umli - Ym9uO1N0YW5kYXJkO0xvYWTxw8RjAAAAb0lEQVQ4T6XQ0Q2AIAwEUBbsMs7Q0ZzHFeqVRIJ6VQof7+fC - XUiLmS2hYQYNM4qqChjhOS31fICVL8JKvb+BSBueHUB3cQCGB+oxmWjgVjj2TcAC8hzwx1+Fl34gXYb2 - g6ky1BtMl1295AoajrNyArCYwjN4ThJYAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAArdEVYdFRpdGxlAE9wZW47Rm9sZGVyO0JhcnM7Umli - Ym9uO1N0YW5kYXJkO0xvYWTxw8RjAAAAb0lEQVQ4T6XQ0Q2AIAwEUBbsMs7Q0ZzHFeqVRIJ6VQof7+fC - XUiLmS2hYQYNM4qqChjhOS31fICVL8JKvb+BSBueHUB3cQCGB+oxmWjgVjj2TcAC8hzwx1+Fl34gXYb2 - g6ky1BtMl1295AoajrNyArCYwjN4ThJYAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAc5J - REFUWEfFljFOw0AQRVMgEkHDPbgGbaDhBtyAO9AAHUhUuQOUtHRAuhRwBehAAiGBZP63ZqPZ3W/s2MYp - nmK/nT8zcRIpo6Io1oqUQyLl89FeHTvgyt3zms7XRKg5RErVwLEJHkDhHK/vAc987RI1h0ipGjiOAQem - CxCe+dolag6RUjVwzEHVAo/ORag5REoLlU2F/whngk+Q9gpnkQ9IyeIQFH7tC/iPIIVnaa9wFvmAlMQF - p3Y/Bqfg27yCZ2dgbJmpedzqOVKSEDQOwW3i/oK1zCxd2j8gJQLR9j3AXnKWlCw2+liiHE7ULClDAGyA - V6AaN4FZ9lhtAWKhA6AarwJ7yBkkEyju87NPKX9RnuiGBUngP4iWSBeICsFL4trwBqI35mdWLRC+uT/O - dSF6un5m1QK8Ju/OtYVPIPQrnZ9ZuYDdL5xry8J61S8QYLG9zkKoAzPfM0VKwgA4sSZdYA85g0jJAOjz - J1l+qdWsTLDQAqpRF+QSmWCRC5F9cJ24JtwAZr3L5mWCRS5Qbg22wJ25JrB2GzDrn2Y2LxMWygK4ngD+ - 26n7R3QOJnX9ApnwgYqzXXABnsCXwetLwLMoY7nmCwyNlEMi5XAUo19RwjicG819swAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEhvbWU7HnRkOAAAATpJREFUWEft - ks0NwjAMRkHMxQhw7wIMwAhVJ+BH4oSEgBlgAObhwhUR7KqunMRO2zSUSw9Pbb7a+R4SE2PMX6lfiqKI - YVohfQuSQmAGnIED0FmirwCWXwFT0Vmij4BbLkos8rvhUE7ECmjlRC3xCwGpfAecnKyUgNJXSgGtHH8t - fvMklvltziUgs+7sIhAq5zNBCTjzO1sLSOVbQPrHByXg3ZpvI9ClnFAl4GnNNgnElBOiBGDthgT6lBON - EppAinIiKCEJpCwnVAlJ4MKGkL7lhCSxlwRWwIcNpSgnUILufQOZJICgxAbAQX4BQZc0oe0egQzPmgAf - drMyfz7WQXDG2al3+dkT4NCwlEulHJxx9xAt9wJkFBgFQgJtcPcQLfcCpLpI/BbLKBAjkBy3B/GCoRHD - IRHD4TCTL7ccmUyvvNxMAAAAAElFTkSuQmCC - - - - - AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAAAAEA - CACoDgAAHgsAACAgAAABAAgAqAgAAMYZAAAQEAAAAQAIAGgFAABuIgAAAAAAAAEAIADCpQAA1icAADAw - AAABACAAqCUAAJjNAAAgIAAAAQAgAKgQAABA8wAAEBAAAAEAIABoBAAA6AMBACgAAAAwAAAAYAAAAAEA - BAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDA - wAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3d3d3d3d3cAAAeIiIiIiIiIiIiIiIiIiIiIiI - iIiIhwAAeP//////////////////////////hwAAeP///////////////4//+P/4/4//hwAAeP//+IiI - //+P/4/4//+P//j///+PhwAAeP//+Pho/4//////+P//j//4+P//hwAAeP//+PbG////j/j///j//4// - //j/hwAAeP//+Gbmf///d4d3d4d3eHd3+P//hwAAeP//98eMaP//eHiHh3iHh4eH//j/hwAAeP//+I/+ - bv+P//j///j/j/+P+P//hwAAeP//////x4j////4+P//+P////j/hwAAeP//////jm//+P////+P//j4 - +P//hwAAeP//iIiI9+b///+P/4//j/////j/hwAAeP//+Pho/36I/////////4+P+P//hwAAeP//+PbG - /46Pd3d3d3d3eHh3//j/hwAAeP//+Gbmf///eHiHiIeIeHeH////hwAAeP//9seMaP////+P+P/4+P// - j4+PhwAAeP///4/35v//j/////j///j/////hwAAeP//////bI////////////+Pj/j/hwAAeP////// - jm///4/4+P/4+P//////hwAAeP//iIiI+Ob4//////////+P+Pj/hwAAeP//+Pho+OePd3d4d3d3h3h4 - ////hwAAeP//+PbG/46PeIh3iHiHeHeH+P+PhwAAf///+Gbmf////4////+P//+P////hwAAeP//98eM - aP//////j///+P//j4//hwAAf/+P/4/+bv/4/////4/4//j///+P9wAAeP//////x4j///j////////4 - /4//hwAAeP////+Pjm//////////////////hwAAf////4//9+f/////+P+P+P+P+P+P9wAAeP////// - /+aPj//4////////////hwAAf//4/////4jv////////////j/j/hwAAeP////////////////+P+P+P - ////9wAAeIiIiIiIiIiIiIiIiIiIiIiIiIiIhwAAf4iPiIiIiIiIiIiIiIj4j4j4iIiI9wAAeP+I+Pj4 - +Pj4+Pj4+PiPiHePd/h3hwAAB3d3d3d3d3d3d3d3d3d3d3d3d3d3cAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AACAAAAAAB8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAA - AAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAA - AAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAADwAAgAAAAAAfAAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA - gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh3d3d3d3 - d3d3d3d3d3d4AH//////////////////9wB/////////////+P/4//cAf//4iI//j/j4+P/4//j3AH// - +IaP//////////j/9wB///hs6P/4//j/j4//+PcAf//36Gj4d3d3d3d3+P/3AH////+Gj/////////// - 9wB///j4jn////j/+Pj4+PcAf//494/o+P//+P/////3AH//+IyPjv//j///+P+P9wB///ZuaP93d3d3 - d3f///cAf//4j27/////////j/j3AH////+Mj/+P//j/j/+P9wB///j4+Oj///j///+P//cAf//49o/n - /////4////j3AH//+Gzvj3d3d3d3d///9wB///boaP/////////4//cAf////3z//4/4//j///j3AH// - //+Of///////+P+P9wB/////+Oj////4//////cAf/////+O////////j//3AHiIiIiIiIiIiIiIiIiI - hwB/j4iPiIiIiIiPiIeHh4cAB3d3d3d4d4d4d3d3d3d4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////8AAAADAAAAAwAAAAMAAAADAAAAAwAA - AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA - AAMAAAADAAAAAwAAAAOAAAAD////////////////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A - AAD/AP8A//8AAP///wB3d4d3eHd3h3/////////3f/j4j//4/4h/+PaP+P//93/4Zu/3h3f3f/foyP// - //d///92/4/493///45////3f///+Oj4//d/////jv/493iIiIiIiIiIiPj4+Ph4f3d3h3d3eHh3dwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAAoAAAAMAAAAGAAAAABAAgAAAAAAAAJAAAAAAAAAAAAAAAB - AAAAAQAAAAAAALNtCwC1bAoAtnYPALlxCwC6dQoAq2saALh0EACyeSgAtngpALh9NACReWgAwYcLAMaO - HADFiCEAzJkkAMWKNwDNoSEA1q46ALWBQQC8kl8Ay5paAMybWwDUr0QA2LJBANq2SwDbuFYA3LhWANm4 - XADGmGAAyJphAN7BbQDhx3wA4sh9AIiEgQCmkJIAppGUAKiSlACplJcAqpWYALuigwC7ooQA2riAANy6 - ggDBq5EAwqySAMWzoADFtKEA3sGcAODDngDhxJ4A48qdAOXMnwDRxr0A59W+AOnWvwDu4boA7+O8AL6/ - wADLyckAzMnJAOrYwQDn2cgA6NvJAOncygDg2dMA7+XNAPHnzgDz6M8A7+TWAPHm1wDy5tkA9e7lAPXv - 6AD28ecA9vHpAPXx7AD39e4A+PLrAPj06gD48+8A8fHxAPTz8gDz9PMA9PTzAPPz9AD08/QA8/T0APX1 - 9QD59vEA+Pf3APf49wD6+PEA+Pj3APf3+AD49/gA9/j4APn5+QD8+/sA+/z7APz8+wD7+/wA/Pv8APv8 - /AD9/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIiIiIiIiIiIi - IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAACI1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1 - NTU1NTU1NTU1NTU1NTU1NTUiAAAAACI1ZWVlZWVlZWVlW2VaW1paWlpaWlpaWlpaUVpRWlFaUVpRUVFR - UVFRZTUiAAAAACI1ZWVlZWVhYVtlWlphYVpaWlpaUVpRWlFRUVpRUVFRUVFRUVFRUVFRZTUiAAAAACI1 - ZWVlZWU8PDw8O2VaYVpaWlpaWlFaUVFaUVFRWlFRUVFRUVFRUVFRZTUiAAAAACI1ZWVlZWU8ZT4TKFth - YVtaWlpRV1daWlFaUVpRUVFRUVFRUVFRUVFRZTUiAAAAACI1ZWVlZWU8UQgFBlpaYVtaWldgV2BaWlFR - WlFRUVpRWlFRUVFRUVFRZTUiAAAAACI1ZWVlZWUuCAIHBx1hYWFbVycmJiYjJiYmJiYmJiMmIyYmJlFR - UVFRZTUiAAAAACI1ZWVlZWUUAgosBwU2YWFlYSUmJiMmJiYjIyYjJiMjIyMjI1FRUVFRZTUiAAAAACI1 - ZWVlZWVEMEhlFQwQYWFaWl9aWlpaWlFaUVFRUVFRUVFRUVFRUVFRZTUiAAAAACI1ZWVlZWVlZWVlSA4O - KmFhYWFaWlpRWlpRWlpRW1FRW1FRUVFRUVFRZTUiAAAAACI1ZWVlZWVlZWVlYTMREUJhYWFaWlpaWlFX - WlFRW1pRUVFaUVFRUVFRZTUiAAAAACI1ZWVlZWU8Ozw8PGEaEhdIYWFbWlpaUWBaUWBaUVFXW1FRUVFR - UVFRZTUiAAAAACI1ZWVlZWU8ZUATKGVRGRgfYWFhWldXYFdXV1pRYFFbUVFRUVFRUVFRZTUiAAAAACI1 - ZWVlZWU8TQgFBk1lOBogYSUlJiYnJiYmJiYmJiYjJiYmJlFRUVFRZTUiAAAAACI1ZWVlZWUvCQUHBx1l - ZWVlYSUlJiMmIyYmJiYjJiMmJiMjI1FaUVFRZTUiAAAAACI1ZWVlZWUdAQosBwU3ZWVhZWFhW2BXZVpa - WlFaUVFRUVFRUVFRUVpRZTUiAAAAACI1ZWVlZWVGMlFlHQwQZWVhZWFhZWFlWlpaWlFaW1taUVdXV1dR - UVFRZTUiAAAAACI1ZWVlZWVlZWVlSA4OKmFlYWFhYWFaWlpaWlpRWlFaV1dRV1FbUVFaZTUiAAAAACI1 - ZWVlZWVlZWVlZTQREUNlZWFlYWFbYFdXV2BgUWBRYFpRW1FRWlFRZTUiAAAAACI1ZWVlZWU8PDw8PGUa - EhdIZWVhYWFlYWVlV2BbYFtbUVtRW1pRUVFRZTUiAAAAACI1ZWVlZWU8ZUITKGVhGRgfZSUlJSUmJiMm - JSYmJiYmJiYmJlFRW1FRZTUiAAAAACI1ZWVlZWU8WggHBmFhOBshZSUnJyUlJSclJyYmJiYmJiYmJlFb - UVpRZTUiAAAAACJBZWVlZWUvCQEFBx1hZWVhZWVlZWVlZWVaZVpaWlpRWlFRUVFbUVFXZUEiAAAAACJB - ZWVlZWUdAQosBwU9ZWVlZWVlZWVlWmVaWlpaWlpaUVtbWlFaUVdaZUEiAAAAACJBZWVlZWVGMk1lHQwQ - ZWVlZWVlYWFhZVplWldXV1paWlFbWlFRYFFRZUEiAAAAACJBZWVlZWVlZWVlSA0NK2VlZWVlZWFhYWVa - YGVlW1paV2BaUVtaUVtaZUEiAAAAACJBZWVlZWVlZWVlZTQREURlZWVhZWVlYWFlWmFaYFpgYFpaWlFb - WlFRZUEiAAAAACJBZWVlZWVlZWVlZWUaEhlNYWVlYWVlYWFhYWFhW1taWlpRYFdRW1FgZUEiAAAAACJB - ZWVlZWVlZWVlZWVhGRgfZWVlZWVlYWVhZWFhYVtbWltgWmBaUWBaZUEiAAAAACJBZWVlZWVlZWVlZWVl - ORshZWVlZWVlYWVhYWFhYWFbW1paWlFgUVdRZUEiAAAAACJBZWVlZWVlZWVlZWVlZWVlZWVlZWVhZWFh - YWFhYWFhWlpaUWBaW1pRZUEiAAAAACJBOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6 - Ojo6OkEiAAAAACJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiAAAAACJB - QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCwtBQQsLQUELC0EiAAAAAAAiIiIiIiIiIiIiIiIi - IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAAgAAAAAAfAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAA - AAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAA - AAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAIAAAAAAHwAA////////AAD///////8AAP///////wAA////////AAD///////8AACgA - AAAgAAAAQAAAAAEACAAAAAAAAAQAAAAAAAAAAAAAAAEAAAABAAAAAAAAr24CALRwAAC3fQcAtnoNALl+ - CgCzdhAAsXkUALd9IgCReWgAlXx/ALmACQC5ghsAu4UqALGAMQC/izgAw5EWAMicGwDBjiMAxJAgAMyj - IQDTsTAA0rA3ANW2NwDYujsAuo9IALuVXAC0lWkAv6R7AMmZQQDBkkgAw5tbAM6jTwDUskQA2LleAMqm - bwDNqGsAzKhvAM+rcgDTsHEA17RzANzBUADbwFsA3cNpAN/HagDeyHAA4858AJV8gACIhIEAi4eFAIuJ - hwCNiYYAjoqIAI+MiQCRjowAsa6tAMiuiQDJtpoA07iQAMK0pQDewpgA4cmKAOXSiwDm1JEA6dmfANbF - rwDZxagA1sy/AN7PugDlz6cA696lAObQrwDg0LcA6NW3AOvcugDEwcAAy8nHAMzKyADNzMoAzdjNAN7X - 0QDY0tYA1NzTANbf1QDb1dkA2tvZAOnZwwDh2csA6d7NAObe2ADv5sQA7OHPAPLpyQDx6c4A7uPQAO/n - 3ADy5dEA9e3cAPXw2gDk2uIA49ziAOfo5QDr5+oA6urqAPLr4QD28+kA+PLrAPHx8QD08/MA8/TzAPT0 - 8wDz8/QA9PP0APP09AD19fUA+vfzAPj39wD3+PcA+vj2APf3+AD49/gA9/j4APn5+QD8+/sA+/z7APv7 - /AD8+/wA+/z8AP7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLMDAwMDAwMDAw - MDAwMDAwMDM1MzAwMDAwMDAwMDcAADB7e3t7e3V7dXV1dXV1dXV1dWt1dWtrdWtra2t2MAAAMHt7e3l7 - dXl5dXV1dXVrdWtra2tra2tra2tra3YwAAAwe3t7e1FPO1N3d3V1a3VrdWt1a2tra2tra2trczAAADB7 - e3t5U0gHOnt1d3V1dWt1a3VrdWtra2tra2tzMAAAMHt7e3scAQwNaHh4dXV1cHdra2tra3Vra2tra3Yw - AAAwe3t7eyYkQQsne3UvLy8vLy8vLy8vCgpra2trdjAAADB7e3t7e3t7JxBKeHh1dXV1a3h1a3Vra2tr - a2t2MAAAMHt7e3trZmVeFiFpeHh3dXVrd2t1a3VrdWtrdXMwAAAwe3t7e1RXG0RdGC17dXh1dXB4dWtr - a2trdWtrczAAADB7e3t7QyYCI3tGPnh4eHdzd2t4dWt4dWtra2tzMAAAMHt7e3saBhkEVnt7Ly8vLy8v - Ly8vLy8Ka2trdXMwAAAwe3t7e0dJXxIddnt7e3l4d3N3dWt4a3VrdWtreDAAADB7e3t7e3t7RRE9e3l7 - eXt3eHV3d3Vra3dra3VzMAAAMHt7e3tkZFRbKxZae3t1dnt1c3d1dXN3a3Nra3gwAAAwe3t7e1VeDkJ2 - KSp7eXt5dnd3dXVrd2t4a3dreDAAADB7e3t7OQgFHnZiXAovCi8vLy8vLy8vL3N3a3dzMAAANXt7e3sf - DzgDPHt7e3t7e3t5e3V4c3h3dWt3a3swAAA1e3t7e2p2eyATYXt7e3t5e3l4eHd3d3V1a3d1czAAADV7 - e3t7e3t7YBQie3t7e3t7e3l7dXN3dWt3a2t4MAAANXt7e3t7e3t7RhY/e3t7e3l7eXh4d3V1d3V3dXMw - AAA1e3t7e3t7e3t7Lix7e3t7e3t7eXt1dXN3dWt4czAAADVOTk5OTk5OTk5NTU5OTkxMTk5OTk5OTExM - TExMMAAANVlQUFBQUFBQUFBQUFBQUFBQUFBQUFAJUAlQCVAwAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAw - MDAwMDAwMEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// - //8AAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA - AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAOAAAAD////////////////KAAAABAA - AAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAACReWgAt4MHALmECgC3gyIAsIQxAL+Q - OADEliAAzKkhANW7NwDAlUcAw55bAM2nTgDXvFwA3sppAOLRfACXko8AqpaZAKuYmgDIsIgAyLeaANvC - lQDk1Y8A6NqdANbFpgDNzMoA1tHUANra2ADn3cwA6N/MAODZ0wDw5dAA8OrXAOLa4QDk2eIA+PTqAPHx - 8QDz9PMA9vTyAPPz9AD08/QA9fX1APn38gD49/cA9/f4APj3+AD5+fkA/Pz7AP7+/gAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAQEBAQEBAQEBAQEBAQEBAQEDAwMDAp - KSkpKSkkJCQkEBAwMCEhGh0sKSkpJCQkJBAQMDAbHAUYLCkpJCkkJCQQEDAwFAQDCikpEREREREkEBAw - MAsGEwIVLSkpKSQkJBAQMDAjKjAMByArKSkpJCQQEDAwMDAwHwgNLCkpKSQkEBAwMDAwMDAXCRYrKSkp - KRAQMDAwMDAwMA8OMCkpKSQQEBkZGRkZGRkZGRkZGRkZEBAeHh4eHh4eHh4BHgEbARAQEBAQEBAQEBAQ - EBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAIlQ - TkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAIABJREFUeJzsvWuQbMlxHvZl9zzu3Lnz2AdA - gFgsFg8uQAAUCQqwIQVFkyYZphVmBCXRIi3RYcm/pLCs8CPsH/JPy3Y4HA6FpT9y+IfssGzCtkjRMmlK - Ap+gQAAyCRIkAQLEG7vY9947d2buvPukf1Rl5pd16vTMXT5Eh7uAvdN9uk5WZlbml1lZdbqBVVu1VVu1 - VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1 - VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VVu1VftD - bUKv//q/MC5WbdVW7Q+6/e3exbX6968fHp/+dwCgUED/0JhatVX7A2nDMPhrqf+KhTuRzh1/xJqOnXA2 - FwBS+FctXRQYhgUEwNUwQKDAbIb5bA4hOXfvbAmAv2PU7e8aD3Brc53G19RVO6hQuqi/9uEk+uuQR2Th - 7HYlGtzHevll7ysNf1UZEnw7a/UDTXRsPEUjJgSKQbNMRsbHdH6l8sf8K6CSOVeWovAuQBlHEIN3dK0J - jzUuuraV+mkdIctEInc/a/tc39rxpx3KbFA1+x3foUAyVknciXeW0V1lAFOh2Hgi0KFoY1Z9Zi5ziMww - mxUgsPFEBK9/bA8/9wsfx3d+x/ubYX3gyfblr3wNTz35Zn//iU98GgcHd0f99vcfxQf/xHsBAIvFgK99 - 7Vk89dSbAQVkNh7g9OQMn/rUF7C+Lnj3u9+Oe/cO8cwzL+PRR+/gXe96irRQZVVAhhl++aO/hu/57g/i - 7PwcCoFAsH17EwDmKAFfAQymQAOAxIFmqxs5fxjK2HHZ6PNNzT31H8s4lDu5Q6j5UgCCNmOoUvfWEeO6 - IpxNE9MKpQ9yBlQ+C300jmnohgwkwrT9tbiMAV4tyMa1HmDmt5r5SfcK9c33GsfhvjZ4z8qVek9O6JJ+ - UvUpzrcDQnsX85ki9ABzRQP/1I3mHyI1KioWiwUEggUEsxmgcwWwgOo8k6dhLxdXScKu3zfZw5e/+ize - 9KY3+vuDg7v4Mz/4vbh3cB/DYoH19XXs7+/ix3/iw7i8unK6X/ryV/Hkm9+EhQ6QRdBVBWYAnnn2Bdw/ - OMD73vfN+Oiv/DrubN/Gk0+8ET/107+It73tzZBZoXO5AIary2qj2T4bVtcAbABY1P8GAEPKAMqNS5xf - 83sGgjT1ZN/ZTDr3Nn3YadE4//iesREyCLTmmICBaVLH8PXIQDJQsdmyVAYCElc0TFaZXhqH+SMBuU+j - tNYVjZDS66wVetVibKdnO173s25r+rledbILwNhD6QJdEjWQBiATtGpaXFL98sFiGDCbCRQzDMMC8/kc - gGJQwcxmhujxsL/+a5+bjOR//P3v9Pe3NjdGmdOrr97FR375k/7+O//Ut6cBFgpsbt7CQge3P6kea0D3 - trc+gdOzS9w7OMB3fef7sb6xhp/5mV/Gv/OXfjBUyksaBRbt0kYBDfnWAdwCcAXgov6NJYBaZNJ4z4Ta - a20W0IybHXsUwRorJIOXZJKtB2S6QkCgTHfER3bmcdM8libp2cUbGTpe3HGpka4oK8ge2QPIcHrhD5tc - 3iIt9xst20bzuGRBcFOfX9badQfQhor6ccuH+DufYxmin3fLmU5J68uHg2r1iwE6CHRNMOgAUQF0gM5m - ENG6jCvt8jIygIODu/hzf/Z7cHZ25tfW5nP8n//XR3B+funXNtY30n0A8Nhjj+K7vusDKQMA4PctVLG1 - dQvnZ5eQmWBQxcw1UOZxPp/h6W96Ev/93/37+M/+xl/FT/3UL+IN3/g4ZiI4Pz+v9wEiMwxXCtUF1tdm - zkPow1WyCeA2ivPbVaoBJH/X8XtqLeL1EkTuPOFzI0ChgJ8/84vNure9MfGn2T/TWjtnFObL5fU0v5k+ - jcPXRp3zS0nK0y6NGIepFSHa1UNv1P589aRaPq9Au1ZXd8L8epwut+yFr3YCRntJOozY9BOmWJrLdSGp - ywCzYVEAM4UuBDpTXOlQlgRaUm0e6rkX7/vr/f1H8eM/8XMjNvb3H8VzLx36+9Oz89F9//Anf/ba+64W - Czz/8uGoH7df+Kc/jz/zg/8qPvKRT+C9730bfu7nP4bD4zO84Y3fuPQ+oHo3tABeaZYBACX6XwFYrLV3 - 3dz5w+I1IbzRQZ5ZHdMC97XRtPMZpYDJltlZO05Zq4KJ8XH2MXoTV2uxzgEDEZuSaF1AyADWW/K0vPfY - UQqDuV6CcQDvZkDuJX0Zuzxo55W914nXvcYRGlzP63MhTYSvL4UjQwKdsUUpauQbFCo1nxyA+XwBxQzQ - AVCBDgMWqrkANwS1R1//GB59/WOtGO0bDIP277vmnvPTC6gKRIeCRBBYGrC5NsenP/Nl3NpYx2c+8yU8 - //J9/Nqvfxbf/PRT+Mgv/ir+0r/757BYkAZqDBzmrSOmxjWAOSr+JQCYmly/1kaSBvp7zj8VTfOKuH3V - uVenjCzojcHD6Eze2fc9X49xfZkde5zz9KJnaZ0yP19umaYIey2zNPAoe+CL08z1CD5E35vQygbCwWKq - uK5LPuvUGbt3WXYSgC3QBTCbK4ZBoBgwE4FeBbHnn3v2OoG6DL3W+174+tcmP92+Jdh+x1MAgLfvlCXE - AOA7/tT78IXPf+lmQyi4BmC7AO78IACg5eWU41eK9GfS+XPv6KvWJz6hZdtoaRzFs4myLfNggS6FR4os - 9QNiY0TSIr5ayEn0+rbnLHOQZVvk4EZRsGVTmUgiXI3Z6Xfmx0PrNDj3mrLOXOQlAET3LGu8XdejMn1/ - E+GlULNY5zIyARVfBrDIMg8AGIYBqmULcFgAKgNmABYyA2aFw+/57g8uF+r/ky0ZgaA4vjs/ENuA0ySu - ifr+qTYOMKKzxKASrSYnEIm9q9oMGKJo3NJuw4xmp2q4T06QEKxrvjXNHI9rJjeYkiaCqQGaiPo5iTb7 - FSnFIdaN8WlgYrsOMX4kxaUPJ8kNImlWTU/O7tVrnH+qpdvchjJPy/bdtUrn7xxxtd5ZgaIyuDafO+m1 - +ZqP5zTsHABmeOa5lx2YpREwYoEknvOZBonlTTrPgABwe02RQoREzW+qhzbRreGJuCHWgk8FuuUUbnkJ - UDufX1z1+i5tr9kwWOhGWd5mWLVV+/9te6gVHIDtrU3cPz7BtSkgRhlArKO/59/4tz9zfin79BH/4Zdd - vMZk/LsBV532sEr4vbbfr9Oiv398/yErYNWWtIfOjibWrV3SKqMO/azEKdOFWxu49ysf/rH3xmfTQwFL - lgDnl7L/W7/yD67fbxi1Zh3HV7giLXnNpiqA2LYFHaCx9MoO1Xj+a0uEkubwFtF1fBk+ab3ZUufYcy65 - dq4p3FBsXwoFXU89LYVHrTMo9+lymmhVRYUeqtyiQTspvOU9GUR0Mt3HckCqPtulUyxtVCIpt61NtQxO - SwXe5mzETBhEY8A9XkxXfc2M+GqsnlN+TfKMeVKhbTMyFXE+J5aKPQXHCZ9iZ16DErB1L22uZ3eZSO/d - Po3fwuO//H1/+TLuvT7apuR6er/4YVporh3ct2Xq+tSMDe78zegirnzfBlSFcr+lzq/0Nz8PoKgnxrQa - l5enhfo7hxONj6FWMrV/madQQtoqNefKFDp8m3NlAcvtWg22yBL6EPetETVffjY0Kx3xPhrIlzCA1rJB - DAUwpPDiCl6ySWj+oBI2UYu9IuC96zB8cD2kAUwLGqJ1GRl/TTc6ArOm1XET1mkRSFWcjuu2m/dycBIn - 4QVMQVTlJxbn2f5RjcV2pMRYqq8tgE3b6FTtzVoCgN+nrBdopt5dy+dAqRfHiIqY1cBsB8AMM7jMIre6 - NIBwx6DPpenn8ZdIWhZidFXaO7vU4m8VVA1cyFGj+NRvRV/5U77DSVbj0LafNEYEioImk9rzDQHWhoGq - pO/68dBKSggcsOnHcRqo6gtZHtqpc2/RqhXGwdMspePBCj/669mLOV/LxgjkE5lqdyFY9nPSl90wBQIS - XIgBHHeuw3e102JlBeTIpdgfYl75RGNDYWlIz+W1TOPhUwEPGpF7eHpI9D06KvVtlBuOUKfSUijRuDbB - qEgcGwqjUDd8dRoZRCwDIrWSnsfjObrXMQTm31InWD1SqhHSiDRjXFGXvVWaRzEE/QI0waNF0oZiGIcG - gNSQV/+2d9iNPlpqIhWonSbxJaaLfrh1kTR0Fh+Q8OaRxFIOGTZkoDRnhkm35mzCxBuZLDgJgSwRMDxK - dzZ81RiNsCHhafK5l9Fd8d63iw2UrZc9UCX52Pooax4JtuzDdgnwGny+3kiD5a0rSF5fh/NENIS6dppo - 3ky4gPasb4JWAbWO/X5JUjGlPf1Pd3epxl9bWvCkV74Z9FWovkFyZWum1LUOkGolBjLkpA1PWQI4KGkV - 3jPQGu3dmGh7agwhvddFqb7ur5/HMnLJjJhX2GsQcI7GljR/8FsbPVL6b5+Ggi3IdFkKxvILhOYtnk8R - EDdhrUoxAIz6iMJtRfMoaWRVsBOIxhZnqlHA6MmITmrXuPRog+3hIEBdvzXUwEUzY3L0LW8sFRYr9NBa - UbLHjHkhAG+DVo4kQoKY043Xxj7FYiDRA5XxtXAacjO1NTDrJKxuvB/fa9FHqj6tgGQPH5XLNbeQ8Z0s - dVznLMEcL8KMAA3w9iklJ1C7l5+rsJVqK6bSK6UsSX12+uDjTLc4WXVUHSDQEp7Z+LUi3NRSOEyq6MMX - DxoO69cmp05pSaNufpxNJDDqymmyhQxeotLQmRqiV7mSDSaWTG/LPTpnAANudNKLuA1/Z8aMnypvHHzx - kejUnySFdYXpRvwm/I08gC0qJ6Q2BV5MAadSKdaMCEulphLm4q/EIq67QRoznihoG1XL+Qax9V7Qi8Vy - XfdpjkzhoDyu+BszVD68osJcTRmoeLzhx5zzbXH+Pjsc6ynrVCtlyxQT8702Agp6AEiR7cpoL/FdIYLF - R80BGbxzUOtxaDUVX0q6Ys1HljvV6LSt+Yz7EDyA2gC+ku1ydLO25IjNjVGg9mbzjihY7E3daEIZVcFW - jCJj5MgUvFwjIPmHORObss8JrPJsBqJ53Jju0Zja0BKthR4DhIqexRADFIKSUW51G8+BBwiaPs2iTKEc - 3VJtOkldjIZmpHGctO3ZfJI4VP6sjuB4pOPP03lumEpd23mY2B6NbTLbnkVaQrFfWGzmiCp+LY/Ze65k - BOm0PV3SbEvdpXtH1o/Zr6XpErYh6pmu2VWnJFjeu7ok6EJhW+PBSc8PHs5XuTU1AJCsN0QU13lEiLK9 - Qx2kTLVY9Zmuc+U1n+MnGg/BSgr8inquP9KpMLY49z+y4Qn6tsftWOGPnqIuX2yv2cKvGXyAzbIRYtcw - ogk7j+9HW2en1KFXrDHsKDlsQGN79LUlYmvXoFn9RclJ7f2IAQTWO73KlxBtjxdV0rZgBKYBNxT1bWKq - wVABuH2KxK7mdwFAtgUZQST6TmmJd5rEd3u0BoSqK9J3wNyYKy8qexpuoGQBpbkno3RuZucjAM+tUwN4 - OMePgBOGooR65f/iDNcCskd8j/5NxVeaiZocnxpHfLY/V7zniEI3GDJg6dKHJ8+u2PPnFmkimsEDCzMz - NsekJngaTEgWZ9AtMkqM0c1VzDlAijbPLUYlGgeL2m+AytRiTmw43hINrLO43VZRWppmH1UyAwIPBlRP - WDIXBVf9GBJSPcTnPVmDf2jRNAKsNP01bDJGbJZJ8HkqopRIr7a7Iz59Kelp0ip6GcVd9UCCAE/eScvi - TLYbenEDAJmv5TRYGA3hgaJUsaqnwE+qMSgZRthhHDNYW6NaNfX68RvW6zhSCyTFweqEmuEhMhUufi07 - M+GBzEDDHhe29bAZpb3JXDXvm8hCk2y8Kh/jYmd3p5tSh/WzHRVzdqkHZWJpMa68B1D5q+YEk9gJNJNZ - 4Po0B24lDuCk7Mm2Yy0toxu9T8MX8+HBRcNxONmYCmQmjs2XWoEw6cICF9J75sa624nIMDybSuHJ7YrR - TqZt17pf2Egcr9KLbFFj67q+veYaQDJhaRAzGYJFC9NMgUd75NaxzQscFrhai5jmgQNtPgFQjc5SM7VY - hVqf6a0QezLa+1Bz3Fnl8i2+CnhNhM4tZOflfaSj9cBoQiT1/5JhdnqUIcLS/duP65JAkqEyDXNSrpCA - Mro6jkWkFOWkq8YKPRX4fdA48Sdm7Cb3+OBKewCo6LhmM3WUpl4/ouD3kR6lApxIAHn7VF4v0PAKxTlT - mtU6l6Ik71g1ZKNxn28DV31p9YukgeQa6pSmpZ5u43MASwyXGSgoTW7umk9W4SBYokUT1WpelRw5Rb0e - ckbv1tU9yyCFJNuVfJxzvG7No4w/FR/Nl/kmpEcCno4lym+Ajh8A5Su2Tr52eWJsJLkt2xEf0JONvoCo - YQ1Fi+onDuMKkHPcDCQjo6uTKnVg48mhTDkCx96+3TtmM7IY1OXDuILe3lOBzU3HMiLj3xEY6TQRG2cZ - LuzMZFbfpQ8+qsy0t9MBNaJReZLKi+u4TmocTOq1mHX+/LojwNZGS4BlNYCUgrRAISyuVXfVt0fcMKrj - C9Ddf+elxPIWGUUS1tDS9Zqog5W1XFYjoMQ3oTOfhjPRHBWm6JLTMGjU9IQjCB8AykY+za/6eQF4au6H - ffLw/fd0zZZgarSdG3FdhCDMR/xrHX3ZZ4EABn50T48Xoc887adSqscabdnwMWN+JGSqab/4nOU9rKmm - Zlhpms2yxf912cVfTbygpbP5ihjYq5lBPw5mzjDF/nV2M5EBLBmI37UC0iTEU0pSU8hIZeIAoCeIo/tT - OEtN8njVsmzrTcmobCvODRAIp2Xj6zaLmuKvfa0pkZT6+roqZNKYCXwi4EneNVPDG2LYP285baKdJ1dG - k5kIZVJuNKLTdK0fax47fZ4T9vGrHJ2KaOwwy/TPPGms1SsIgGxGWlHteod+qUm1GZXRGnPDPivVHlRs - uSERh0DZ1ejmGNuYkzqeZw+AL0UcZAU+xnSrICIUgB6iTZwE7BPKaEIpFSjpro5YFFNTUFvbiYmq/lea - 6B0hvM8GHxaxwCA1elpmak+HcZHLomEXrXpK0EB1AL5dGHCluXPD3bhxYc3oW6YXaCScETEet1DeoG/V - JgxlrTpfaCoif2UhTQ8N8NM63VNRZ0jrFI1zqJTSGh1nk+xFsnzqfLTNtvfqMWpLIRg+LIJ2piNpzDIu - jU6ZXXK+MRtVTTZqLjgGcMSDOr0lm1uTZi/IzxxERtsuKUY8GVXRSe2lINJpnceBSZBmwLRnTNtRrJAy - T2HQxUmJAzP4JntIKl3CMJ2yLv+jOTNHyhkGG3p8mL9yu75qujIaG8j4/XEX6crk6oOLrctNVPH7LaLE - Xx9qGU4ltYYjt/hJNo9wHpLbIpl18fMLFK1T4jBeqwPwtWpKhGuunYJTOithJMahJ6aj7hgYAEn0aA9C - MU2OrkpXAPHsM7rTEqwZOy6YYwZNRcVWIa3oGK+dNQWdTXGvqWdkKlCmO9rgEhmsNl34vhuWADq7AJOc - MxN8PcJZTAVBe+WWU/NwNkkG0F/9J0KZHeLIvjihAIxDdnKIJN8Ib2SUQgWQqQcIl7G1f7vYRkHicjS5 - QhlFQUrwl2tYxtLFAPJJ28v3NbbCI6WLSsDU06QtPdgvo1hIcao3RWLdohDKtLno5r/JR1NEPVOENrj3 - R5SNlMtPtaW2+aSIy+Xbld5BwYsYpkKb2vAaQxPwAr4bXMpMEAzFdQf/rKKUOrT0BHkehAfuZC+2LF7W - bvZte+TIbuMUHSxCGEO8JrJp6j8WrGA9j93GXmRvHWXDiNkplWsBJRl02lATna7xuVIjyrlNBuowfhCz - 0+G6RAlDEXWnDWSsZpIMoGfe44KgryQdV8PxbT76jqIhr9GpxSjf35bo43ePxLRDUJEthXXU/pWOKjnd - BJgUY6CTkEK60pin5WvecGux5008I9RkBv3GYBmHhwobbSCchKFyd7UNdZ7Fs2Cru7HteW2hkYR5Ui58 - 1g7jbePrW/PDIHHT61//2BPum6SsCCziUahnYOmhD0Wq22QWI1K3zRM0FtQyEeVR7CBKuea/EEPzrd5h - SjEatAOfo79HnDqBvr9oM0WIsqS1RUoXr/LoztNXCYILQ9xC1MHC16kkbuuwfpvkzMB06vPNMyS1CNoT - k5HRInw4iRVird7RrZSEKIEBSvKJesDQ5h5/406F4MM+Qo72yTi6zND9dMlqTH5qTzmraO0rJjsvJcwO - 2owkBuPt6zbQiDTSSEenCviBuiVt9CwAE4ooRxEFFcVIMz45Ji+ln7AHb2ifJqeJS5ymDRMULB3VjR4h - KACkI668pp3Uh+dg1WgMmOqRVVQjosgTcvbppjhoE+58ShQtIfCv1Brpp8cq8VYdtgRHAwXNh3fIzr2s - YSejtOgqUnK7FnqzLctxNpkHUJVYH4vkyGv8jXRFNBzTcrZhwNNZvREZiqjWxwNVDQgE5kS+LxKQ1/oW - 7FzWoKC9m9O7WOBaMiu2Pa423xVwepkJ81SR3e63gACX9+FaswRoKZABU1gyh0uwUGE7bKgKRQUfW//5 - fdIaezMdHp0CPflhInGagXTSozvaaRhL2EpeDCj2aMVSUgMz56U3Y0ZD8nUFnYC0kAJ3uujWM6R8TSpf - 2SkMPmTSGOxATtGTZDBnYjyk7560Oo0UwyOSiDsx3EjVwXkMbflKZGqI5ywoFLpDNvfaMDG2sW3AZMKT - LaPVavCkNr4WZ40CblT6jRN738rmGYvGfKS8w6qHBoqCDsh2xgL8HAqqfsSuPWQbZwCJAaqxts7og4cT - xL+cEYTCbQ56lVW6kJpNtA9TK10GSu3PbmeXNnDK6JolrCZcZyUmByFHWjoos9HlueW/GDE5R029/dzF - NIbUDzTkBZmCRT1Vj7K2l0A+MyJuhiLqcNFEnDoCG2hDJPjJAG7z7l/WQQI6JUWm59vGdlWrzAaMJhsL - ZPdrAIsASvII96u6sWdUuq5CmCbMC2oWUcGgNVvCnPQeiOJ3wY6sZ9ud9W895loX6yfuYI5SDyvipq5T - clK7tggY4GOmZ45np/li5lpXtrgc2KE52MlYxO74MNDIm2UtETbVYNx4t60f+LUYWzywxzl+I0oHP1L0 - Dn1PKrkiSylM1kuUervRKEeVDgkhx2LxIghYCPB1PN/fgox/KgbgSoQl9e2FJF/PC21aqm3VkZwjUG4b - za7XLtQBspzaqwFFzQTHcRaSrMEBIe2OKFvNxHkNs5nkhwayYYEi0/PlkEiJBm9HooKIHdImI0i6yvoJ - 2rycVI9c1tUmTkOWa9r4KPBowg0OaQ0DCwxmPDaBOpofr5imD5aFPB2/MzSt/zE6M8C47SvoTZ82gb1f - kRAssM5pqRuRZyQ8rgZdHt4rwKB58fGFJkq7+pD0qqK/Awg5nS21PGJLj4gbY8w17TUYSCfeWw2qA0fZ - uy7rUfsWJA8T9eDOtKOQ3G5TVNxSpkb6GimJCpOjIkF23qA7IRfcCqDEQxRrtRYyOQvoABJorq24oqHp - eJaCC87AWDa2JwlXVANh0q/m+/3g1DU5wNIvBQ3Elfr/iESmLDUvEevbG7KdOBepuTYWP5zbyyhwVdbr - ZnC8nBrTzA5myZGpqNiPOX5VniOsWWiHLgEBaSSPp7YPDULwMU8tTW0vgCJZLWzF+NKkgeO746/NpzmF - 0EFBM9Y4NMOt1BeqTlI6YqBEwDFp16w0spk4SVR6WXWz9ujXRiQcs+78ONg6iFWbcb2OLc/mrKz1DYao - im56Z2y1SNyKB7inWtFYaa68f1pejbXjEhp4CM9btf2p4rr1W+7/bQYwPorj9R9P86tiNN41YTdosDHA - ELHnnjQFHqAa6/ECjsShn8wpu16/cbQmAtr0KQgbyrfhddx7PEAyNI5bFFIreuk1PMR1cdRPkqc0ZJov - tlc1Y7L59AwESCcnO0Dib4XhQRGKDZDL3+XfND/GrIQb6suG1ua6fJBcUdOo+ZlaNtEyHhyO6VTbqs5v - gUQCGeHP6Gsm0/UxjXAgNUtyDmxpMjFnMSUtZZ6zSHLCxjIRgR2h7g4DgADA0hVaAvr2nlQ4TbV2CpKx - acnVZ8YjS3QoYiWuCMUc5SyWChmtTUKODCKUibQUPVvJcmZdhaOWlwx25RVtZvQb2UaS3/8xGuRYS7HE - Xd/l8qIjZyUcQScZGxH3MxO2G2B907z26Jg+a8bRprAFH0w2RXd8j5w8Lp2jd5BZEsGSL8a5kPy356F9 - pasFHTMjNrGM2x0y0cFqKsy3VlCz7T5t9HtNkK40xCRFWfqVO4X3R8fW19jKuEUGUNMtHUBaD4btnflH - jCv+n1TjDDyKjKJ1KbR/nXcLCerGX/5SEcYnV2jyo0lDzq7FWOJjMCpblJbU3yEvg0gjhRuMutbA1pK2 - QEXGhEYEe7Ym6ShtON+yAx/iWVVF0FixAb5ssGVB73HskRvb5FdFed20Bo+UJjeUWoguBl3BxOZF4HPT - D5IVBP10YejTEveI6ABG/LQ2V6fElhx8RoKBXHu0QhbHUg30kMQLjZsAooUldR1k/3VuCAD7lZEAz+Xw - Mvpx0Na4U3xREqjujQfz6hVbE8DTaGKQGS1gMna19MOTAP7Wf/s/LxVi1VbtX0T7K//eD3mtwZsbcg2A - 9XUAowU4Kr6i9TsDFHEs8pOH5NTqQJH5Moq2Y7GsjX4abHQWXRlV7arDdN6FqIIRFzmVaprLIjVt5OuW - CbyGww2rtmp/OI3yLk8ayFssgnez9HHct3TFyg7FPzhr0Phrbq7w5QA3W8rJ0nUr1wA4fXValtPV47AS - CJRqsjWFlIQGyGnTklbkZgHsJBYDz6qt2h+xlp490HA4bTJbDmJLVn92dj+5gu1uSS3oeVAuVHxl1/iJ - 1LMUsZzttyYDaLwopOWjAAAgAElEQVSVDolEVTeE9LBvay8+9nnTpkAGMIWfTYdg2ff2rdqq/VFo/jxH - dQp7qtJzWcqG00YQOQqf7xN/b5/o6MAWeWNDicYCrs2gaReA1+JNhcKupYojIkv3PlxV6XHV1gA0OT5z - YgWu1/I1R6u2an9YjY9E+I+/0i5Ifip2XGCtHzR/a45txVnKJkDjtfdwk/ow1ix3HrUoAnJqMloC8DqD - H0Cp652Os8vEY59GOqoI8G3Gcp0OuNTL/+F//KMo1es2zbEJELTl4lqC8YG8gGIFFeaEaymmh24i48Tg - 26JemNGqJ4boG4AXkzSujdWKrjlqLCMTJ8sMsG1pZl/P5inrTVnTUtwNEXWs76S8CcJ+jqT28yUnXV8S - NKT+E8tOe2yZMs8UOqZ4qToxvYOyV4n57BWwg5l4bcveeBYjhPFqgOur5UeIbaE1ftGXy2fyA/Wp0esX - xuUsxHLnB5pzAO2jA8FyuIsd+UwFCrTjTCAd6SAUq+HcakhTPzFQ8AmJFAmg47iqIzl9IuoxZTsVFkuV - QG0uWRhLE7hqnlrfEUDSpnF7wGN6HaY02dVQnF4oKdRGKC2txulfA18xYxb4+jJnkjHn5tyJpu1f1y25 - euPoAEu7YY6xvfsZSbFaUTiqy0Z8pdvjXG3d/SOeNdydLCoP3jSKZUhSK2BfiJJEYzkaUYtOw4Z8dzQd - RFoOigwknmj78frKl+lv0vmbq/602nIEoBpANR5hGKjn3y1qEGK6WddonZfqPbSLYSICUYLEFQsKgdaX - J5hyBxjsjkZzhqtz2UkejmY24bDDGWGE02oT7xdOETBp7AfSyYQ2AtCKjFKpBfLHUajOraMN8sKQRTZL - IcXkVmF10XyG4Y0DQLkhhurNNcnKWiJHsbFMWtvv16SZsCwAfqovtGpdIrNsg9PyRozANA3YMejJU14x - TdU26prcziGY0q34B7L+MS7m1+kosLhe+KSmzxtBJZj2JGk7rHdDABBRzEQwE4HMbIx8+EUI1j0q+0Ed - u2O6xeTyFYpd6VxzVgA/VpmRVbPkbFTpUTlWIU0ccdZ8OuJbK80MRhGF/OrUhKdrEgP5E4cwxRr+NcY0 - baRaj0hDrGhE82fpf82wkvq7vOXXks3aC7TLmunK1sOWtmZna2mwgctYdrM5cwhy2t5WGNP12dHQjQGi - HdclQkSLbKyia3xihml/8xKl1a/LohY61CN11BKa5SndODLzhjBLP6s1gBLQp+eKAMAhOpQRC4/Izm08 - 4x05lk3alNa0qHNc14yTz/j7JCUlIBByonnUkogoClAArEYsBuCcZrWIacAQ/DoGep0iHkYhj0HYY4dX - c3ZRX/qVt+IGMHYRzgUY9IpDFHmk8hPbtHwCsWSEir49BO+K4mhx9Bg8ybl/j4bpCnbUuM5L+ElLrMuS - mA2E58R2NflX0Mw8xaVwAl/SWPDygpY2ETlmINgVpLQdoGPPWY6ejfrsiT0jAKcXWap49pQDzbTN+2kh - vjSrRcBlgQPpJKBZkaRCVtrScJRCRCwXdzyI2YxUJv2sABuTFQCTbVe8LgPBi2OYKO100DnuouKhEK/u - xC1M83vxS4MuoAvFQgcAwAyC2doMM8ygM+sbxmEs9VVvaWd+XsBNjgtLQGeCGXnDdSzK8e/mRRHKIt3E - GpKNmIqkfNDE6HVnwebUTEXpYgWeQss8OCsnBbQaLLgw7HIHZyNnDBo+87D60rggJgHEUOJ33Hz/HeQb - Prwt+/i039ismpH774TmkGj0zDSa6bgBgBSEppsDgKCkDUB6QKAMQGEqPeeRmBg3nhQLPvkpCUtRKfKb - sWmNQghj6jp/Je4YYIMBVKyqk+SV3Qpq1TA82jWB1ejoMOCz98/w4jDHIMD85AHefVtwZ+sWNtbXMce8 - u9bqApU5JEWtXLfmmdd+8TizF2qwrIcAMTo2h7eYQ6Wdh6qE0BcBCaN02xprM6NN0jGQaeYn9tDzMXDP - BG1uDCwZ1GneiujkpAgbEgk6YVdI2QQEwEB0BXEM13kLnwh/qAEqOes0ULo+2WjNzs0ma/dW2x5cCJjH - 08FzMY0CM37l6wW/GpPe34ry+D7ZvPIOOuEUM+vM+jfUqjluNWaipY2w2n7SsjN6bSlpWAz/CkuSrd47 - DAN+894JvnS1hkNZw71hjlc2d/Cxuxd45f4hTk9PsVgsUKzG2O6DgTJ/ZH0e8U01YQtdUYCqIzf+oi9F - RE8/t0GGNY4i4vNimhXXkb3TpKOuYDD6GnPLXdRUnhSQKupCHMD5CSAsdyvJa8DQxFNTYvUQacaEObQB - sQEmy2PAz5gl5Ei0ZRgy9XSko1da9WPLPQNbVxIs8E0vdNvIbvOedmYrv7Nr/JMyADtyGMbgDzKQczhj - nXWHMSP8xu+ya+bYJR1tq8UJMzmtsa0sT8eo+MjrXPvXED8xX/fDpzTbtGEY8Nl7J/jiYg3HV8DB0RkE - iq2NDaxt7eM37j6Pf0kV8/kaZrMZZvOO51KzDMhZdpnFlaYjJHL1kIz22vRHp9DIiJIOezTN+NpdjEox - LYmTIGCDaC6qCxcVDdSMSzzoeRSrt9IUOYjYckGrwvyLSJzDjv1JBJw4J6JJgZ5v8lwlWasujWXbtfCA - xcugrKRxnuUzDD83EpFvpFjr54eJlvmv1QwA4qdS8uLfcmNPJwFn9ULaGVdpQTYKaNfwN4rIpHzhf9Q4 - CF7cuVtdeug2tIrJ9Oq0RTzrZ8sXV2/DY6epDnjm8BS/fSq4fym4e3KBOYC5zHBxdYXzheLrJxc4Oj7C - xeU5hmHIXtrVR0Qyf+xW1Z0+7a/3+FK6LBH9xA2LIgEB6xQ/5vz5tJlF2lpA9YmimFRpjqbG951pTS3h - 7FaS7amJgnb9jBxM4NvRZJl9BZHDAWWnIA73WOiJeQhdMg1z0DpXdXclVMqAkKUYg1JwKmaXloFQn9B+ - tVWuuCfecjD2MrcQ3x78AJktzwDSw0AqlIr7SHmftWwxTZ9EGgEpQMYQClWL5r4up/MGbXjpRdW6PuZ9 - 7DJWrCbzj2xY5T11HzuHAoMq7p9d4JOHCxxjHfcenGNeu+qgkNkcDw7uYfvkPi4vL7FYLJYWfXw8R/+I - 1II6WWQS1rcTIEzI1E8dpOt1mgTh+1qZ/UON/1RgX63FYGrQwLyw/ZsDx4UqJ2FGFqLDkzu4nd2AO54l - fja73WqGpfwujgWwuh/RDB2ZAFtdTm8MvAK6TD5jmHUyNgJSH3zulQJcRSbvJw6hk/qKIBBOL/6+fmRb - +stDdP5CEDsHkPYhwke77PTsXviFgtJdiyS27xqrOVZAOvIgPRWUD4Qto1KzAxAe1Lx4KWEUXb7Dkodh - gY+9fIZ7803cPTqF6oBhUCxUoTPB5ckpZq88jydwhrW1Ncxn896yPyvIQEjbieXqf+WtAYREhElLuEMq - pPLJtI6wvEXtBi6gdWlESeY0ESIxFPBUu2QgYTT2BCnP0qSCAGRnrPpJURAdR8sgwUzb0sMAwpZgCb3o - FiUb8Y5OXOKzkSwyEsWHEbrdLtb/4otoxEXTdHOaKaJvqKT+Mo0r9Z8bHwQCwI8Q+kBqn5Ve1wS6ep9m - 3SgozYrPpAruD/z4BGoI35BqJbUKbV31BRTUgwu2LFCi2UNFc59hWOCTL53gOd3A3QcXuBoGCATDUJxt - MShOXn4Bb9FD7N/Zxu3t29jc2MBsNiNa/NccwRw8Un8zCOZR3Aozb2o8qr2PcOHGpVWno/jYUFMz9kqZ - aijOO70Z6x9k75rsw+susJ2Wcg8X/PwF02+mxMt3mj8b+60tYSy7RA7iVDOy/6Xo27aqz2I+BQx9Hmuh - LjIsAzoesIcDIWhxA1to1YAo4WhdXTtjJq9dqg5u4E34YBmPxOR0W9rxs/gcwSlM2M6TL2sJuRyB4RFH - kpDqCvbKs9KUTA3FC8VqWZYJcNXWq/21n1S0rSOHUtRdC6qKrx2e4dOngqMzxdnZBQSCxaAYoIDOcHT3 - Vbz+9CW8cXsT+/v7uLN9B2vr62mrpa/uOu1pK8zAwYwyToS195qNoOqxZFGFRvnSydiPnhg+cedbVpCo - QVi4SjYw8kyn55t1tB8fwEFhKftH7RtAUeSo4CYRZLwO0BahErk4S+GHa2BVfsolrV6SAkqOLsxicnLX - R111N/MX4SPryGE1HCA6KIMSM7AkYpuMUv1Ri836sx4+h9Xew7MmWyoCjo8OSkaS5f7fIKvWa342r0R7 - +6w6rR3UoGR23CZtWsDk+JCLVVw7AcfCX7nsW0GK47MLfOKVCxwt5rh/cgYAJfVfKAaZ4/z4GFv3nsPb - NhV7e/vY2dnB1u0trK2vjfZaeSzb4eH5t3eF78hcRvIqvIhl31AbqxnlTo0ZTjgu4Nt+4TBmVJVRVxY5 - d9M8A3H7pkjZeEMXk6S5nzMKX0IYLUc+V004V+XFWAfbgKX7cbKg9bHAltjQc2ClXaTCLrlro16lf/gj - f/Cs2lzs8gjHpypqE2QbO3A+KvhaUTR2JWhk8Q+Xtnzmh1IKG9VEXpZUBq8UYf2VTaahefQ0p0UzCaPG - RuBozAclzJmpOyiyIuuS3xiNYTHg4y8e43ndxN3jUwzDgGEBLBZlf3+xWOD85efwztkZ9vf3sLu7i+3t - bayvr09ibBtE1LgmMGrrwV0iIWhoQTUJ7Oifw0l5pfm67e0HzLdRCI3Oo3nVxgwaZLN+/gDRJ8mXYqzb - QtnFMBKFG6sdjHY06CWfBTIlhVNUp088KE2Ks+xyJOoENga6ID32vqgmdkycw8qDxgQJ97D5q7Jmw2iA - Ks5NlF0JA88qfVMoEfpvWWtqAI3/23WuGnWa8+rFFmbBLBOwiC90kyuW1qGdci04OzCzMSuI6OvEXPTy - jj/vkB4Un793gs+druH45AIXl1dQCAZVDKpQzHDy0gt4qx7i9Xu3sV+j/8bGBmb1ySkGwBgpUvUSXMMo - xcBJEicj3twoxKocLA/IjyQ5NVOxHUM3c98WMwdpnJadpGErUuC6Y0ROB+NXmGRrTeyMxkdAkFfsPaJ3 - VVM+d8ep2iY7KAXXsN1JNZvhswRVYbztaWc4ls1Xwky12IwK3LajYDUvctje2Y8RAEtsPBDkNVPaCob2 - atvSV4KN1gvaGE76oOG1vrATSEBUvG0yVLRJB8kJONVsw7UBpdo91TVYaEvVYEgcPHIBcDTIMODg9Bwf - ffEch1czHB2fAloygsUwQGWOk6P72D9+EW/dEnf+W7duYT6fN3qpqKwYTygkloJ1rR9g2bHwUaQhp9WI - kNDQd6LEhujAQFuGZKC5JlLHIpFIiwGormuSGUTDdTC27KCu4ATQtv6iXNc3Xx/KAgAQTqU83/E6h4WQ - x/VsmiAFmkymrnTeYgoIPAYFovov+dp1Cnh94UjIKhbbdWwkRTm4bR7Mr0kB0vcBhPOyML0E1zyvGVoN - zByqKD20YKN+1sCXeSMJMvLZldjSqQht1mPeRBNdJfJ/u1oCsFDFP/v6EV4YNnDw4AQLlKi/UIXKHBfn - Z5i9+hy+eWuBvUf2sbu7h9u3b2Ntra773YBITjFnibV9wmNLlUeNUZUMmwTgzRRfTo22FpMSYBGxnO7T - 0JsDb8hRaGdllaGsWOdX6ocE0PXfkWQNIKr11tAVsZDESHjEzlAvGDvCN9J47dyPJKOJKwW2CmhmsGrg - ImTbI0JVR47aIV9l0M9DeB7fAQ4WgQGGAlr5chuquEjcNGHiS9vErwMzF1Nr1KoU+rQAm8JCXX7GWj3q - hMNGVGwp82sDTqGdCCscOXY7oizjMH8yDAv8zkvH+O3jGY4enOP87AKKstU3aCkAnr36Ip5eP8Xr93aw - u7OL7TvbJfWf+Zcm9LkXRBorlpLaPnkrpTWaSKpau+Fro+2psf1tOBevzb34x0uGlhY5uucKElBi4MGn - QmkzoN8MtEwPkZdk72/X1y1drXwIwobULIHkaWwr8xU7T77McrPkkpoG390W0GPHgE116deSK5oIesu0 - EXN0QQKAyX04EBqPsYtz85a/Fnz0egmm9CZJqnFVJWhoMSrd1SLjN9HHpFsR/FttqoBRMDJyQoqlbZoY - bjSCquLg9BK/8MI5jnSGo7MzKATDolT9IXM8OLiLJ67u4amdDezt72N3bw+3NjfTnr8P4o4dCB8nHp31 - yUzb9ZD8uirV9VknXJZNM8kuuQLPUcWWTyUbc+ZJRTa2OK0eMMcvCXGYbl8ZTWc/3reSiI2NkZBx7NU0 - E7mAOcbIdiYVFcbnW98pXdCI1s5zFyVpMNuSDRCPw0kBASzqFGc+76wvix4CmjPSRDoJdbOWawB1G/BG - LYUOC3UGofSJobV3t7PmwXxqTXQU/qc5nZLW+ipBrQUwHatlsRjw8189xPNX67h3cAxdKIYBuFJAZzOc - nZ5g+/6LeM8d1HX/Lrbqul+SM8ThE2GdiGVAlNuZ2GNfGYNBVHzQHqv1WNeda0IYXyIhpog+tx2afnCL - 6BixqAIGIuKN9rLYwE39tYJdxPKIAPvaL2fLeGaS/EJCdvdVig1h/hFcdETL3uZMI33hLLHgZ0xGRAKc - Aw2LPrQ6aNqV8eF8H6V3vKFypnFC0HTS6NYzAgq4D+v8wOQSYLrlgUJTaodREggFWseM0McJcflaFKdc - WelvuS8dgPGxOt4ONo7ylN9vvXiEXz8Ejk7OcXF1VVP+AcMALK4GLF55Ad+6fYnH9next7uD7e3bWF9f - 9+jPOG5AB5j9Von9A3X+rmu8tDFK/p3wrVX3Mgh7LZg4m6DuuBks277qfdL+i4OKZKU6hdGFTNvBnM6E - 1NtGmz+O9+YIBqz2uuabXlircncNgCyXcZFl8EASCH3dci1oa/Q3OkpwNToM1LdTp10dKX1ZLGqQ9qV1 - noI27t2k3QwARnNqxskbbHlUK+7wt+4GKeE33VawIdIpO4jhJ8jM2eXm8goAHRT3Ti7w4WdOcHglODo6 - AVSwUGABALMZTg/u4ZvWjvHk3i3s7+3jzs4ONm/dGqf+JhMV42xPm1Ys1LFfkGyrFB5vLMLV//l58bgx - 3rnNVp1QtpSom0H7dlT6gJwh4rxFGRuv7NNz1By5fqIZzxWoAyTtP4DXRayutDvnXeqyyvRjBToSrQ+0 - 1aHqS/sSGMMyj1xCwLcsGzagN8Smsnts0yksQEQ6NNYPvw85SC67VRiQ+HwO6/8GUYbazQCAaAYgxvZI - MkSN6TXn1TSLpujxMBznAPjJtzgsJDZEoF+zLLhOAQsd8LNfuodnztdxcHBctvsWisViwKAznD94gEfO - X8E37wp29/awu7ODra0trM373/pT+ESNPIL4KvP2TER503MS33FWTXZiB2kis2HAC5r5r91SmeIc2J1I - eHI6HKnv0vh/VSYAflJvCvyZj+DVlFQimldstM4vO3ErDyoPZnC+MBbw9zvwI9EjRowPG8RemloqD1Zs - Lp9N2an6fEdwL/+zQq3SUIp2+9uaBL0KJg4flgFYL/e5sQ2N9X/TkPgQS4Ae1oeTSxLYkzu3EKX7qkl0 - FkBC93rv6gla35StrA7iCd+V+XYX0AGfefEIH3tFcXR6hsvLSwCCxVCf9rta4OrgZXzrnSs8tldO+23d - Lql/HlPTSJYJmQE4yKkmfRG3Iz69qk0fOSU/T8HpztQkR4Zk5wXiqChiT3qqEdByDuDB0eRM8veb7cyY - Xlw3tITxR9AbAAM5s+nBtzFjPxJ+0u46nTBxK9bV+/k3J+Dy1Yg+4bgMVJ4dacgS9RYC+MwFUYvAaEGD - swvL1MzXODFaJvVN2rUAYAwJXbDHVS0j9yhtkYMjRVXOWAGa3kWLQzL8RQ7w/eI4iWYTWEj01cDfL//g - /Ao//fn7OLqc4ej4BKqCK1UMi3La7/T+Pbxz/QGe2ruFvb1d3LlzBxsbGxH5zdZsi84VEtLYFpmheDat - BIEj8V1eS5K0MZyu4yrRMw81zvJZ/7QnPbHVVnqbTPV/diYBNMdNaJyC3TKuROA2WzJ+NJIRv9uiqsL5 - 9mjKtmEcqXSdLDHGyxXzLSUeaXu58McAzrSCWXfSSlcAL97lQJHDp79S7kM6MXSNTqXwTHWM34vTc1u7 - rkMkKeL2xehfPq6RhtJN/xJFm0iEYTMBdnRzpHguvij0xz70f/yeBVVVfP5yB1967N04Pj0uBb8KNlgr - B34evbyLb3t8DXsW/be24sCPKyO2h8SYRKSx5XMfNWQc6cyMzarBVh9Qv1YipwT4jWY9gNBAoIAyhU1U - wFTPKpNxehOu6VTgkiprpSXp3nx/dhSpURawMxDu/RTlQp8Y0aq3RrJAKMGji52x6OqnyqWx5x/ppVY5 - Nculxm+MFS9iJm3jWSXmqNzGGqT7BWBBTT7U+RJYtC+fxnMU4sBt8rguJ7b9HgYcHAAOj0/x2194DgDw - nre/MZhE4dRR0UWzSGdMBsr5gRXKoJSvp2gDNwTYvnWFfk5df+Tf+vMw6y1gIkjEOrqwCKKD4rn7J/j4 - J17CyTlwcnGGjbU5rnSBmcxLx4OX8b7HFnjd/oTzG0GPNQZS6nPrP1RBE2OvmLUm9jrqu9EDrk9N4bEV - khC13BTr5MqvG1fH0RounJbJUk7GebjsA1nTIpu2bSpzZHM0A4cIEiMaBEUIURDbjnHf5G/4OT8UTDgS - 10nz+1x8bS4EV7YUFdaRYa0BhwHCWCj/E0HUlrOaOohwx6onYTra8Jrb5ULxyd/4or//lqef6GimtMkl - wKuvHjxrA7ITxyu1LCmMvEYt5Rtt4siZc2NU1GrLFrXIkWwAGWFrSyZa5WehA/7RZ1/FCxfrODx+AB1m - uBqAxQIYVHB+fISnN0/xrsdvY29vFzt37mCTDvyE/1U5mgIfO25GOGFTzuxGQAQpKqq8VQ+Mb62Qbvrk - BFaY8u0jW1Y0eum1/OCMuJPyWYDYosxcmAyWsls24wM2PLjrNby0IONy17lswbXlYkStmEwBVJsvRTqD - IExA0b4gTiofUQwp23Kwvf+ioFr16O7zt/OozhPZkb0AKPrLWF1LAf1mbWkNwOa6dV9em1oKZqgWVUyi - sYRjriX7QyZ+siPcx5yeTwFOgYClcDaxn3r2AB99cYGjBye4vLwqZ/2vFIPOcHV5id2Tl/GBx+fY290t - D/o00T8bmq314G7Bpxyzgyi8F/Nm70N0NObYAMkkvsF+QtpnQQF4dEWNINE/E8vOq65YHY8soc/+6ZqI - a+WjiJhpPhonblDBdWBjpaFEEi0PklOIZmdEvDIvvv3H9skBtk8n+A5whHtr6J2yjInoXCgZGlIdy840 - NP1a4O6S9G3oZUL0243PAVjaY4yEiWejtWjB21lcpkpEyRAJoCmyAYoBwzDganGJq6srXC0WyTxT80mt - YUgVx2eX+IefvYfDC+Dk+ATArGz5LcpDP1eHd/H+RxXf+Mgd7O7s4DZX/StTrFir+FrqH0VISt2WQnOA - iumKDcjMmvFh1Ign236OZaFFvcjSAj5bOuJ/3c80wCg5Rteemz2bKoNyFtc4bOG5Be4gHvw2wGP9OhlD - aw9+t4Gfn3BVz0xMTvftkWwNUPthHBtRHXxNJiuXBI/jGVQDieRDVsRUtyNlEkI66m1Fm90vRbF+W14E - NPT2s/aBoIQFuejUTHZDDozb5f6KrL62g6+nLq4W+KXPv4oPH74OX/vFr+IDb9jE+9+8i1sbG1jb2MDc - rJ+oAh58MOiAn/vdV/Cpe4LD4+MSFa8GzGaAzAWL42O8a+0Q3/a6O9jd2ysHfvisv4chSU5fjCaMJ8bN - pxKTEkxnVadSvda7iRm/ydPb8U3kvB+fD+g57NR8ROFPIwxW9Oa6hOPpBB+lK93PIwuQHmKSTqTiBySo - UpkLdCEXj9AVi4DV6g9RXAH86+14/ZoUFZq0GoqdCZAqgMGJZV5pJ5EC24g3E1U1smdybPcxaEqUnD0u - XtYxPE9+DSnAMgCwHa06GXUryZ1UkQsUhADTFClMxhrJC4lu8oqXDs/wP/7z5/CPn1UsNp/E57404Ge+ - fIz3ffpV/MVvewTvesM+NrduYa3+KEfwWed6AJ69d4Kf+PwxHpwPOL+4wNraWlXSHLq4wtq9r+M73rON - /f298vVeo8JfoHtK+1zSyi1t4HtEbNVQJxxCTmvdaCspKtAO/WM9sr+4c0nHuXoHR6J/FNokgFss89Lg - SzGiwtR8u7cNDDA7Icaus1GOuFR0pY2i/i2OYRZFQ3J/zeqsOk7glMKuwxqtyTXmUQNorBgYKfyYSccH - LTr2LMgKiynNjBqYUBYTJy+5mkanS/8gMgBLfbKD0fYE2ztXVXvNtOkFDs30axsWA/7mP/0SPvbSDIcP - TnBwdIS1tRm2t7bw4GIbn/vIXfzFp4/xp9/7hvJs/vo61uZziqLl231//LdexnOnMxweH2EGwbAYiiJn - Cpzcx1tOn8FTj7/fv95rY70+5tvKBenIxY7Kco96FQp+JsD+jbDq2Q/tO09Hf0pr2WaUnMSdp08lIgd8 - 3HKx8mBRkuRq5deGWs4/NRlM/GRYXx541KMtUQ/akQLwEjRFRsKq0DCoVmXbapwbFNqTtkrrH/+xVNqm - q4qmqDyh7cqMxIv4qJHZzl5IPVBkS5Us/ER7Dc4PXJsBKDL0RnpWUNkg39AsHGaSYT6xZ6gmgbQiwGIY - 8Au/exeHwzrOLi6wNptDFHhweorT01Oc7uzib3/qHC8dfRU/+v5vxM7uLmRjo3xDjwCqA37tmQP8k6+c - 4ejkEourBWQ+x9UArK3NoKcneHp2hCdwgL29Pdy5cwe3bt3CbD6jCFEjAG/t+aEGCVEyDjQKRPhC+Lvr - KiIMpXwY07FLnnuwEQnRUHb+HktBJbYtlU7icbpb5r7NzZx95RdWH6o662QEY5nSZh+9CpgkPwuVgU2L - nYpOMdT3/kvE7Fz1ypSGYuAMfXHYkGCeCqwJSJmk8AuPoHSLxhaiMa9JyMlGphjLnIdsS4qAgsyzXuAA - ACAASURBVMDJwljajnRU43BJ+/iJ0/FLV6PTjOg3DIo3bJ7j/MExZD7HYMJq+eGyg/uHuHe6wP/yhQF/ - //95FoeHhzg/PysFwkFxdHqJH/vNV3F0NcPJ2RkUMywGxZUAV1cLbJ4d4LvetIY7tzawUwt/c0v9xcSp - 0tUoEkU/k8+kr5KQGsjCvEBnThVrZfUoXVQnvg03akp2BKoN1zkYpZ9UF8l0hPiq4E5pPhR+2oyBPe1c - MEOGbFVOc0StQ6UoHV3d+Yoa6k6BpKBLY2e+2X80WaC4f3kxrf7nlfqk3j48WjT2bWi1LT3eCrVgQPJJ - qyMmXHONKqCVHxzgaM54d+naqG7nEHg6HrItXQJwVPJIQFF/jKITKZXrir2kfGAK8C9LVEBE8J98zzvw - X/30p/GZowHY3MKAcnhkNhPMZjOcnJwA2ML/+sU51mfP4M//8SewK4JhbR0/85kX8asvDzg8eoBF1ZCq - YDYAl6eH+OBjC7zz9fs4/OptP+4bv6IanmvFMf5iCBXg7/ytD0V6qP05X948fOKh7qaxqKbFvvp7GPt6 - XvjOlqepbOhmVKV5/RB8dZnKfPGOyfWBtdWPNJ/F+7/6137I3+sywkIA7QdAmhN+msJtZmWKLMdeHavg - Jm35NmAzmwXFNEY2AW4wcgkOQu/jgIn4P8X552sz/Im3P46/+QPvwHe87hyLk0PooiCvfVWXzAsI3LsY - 8Pd+Z4H/+zefx9HhMb7+6n186Lfv4/jsEmfn5wUhB8UAYHF+gTfLEf6VJ7ewt7ePra0t/3JP+xFFivMe - ETxVtshCeaQmAUfK67xu+1yjvKpymwoPPm2gNjKT5FoernufP7Eh2h28UR+Z7jPd7G5rrdNN3wUks3J9 - cR9pnWSpjnqxtJ3L8p/vDHYyCd9qZB8yG0cUH7VOaj4DIPTvBKc+5+E3r6VNA4Bryqq8trarYzLkTOmt - JcnpT6Ubj4LWFE4V89kcm5sbeM+T34D/8gffi+/c+CpuXd4rT+wNwHBVvrRTZIbT4wc4uprhf/j0GT72 - hRfwoU++gGceCA4PjwFI/WGPAXqlWD+9h+998xpet7+DnZ1y2m+9+VUfIB+ciVWw+Am3EdqOgtRNPOAh - Jsz0Vkn7+NUW24i8fDzpXFvOV5payXz4hxyNbsLOiDob0zXAaNG9yTIsa282cXIGsJSpKeBhASlAaBOx - 631SBysAoX7VIn6AOZ8lMXAwwdpDQVkW80/2m2XbxlNtaQbAFViLgPFgTAEEX/v11q+a/vjFyAY0rmlE - NwBYW1/D7du38cbXPY7vfWKO/+iDj2L34i5UByzmKF/hpYDMZnhweooXz+b4e19Yw68cbuPegwflF3sH - lF/1UcHl+QN8+yMXeN+bdrzwx1t+YXbiRh4P/Xiu0g+2I723Bs0jGAW+3jd2NxT6y3cnxxzx0DMGjrQP - AUA2j01k9WWQUWyi77UERzz29Na5u1HAKHfQ6MPZyDRvyyCrH/2nWxMkkWdYaOo5iyNP6KJU2JzlDVbU - pPl8eP+frgGwkXNRwh++sMIKLB8dp0GOFYbMTAdAKorAKtDl7rnMIHVb7vbtbXz/n3wamxtfxn/zz17C - 0XwPgwgwU8hQaJycnuF3725AF6c4PzvH2mxeAUIwXF3h9YsDfN9T29jb3cWdO2XPfzabpejvdmW4V4Et - 6tXXbHMm6cdavL5/c8X1lnuNzLVFhjQ26EO+PnKbER8JmipApzTaHA0Yr6+XitzLRpJE17aUfHZD5QS1 - xNcIRtsOEzxONw8TInHgyK5aoARobz+GKx9rVwUxF2yvFWAksvSHbdceBJoyrKgMTxgvN0EcdDBDsfWQ - 2kDV0Tz6FqOaz+dYX1/H7u4ufvADbwMA/NcfeQlHG/tYLBSzmjUIFC/fvYuZzLC+voahLpxnEAznh/i+ - t6/jLY/v1j3/8Zd8WOSI7U32PjuEUfr/+//Bj3QkDgT2RzotY1B4dd232VyXOiaj8LMBEUMAe67eaia+ - 6zRytriXN/IMLbjSn7b4Wi8O5iMtrddiq68eZHEq4ZoJQBoBrSrvXCrpJ81K8GM2EXStJ20i+naYVvmm - IaWIUmWo18K6Ce0SAZObiBBBO29Q1EkHwxwtK/diQZSygklm+ZkYPoUo9P5mwNm25Q8D0fHQwBdOO/qD - Wl87Lw2Atk4s5NdevvVWJqxNJkRK1X9zcxM7O3fwZz/wdvy1Dz6O9bMDqNRf7h0GLBRYm61hPptjuBqw - qPWCq4szfMv2Gb7zyTvY29vDdvOkH6D+pFhhiZzAMh4+AwEFJQ0usUdio1cNKD0rwEBiiOONzgFw2LV7 - k8qV0sd8IIsJ+NFiAm+OQu3DJxmMtN4qTsJ8y9eyFsEQIG46asWwK2k3voKsUmdNemnsy4NGGcPSZT5B - 6geklCgk3fB8uMf6lmGx2ZgIj6ydOQn2Gj7T3JicJEYDjf7xTXw49ltthNfo+qVd84UgGV/MbNI+Jc9V - 4xhttuXlNAsqNoLSRGnvZjgIiAp+9E++AwdnC/zdTx5isbGDYShou0A10JkFrAF7iwP8wDdt4ZH9XT/u - O2/W/u0hFA+rFA11WNSvDis/Fioi/hXhUt/7xBPvyqhfkVT4hBdpS5wbAxD6hAOJxYAKUNl4OD5WeraH - bdusFsnRJHns/yaXqaSES49Fajf0UxAiRBzVsSGcLYRzSBOJW4qeAbklln/LufpiVNLSRkto5H5gQDZx - Ury9dlvDstf4W/ilw061QOKnLAkUeR56zXVueKWg06MmjLyWc0DLAaDPloZu+aNxGAqmjGGOFhqgMnJ+ - EH2LDArM6u4AZAd/5bu/CS8ffxr/+++eYNi8DRkGzLivCobLY3z3EzO8+w27ftx3c2MD89kMrH53TI/a - khIVHQb8zv1zvKRzDFDMTk/w7i3gzq3NcoZgPsMM4msxCrI+6W3U7k13FICsuBon0MR1RgbTsRjLCFQ0 - g5yaU2en7cXaovZAaUUFuNGkR9Sc3GS3B6hqwZjrKVBNWdfUXron0tJmLXawymShfqpjDTcmSpwQDsQW - nVQlxzK1N2dlrHh0PDsl+0UkNxy5+d8u8WSXDBxCjMdi4OHa9Y8Dm0GGCH1um9Na5YWdW6cpo72bVIDT - MXxQEIQlPrPZHBsbG9jf2cF/+v3vwne/CcDlGXQ2L2k/StVfhwWeWD/B979jBzu7u37c137QU3mQOFoW - E12dbRgG/NbdU3xpMcehrOGeruHVzR187N4FXrl/hNPTEwyL8qWi6Yk4WucWd2LpbNKz25lz0lH+OIhF - e4/LokUIEsdpOcSHC19HgaJx3WLSmg6zw3CfKToRYcMUYnlZhZX2vmjF8MVl8mzCjtAqxicxe+GQonyM - ZzOjpCt6CKiyOOVbyS9gYNjMrYKWFdFPSC89uf1UIuivrW9sGURqvOEWTGpLjwJzsqStUMRwux/M6ZM/ - flEfcLBUsvxCbj6iqd05Ux/fHGI+n2Pz1iZet7+Lv/GvPY333DmHnp0B8zns57MWZ8f4vic38Q2P3PHj - vmtra5FDkQR2WIPdAwBUF/jcvTN8cVjHvUvBVw/O8PzhGQ7OFQdbj+BT985wfPwA5xfn1UFQl7Xq0QNq - D7qMdSdp9u3EYeVB6uSqgYeMonZ/1uCHl9rtSxIsrnUMUJo7fK2d9vmE5rqFE4ZXhf1seQoMxK/Xhjr8 - JMHY2P2cr70G+NTmpK1aFFXjTdIAvpvOTq/TAOe3KsXiasxusyhLlHanPG+zG6kUmoLxKjNjm9NPBeuH - a9ecA6CHRJyvPIplcHZHLAdtTSLxWpWUYg5ASujq2DA2q242m+PWrVt4+zc+hv/8B57G03fOoOengM4w - XJ7jrbdO8aeeKs6/vW0/6BmbefwYCkDpp4hHv6/dP8enz4D7l4K7JxeYA5jLDBdXVzhfKL5+coHj4yNc - nl9CF4sS5+nhIaFjcXEirK/piLlVX4gqr31+XaVXo2s1dKNlCo9sx+NKRgY6rCK+bLPMpDhN1KPj37aZ - pVNk0FocrTYhvpPAjMuYoKnT5Cdn9Hqq8pORmv4wHfdp3gWxpSlVDn0J4Hf0583NtspltR32B1NHRDii - 1SM7ioIVPGDLS+LJUVRijIds0zWAFmVqXkolwMoey2HrXy7sRdHPrajeqX4PAwcRBnyyPvShfzBiUbXs - AJyfn+NP755idjTHV473cHs4xbesvYJP/epX8JXPl7X/+voGesclHbVtAuv/7p9d4NePFzie3cK9B2dY - n1WXGRSz9TU8OLiLx07u4/L2bVwNVxigsG9G9vUyhzl3iKwzm1jzV39EGuNC4eQc56DsfbmGgArAlGOk - W62T1T7a7C+G0hEjAmBAtmcv1lUn890K1VgGugWQZggHokpvjsmbjZT+E889/Rj2Jjt1e4xIbMFBjShR - 6+FSnGtxdIR9j6Jvv1bZ498OY60yWReVfn5uwIakA/Vq3vdw7dpdAGOSf/GEQVY6fQ2RBICvhX2CxO80 - 5lk2b5RJ/MgP/5tGLMa1dFgVF1eXODk5wV8+PMLR0REuLi6wvr6OnZ1y6q887TfHrKaaSkrmaGZtWAz4 - +MtnOFi7jbuHp4AohmEGCDCfzXB5corZK8/hifkp1uY7sRtgqTUBfyEvPha5FaKirjVjMNnKDFcJXRlj - I6QdcCGnNd1EyKOROy7CkbkSc0cHgbkZdEMi20FlR41DAjvvFPZk97etLBXjFIMHEc8aTGZxEBgTijie - 9KXqoAEgnT1JelqCuE5Vye14nklWnxala0n6HBIi66BldCUacxEwHqXMh08BbvS7AJF8mhSh2GKwgfj8 - Pemxfa4Rndw5rktoKSLaGzZPH0ewvraOO9vbWJuX48NXV1elTrC5iY3NzTjyWxnwAhQoohkcDQM++fIJ - nscm7j24wNUwYH0+qw8glXMHpy+/gKcXh9jf28H2nW1sbmyWnQU7FCM1kvjhlra6AIRhsgFVALELfAin - g7xmzLwodIilqjzvk3d17lV0G0rdnvwRaTI7oO8bdr/3p63RjBpNxOt5r+Ga2RLPH0f/Kl96pj6NETAZ - YGGORE4ukWxoSyIJCDP2VLuseBV1nAQmQasP5Rn4nWsqTtuukDtSMgWrW/y+ZwBTSnUWiQkGgZqSmS4i - SDkNtQs91FbKIABSCsKQaPIhgvl8DVtb5azAMAy+T1/W/ZInyKJlg8iqwNfun+IzpzMcXSnOzi+wPi+7 - CzMB5jrD0b1X8MaTF/GGnQ3s7T2C7dt3sL6+BsjMi11t8BiLqL7P7oZih2poPztHtsZpjLIA6ZtlLApZ - hCVGWp7C1OqnDiyo/FQN+/51mqVREyZj/S2YioR+7P6ebMwdBRbfBnOHDUDoBxI/Y0hkleQznKLln8Sd - LWCTK9MIDI6xaNL2c9JfD+vYjkNHAfzx825GS+IIBvvodRG1067/PoD2YlU+H0pgpwXQnFrja5HSjaHW - w17WtKWBTZUzGRLgDm/bfL0Zi+jM6F2cbVDgwcUFPvHqJY5wC/dPTjGfl0ePAQDra7g6PsbW3efw1k1g - b/8R7OzewdbtLazN150Hd8bJ2ShMuOrS6TbAUkqOJFNb7KFw++PxEB4p6UZ39EBPwOGRp8PuRwKBG1lY - BbGgZSAlQdrUoBHMyI88sHgAtLlKy4+IlhbNW99KR36S3RLo1QEchztSGi57d9M3g1HtyEVwrvJT6atD - lwIp71L5Hl/UyGJOjH8lhh4eAa7ZBZi6QNtc0kyEAmqFD0GkbtIl5II4jnAvstO0pqonxtLPW4+yn2z4 - nH24i5CBDYsFPv7CA7yAW7h7fFp+OmwBLBbl5N9iscD5S8/h6dkJHtnbLceKb9/B2vo6MCPDkesWN5V3 - zxZifZsjcvDac/7kB9ZHTSfqkRgoEaS9M2eLHFHamCphWNekmA4RVSaR9sCLRCd2dBtTQmbrKEDeQqPs - zY9wAyQvc8LOT3qkOkLKEBINuuye6toCg6j/9BrUo0xv27e10TgS0/SlqqvwNaGP+LXpypzoIdoyABhT - EjTeGFtmdku7BcJbNlrBoqtkux/FGNgJ2NhHEDrBrf96j1tIRDQDFrtRFfjivRP87tkajk8ucHF5BYVg - 0PLbAYoZTl56AU/pIV6/u10eJ96+g83N9fLV5IwkTrjvLIHdkqSM02YRAXrRiPtzZIitLTJ6m51WN+0r - taioDo5MKrr3kEhd7uKsCOe2dXlvj7qZS95c9G1aOyviyJKsnnTJ9MzxczE2nbEwdQnT6AWqGEBJrxGU - Yl/eZlOqTrpumOxVaawAQi9Qerd0XjGDA80Hl1sept3458G5GRrnH8eIEGL7u77FautdoBHcLkWEiQgS - WUaAg43B5+q6lhVoqFa5lmww9ZUqcHB6ho++dInDqxmOjk8BLTsBi2GAyhwnR/exf/wCnrql2Nvfr78d - eAuzWT1YJJqQOfgYe57kF8hHILVGONJFRzrDYNcCp6KkjjCbTCkchlJHNSOy7Ep8a215ZlkzDMtGFbHf - z4UgjGcqhCq6st9VSFmPi2S7LFF7Yp0YcLBXcx1CSFXhTAG5obAOlxqBLXCgOalRkc9q1ctzJdCckRDG - dH1vl2wLnXn1v/VsR3+JeH17TQBg0YcPBwUowFNztzFfY3F0YoLZ2IX+oVpPBLpR+oP2br+/slrSUakK - qzMkABbDAh997hgvDBs4eHBSjxKXbxxSKb8aPHvlObxra8D+/iPY293F7dv2QBHNoc8WOXQyJk2sOdBV - g3WjVqW/LVI2pATw72Vwux/F90k1WaYV7skMqovQty0Kr9XztTq91muqQae1d5dRUbO1KkM1GpEIME7X - WO8gUnJk5lFMRo36j/PNiw3+p6ssEpd2ETT8AXR7wtee3tqrAl9K+FkJscxEffvVax3VZvweUunDtBsA - QFZIESwmhotM9hVfjlWpuAFkxYY1W7BQjzakiAqpo8mdFDTcINahNJJNpJZ1/e+8fIxPH89x9OAc52cX - UKA8YqylAHj26ot4ev0Er6upv58qlFDdSOkmA6O7y6UEDK3r0dZqoyPraIeVTAbY4aOWkVZhEYhJG3ZK - sGzfWvQu3/TEGVMTpjRzxqfwbM8+z5lFqCY1JgexyG+97GvOw5OEaE3EV1NvVYVaLcIKswmBhP4l2YAE - 3DG8wUh9XSNR1FeqLlO2y38aVLBh1JYO6sunMqcSQIA8tbxb8Xtt1wJAkyQlO4p1m6ZPotgSQvcxu/6t - PhGHHOy2OMaajuwskXtUWFIDKlNo6Teo4uDsAr/04iWOdIajszMoBMNCsVgoIHM8OLiLN13ew1u217G/ - /wju7O7g1q1NSHV+c7quOSrx6xlLMZh2K8jsnMuHWcSx1pWNg/VrB1MaY8PoLdGsJwZtiWUOGIw0VXOP - TEHL99Zp7puwkdWjgG3BqfeXuorJDugZ54gKky9O6b+JKKZP8YyGTmY3zrmEpoGKLWvdHkHALpGhTK3/ - gZwQpsBq/lN3kay4Xm/i/zGhZfq9aZsEAN87Z9oahhBzL3Eqj6Avr7g18Ui6pfHqYQ+xPfJaADKxE3J3 - k72AIactHvW5fgCU6v4vfPUIz1+t497BcfmOwQG4UkBnM5ydnmD7/ot49zaw98h+eaDo1hZms3n8FBnL - M1Zg+RM+RhqxeobnvEFn0srrpFulvKZgo6AvTKeFE3VFmQOmyxUoXd/xcZaX0k6Kyw2IWRbYEaWKHlug - cABJA2Z7x/ggs/VlDoUKwNGlYIiQXQDdmWvGFhLUCps5dRmD4zi7KO8ij1La2uxkWC6KHSXWKDhOUH+t - 7ZoMgJDIhlczYGZDvasruM2DqBXBm8MqHFE8LaIJ90JhYwDBmd/rhauaqvmmTGVqMSzw2y8d4TeOBEcn - 57i4uqop/4BhABZXAxavvIA/dvscj+/tYG93F9u3t7G+vo75fA77kY/WMfr6g2f9kUkGuI70pF2zrAZs - B34kDN+WOB6VYp5CJeTobMPmOKPIFGrvNXvIyYHcbUR8LtkuRtQlXvC8jVJA3l1h3hIzIa+zbFgvUTgT - tOG/8XT7hOtXhOK2zLLtyrLUocyJ9ZZo0Cuvh9Qllkpkpghf8OuIbMLGUb86MTkP2ZZ/JRhoAuo60X9R - Bnl7pgakolKeSGoJlZXXT8XBRdqKc6NIzoQTnxT97UJOG7wGoVAcnFzgw8+c4fBKcHR0AqhgocACAGYz - nB7cwzvmR3jz3hb29/dx584ONm9tYjar3izhVErDtKzxe/7VHy5IUVowkqeVMX7iOiJnPx40O/kcUeqc - lWSIDqsI8zclRaIKC4gptrlQfQP1JKxZ21pGk1sAVDOd6fNwSkSmZ0GDDZNYitkbazpd8W3eyDBaDtI8 - tq/5nnTWuPAWD0o1J0Oti7+UsXp6fDxku9kXgohNQqR1Wpk3p0p8X8NJIWlGrBSh2AsmTiH2LljFutzY - 8CCwHW5BSf1/9ssHePZiHQcHx2W7b1F+O2DQGc4fPMD++Sv45l3B3u4e7uzuYOv2rfLjo/ZE4ISnt8Hc - MxixyJEDXNoCbGimqG7TW5dExXEFZDGj1iWrAQ3+HQVKycA1lPKxU7u3xiMKBH1nDSbEMz6KqnZpNLom - n8mkOLPjWG831LkXIJ2e64yTxrM4qyG12XkAVURz9++RzkxvcJphjwQ1nk3RMwtU3zE6yzx8nMvcrE3X - AMR1mP3MlOKQIw4QAPM4xtjAVsoeKJ1Mp/0SM51roBskfClHmGqkNQQOqvjsi0f4+CvA0ekZLi8vAUj9 - rj/F4mqBq4OX8Me2r/DY7m59knALG+sbSNXddCKucTWNS75UNkNv952n99hCLoCc3uiX0KA1n499gS6J - +KxOlS+LjL6MdT+mVxzLHJbEpNvU199tEAgnGOc3vvvfSfUD6KYanbPX0Llll1ZNj/g94UhU3/L/rNJv - bkmOH2WQoBc6ydurlqPxT8z5QSfj0QKEBQvngoAr/f39aUt/GUh88VqnnMOEoFa0SetuYQAadXJ0jn52 - r2UYZogRmaLp+DUZrVI2AphSEdcUeHB+iZ/64hGOrmY4Oj6BquBKFcNCoZjh9P49PL3+AG/d3cTe/i5u - 37mNzY0N0Iq2kixj8VU3eok+XCsx+bU6SQ5pISmbvklEaAlfJ6tDA6aMgs0wFfURIJ5lYk75Leuei7Kd - 0KxjmWIuRylQfFgOa4Ar95rGGEvHLsc5gJmqgRVDziTeekFWfW1vWYo7pgB8uLkX8TnYSXuNQdYCKQFN - ZFV5muVmErymtvxpQEN1V2atA7hiyPGNuRF/RbhYy5iuYx3s3zXg81mdptL/3zpfBvKwTVXx+csdfOmx - d+P49LgU/FCr6GvlwM8jl3fxrY+tYXdvFzs7u9jauo21+Vrsiaewxpt2BXAMyO0ACx9Fs6/TcjqOduGk - pQ5i18TVa7pPz+KnNXTHKMjBfH/Z5kfMNQD7JttOYC593ACJTcAN14YfPwCVg0XQE/gPwcIidJWv8sxy - muwjkPFlqWazc4yscVvgBbUpGe1G31kRc+AAb/6GX8aGXlN6wYczU2mb6l2FXs3o6qSzaUzldwn6C5N9 - hpa0JQAQ6YlUQzBjduUmf+8NrkFH6J0KJQpFaOEU10eJ9sM//EOZKoFmFPhanqyP4vmDU3z8n7+Mk3Pg - 5OIMG2tzXOkCM5kXIgcv432PLvC6vT3s1y8RKev+WRPZI7IkSW3uOJNhcOSI5++z9vxrpRP7RtgMpPZu - 6bU6d/AOF7I8X2ge+9/EawIbolW5PHGpjsGBgdxjmblGlmcPQQXKuUoC9SqthqJEl7AvWxIhJUoZYHts - WQSGDyoEAkkdIABO+s+EhQWg+bdA4jr0LuK7Vvn7BBrQ77EfI6RXN23X7AL0BoGjpI56cC+aIkqZQwEc - jMSPe9YbWv8YNVt6+PFOKwRRxDJfGRYD/tFnX8ULF+s4PH4AHWa4GoDFAhhUcH58hG/aPMU7H9usp/3u - YHOj/CxZPJMASitJxAaw4ifTLIpoNViCtN48uehFjhZ0+Iz4cqAPnUtVoq+x6y6OVv15Ma5hIvYZlJZS - KMDNmZuAoiV8r7oVS50vcig7yGTzRqqxeRspJ8lYgUnD+f3Up1rZd3lEjB1TklHgGZx/ka0hIM9Dly/m - r/Qt8muMh2pHXkTjU7UNgDogLB2l0JZpbpa1a78U1LesfJuiMj6y5TESMqu23+k1BT8mbPTUHWyMOEY6 - F5/aiGHOZwZX7EzxG8/ex6+8NODowQkuL6/KWf8rxaAzXF1eYufkZXzg8Rn29uxBny3M60+HhQ40KdkC - gLpKokhoe/1tPWRZK06lUdeUNjq3+h1Hf+7hW6wicXCnHhxyLBmhbMRzjq7t79X5rz1R4ORj1kkuBDgq - 5c2l9lsB23Nh651bewawAC2BPGqW2hRELdMYt8qNAbtfM1r8zgqbhv43cbMocnvmJXQSUYyyxPxUZM/4 - Mp5jjj4Kn6HGD2/elgBAGIKlnvbUl1TGfWnQ5TCjqtT7k0/4+o/ubHzGvvjzanGFq6sFhsUVdLD1XdWo - IbYbfSjk+OwSP/m5AxxeACfHJwBmZctvUR76uTq8iw88OuANe9vY29nB7a3bWFtfq3MknkvGmYcsndjZ - iFYPdh9AkZhlpzcOphI2prFWjJym9FcnQuQ052BleKvc571y9/tucBE3PN72StlbOlObgaTlzSY1InNU - C6zAqRo0exlEdlDKpbzwmwazRJDQufncNcVOTZt9Gqt/++LNKM1IX2/Kf4ROOioBXMhQ7MIc387+Z1Dt - I6pxSXluAsOHa0trALbF5CtTte0jqiCPeGw9uFzLa1KrJJsiIj32NEgVV4sBv/SFV/Dhw9fhq7/0NXzg - Gzbw/id3sbmxjvX1jfIln7MAEVsvWTQdhgE/94VX8ZsHgsPj40L7asBshvL9fsfHeNfaIb718W3s7e9j - +86O/25gAvsGiDmKpg4W4PgkmMSLZN5CL3wdbHQkxoE5ytKZgimhMvFJBQAAIABJREFUkJHIiJZFkR5N - n7aqV2HOq+Mkn8r0synGnAolRKV+LJ5ZZBkzU+EHpqcoICopmOpnmFJXOA2xZ9G4zlv6PkugPa3dvGkZ - DTyxAJK+rq2CQbIRC66NDqcLjHTWwm9QdCLxjdrSnwePmlNMsrqhdQxrxGik+mTX7hQj4avkqoqXDk/x - P/3q8/gnzwKLzSfxuS8P+MdfeYD3feZV/IVvewTv/IZ93NraxHy+jtl8liKJ/aDn1w9O8JOff4AH5wPO - Ly7KD4OoAphDF1dYu/d1fMe7b2Nvbxe7Ozu4fftW/G6gGEKPJ8N/l810IzbpwgfqihYUsK8L7xql6cV0 - wrPPKh5ZYtMYaMyY04dG10MZIqbnbK3LIPOEGIthLUfrkZlW5yRw5B5LRAsbofW4g6ZGQbj2HRWCaawk - Lc+VBDdpaZNRfLKNg0JsZ0YHI2svtDunPcxObPoIFZy5OPyQ7fofBzW0GiF9f9On2K/6WWchdLKpT3bN - k1VfDMOA/+LDX8HHX57h8MEJDo6OsLY2w/bWFh5cbONzv3wPf+HpI/zr73kDbm/dxsb6OubztaLy6miL - YcCP/9bLeO50hsPjo/Iz4YuhAMRMgZP7eMvpM3jL49+O3b093L69jfX/t70vjbUtO876ap/xTufcdrc7 - 7aHbcU/xgCOHpBXHGRywY6KEwZksiJGIhAQRMiBQEOJnhACJ4QdgfvAjEJAgsS0iEBBZiaIkgEmc2fGg - eIjjdrvtdr/u9+6783DOLn6sVdPaa59zn2nb3Z2zWv3uOfvsXatWraqvatWqvfdI3hrM1Ym3ANYUXxNp - YriFZifxcVeHgtPPWqv6QnqCet5SUQpb1vNkyaDWEOeKS2F75AnKKmDm+xaGSCXguZJMdo3HUHegmduo - UV0FtshDt1nztelsUtrqARmoQ63nMdOWtTmgob7PcMoIYzzTQ1cnQt1/MFbdIWE3HypWUiDjvrkWEflj - Ov++OuHO2moAEA1ln8N2qO/mLAxW9s2zAnkQSOMzmLaxWQ9t2+JXPnUTh+0I55eXGDYDEAMnZ2c4OzvD - 2d4M//rDV7hx9Dm865tfgb29XYzGhMEgpTSYGb/zxAF+4fELHJ1eYblYggYDLFpgOGzAZ6d4tDnEK3GQ - H++1g+l0goG8XdSmK4gj3gBVaVrcJDIzHyukVP/EVt1RNWKwLjWrCiFXmVMJClB1IK6v7u8SickwSBUL - kGQVO6XriWacaxXIl6Aj7Fx4QFRm6mNUOt4K1VtbgtqPq6xJqNlPjHossvDJPtXhVS5ZeTL9jpGG8/bC - NUV+4fuuzY9gG8PuHdCJN9Dp1csVrRcA2PFmypkY7DgRG4Mx4U7SR0ZBhGOexLqxHtq2xX3jc9x49gI0 - 3ULLLRoGCOm93we3D3G5vY3/9GkCt0/gRx97BfZ29zCdTEEN4fj8Ej/7kZs4WjQ4PT/HID/aG0MCFkts - nx/gLQ8N8fTRGLNZ3vMfjcyAHZCHiciz+p5/+bPmeUXB5RRGjNYDEVOLSBTuePCpJQf1S/3pMJ5Q4W11 - K/krCK3gxeGFURHcF1mKcbjvdZJ9Lk+OrfrcQ3TNELgm/tWX4Mff/cMei8zhIe9Fie2EXAd0ItLPoiwF - YFVURZaeIlsBRxPqnUPAyoeCit3qgFY1UTSW7SvbSiKwrafzuQAiTQcQRISfeOtDeO3uBfjsBMypjr9t - WzADTdPg9PQUhxctfuYzDd7/W0/i6PgIF5cXWCwW+MDHb+C3brQ4PDrGktPjvZYtwC1wdXobb3rJAt9w - 7y62trbzK8MnaODkzeGPHVwhX4YzPB1ISaTPyJUCYic9nn9F/1G+6Qe/MqlTKo3I81KeU2/eEHyBqB4v - jX8ttRoQ9YFnZSw94OjJM2D3QTgbFJ4VpFZwKcbKsm3r2ZBx6xK4dNMrJOHO4zy5YlGJ7yIqgm733hEK - XKsOIOJT7TwBNVNgKrQhCDnMEfkvANLbf9/00D34h9//ML79ngssTw/By4RI8qguGiQQuHXZ4qc/scTP - f+SLODo+wpPPHuJnP3aA4/MrnF9cJOVvGS2A5cUl7qdjfNf9U8zzfv9kMklJRFoFcTYuTYKSM7ZCD1UU - K73bOsPqn0dfuOZWVmrwKnYPRiv7qFhHZ2DX1CtV+gw8zkEpz3LuGp/SBaIaSPZcSRXyXibCq/whc6A6 - f0BcuvQ1SvqeksCydMi1L4AWFiVHKLaxHgaVfMfzy3dhMkcZz2UEIN6criFsK5dJBuJfbqD3kDnJR5pd - ITRNg8lkjNc9cC/+8V94Hb5r/DimV7fSHXst0C6SVydqcHZ8gqNFg5/62AU+9Kmn8N7ffQpPnDQ4PDwG - QOmaZQteMEZnt/DW+we4Z76HvdkMk8lEXxrqXxzaHbHLgEjxSnFeilywZl5Lg/Ke11+8RjlEUSUooQKQ - gBheV8GIixP6eKwd72ku2tA6KIlwyRnWWmAq+1r3vdtq8YLy6NigioxCTNZHxPVjnt8q92QutGhKqgJJ - +jahrOkCvmyYc1iiN+o5IPgybgXoBwArJO2hyoUYSJgRJciYx9kdKTDUp88/r58IGA2G2NnZxsvuvRtv - e+UAf+db78Ls8iaYWywHSI/wYoCaBidnZ/jS+QD//tNjfPBwF7dOTrBcLsEtsFwyWiZcXZzgm/Yv8caX - 7WF/fx87u7v5nYEIPAXTY4ts5LZSOdd7N7jvvROq1Csu6NpRQZec353zdrVaGVT9i77WRSM+Lu1SlFNq - RoWabLjvy1qEuObvBjrcM2T5/dpY5Pq1+bbQnlyyz4ycokzIZ7x6eiYTnm4Nu61deXye8EFy3h22FbsA - fau1zLRsPbB5fB/aJM8krskNV1Ex0g6v7mZCMxhgSISt7R1sb+/gHd/2CCbjz+Kff/AGjgZztERAw6A2 - Cf/07ByfvDUGL89wcX6BYTPIAEFoFwvcuzzA279+G/P5HnZ3d/Pz/Rrrl72whSmRsVdIxt/8239R5cAB - Bbry6uRm2AM6W6i+KtPMDHm8VcdmRDly+OmG4jh25/qP/pie5OIQyjNZ26t2Sqfn6z/pB6/k/ltnAJmY - FAyFOobsTPwNXwFtakhETjRO4BRO4YJHIVkZb2mnQlLmTn52grMlj/TjzKmYxI50GVo7khxn7MDH5Yor - UTDXbqsrAVceT3/JbUN4OYlgdUMoK6qxWHoe6giamgZDEEajEeazGd7x2KsBAP/0f9/A0Xgfy2V6aWdK - VjJu3LyJhhqMRkO0OZxoQGgvDvG2B4e4/54Z9uf72NnO5b5F2M+Ae9G9AF3p3Qz01PuyQF5lAnTj2YBT - ienWj7tLrqZ7sk0F8pRi9Vs+YHdLONWuGb+wwKJgIv98rdDtM34yVZTzQilBpcCjS0ndZqhPsEhR0MXx - s+7+isy+OBq1G3dFKp5xvJH9MYN0k+FlZ2qBUDkonp7iNdD6guBXVpuq0i9QB764yNfoyLTdeQiw5tVg - xWBKtBLt0oRH994AvUNs3YiBEPYAUuFFaJoG48kEe7t7+IHHHsS733QPRucHYEqv627bFksGhs0Qg2aA - dtFimfMFi8tzvGH7HN/5wC7m8xl2drYxnkjBTw8rygY7ZLWdDJDdIBQUUpHaTbZfE9rQVDnJexyvIZ2P - RsduJGMti1WXbEXrNSKQinfhQY6YIdj+d20ZIb9piSsj3yFInjrk1e1igP3Tbzome9zCnyxCzTc4Wbk8 - k5FhJ6A8Wp1PiygMMQVSjUS3UKqQXQgQyCIAN8G2BWi8+J2+sF3eEUe3wC5rn8mEBYRFvmkeuDZha9qK - JwL5uz30oKqLMWcRgBbKdEZ3HWRiaEiWtUbDJqTE4HQywe7uLt71bQ/ir/7JfTTnR2AQ2pbALedn+6WM - f8tAixa7iwP8uYe3cNd8htneDNOtLQyHIxA1Ze9hgjSnoXFeUmip6ZZJCKDo8csRjdVkfvZlyxTxQi6P - eFDMyVZiK9gB4Eug+6+OPKjJ5jWqmEQSuy9MskYA5HkCdsBkYoZb6bjDkdHXpVZpXHqjS1fzSsZkXApC - CmK5FkXlSpFOj0WG/tj0U6ILwRpWEu7ePMn8KxZQINzrrDteH3luGFIdJiKXG5dEAPTcRgCr6xE1Oabe - xpQ56KC3rA49O1E9rQgUAiqG+NQMMJlMsLu3hx9/y8P4wUenwOUpWkrZfs41CC0zuAXa82P8qZcTvuFl - e5jPZ9je2cZ4lJ/uW+PJobkiNsuEt7haXOHq4hKXF5e4WlyluoSWq8rj5ZXomVIIyvn1Yx92q/KoXLwi - uTlZUeVD7i+LMvmch8QAna0D/9cTtFBXwUANFdCXn8D4DSLSH1l7kO1m3U3Kk2DsWS2KYzmyxfY3lD9L - ZOOAVwlEKw30JebiDP563wHM+woQhxd15utj9UyPObnvDPWlqiPVi8Qfwf662+m6glnR+nMA4Z3SNjXR - y7tQODPsEa+e+JFmKCxJHsEAUdT0NfhONIMG4/EE89kMf+/tj+LG8Ufxy0+dg0dTLJdL0AAgbkC8xP2j - U3zvw3PM91LibzqZarlwb1SS9dmSROkegj84vMAzGGAJoDk9xWunwO50gvF4hAEGIZ/A4iYEPbKBqvFJ - RzJW5YcDIxqeapIPmnQM2YDs6ep5ROetnew5r1/VyfqEk5N/X5OQVOeZdEiIa2zjwnWfjpE9CUcSyZZc - 83TF31Vo+TFmlmQu1Gvm3ztLOMmZFARbiH6zji/NBmVPry7fJT4V8SAPW7kTU9QghOozxm7Gbbh2k1nC - pzszfmDNQ0Gt884hrU6yzL9MmEUE/tpOK2bTtrMiFPs9Thn8YNBgMpngpXfN8Q/e/ghev3sBPj8HBoMc - 6hGW58f4ngfGeOn+LvbmM2xtb2E4HLp3+lUgWDpSTU75hY8enOOz7RCHNMIBD3FzOsOHDq7w7O1DnJ2d - pS1Ht47XqNgZsK3XYGFeUBIOf2qiSiDgFE1kzpKEqgma3PozGYTf35F51PCZqSqZsDL1e6BkX8Ub2Qqh - rCLp5pAkS5/Yc9ovS50+oQQyLiGbe5FoSffoc35BcgykfatkncTKT35BFDli5wh1dFJeyCjGX+O9+8mA - jwO2mDtkqHAkEmHvLK/f+gEgzJVCtnXuOBOR2CuZuFBuI6qfSLqI4ZNVNaV++6aemgbT6RQPvSJVDD66 - ew6+OAO4QXt1gVdPT/EdX7+Lvd0Ztrd2MB6N0QwacK+YbCzyKKh22eKTt8/wRzzCrSvC4wfn+OLhOQ4u - GAfbd+HDty9wcnKCy8tLSPmzLy0NlXiScBOr65srsg9BlhmY0vVWdmVi65OUZcItX+PWjiprVsZLUgLv - 5ZFsYhaSeiXMgMMFpUBFrpOxZX2IIGHH+grdDHCdIwke0UUE6EYnkdMS6NwhzlQkTAmTDAN5dYR6yTWa - iyDlf9kNYYmqvEJZlW6SYRzFddua24EhTiMZjhil9/Juj5V1tIasLhjQ6c1mnw3Nm15EzTTp6dt73/df - uqxx8tAXFxf4vtkZmqMBPns8x3Z7hjcMn8Hv/9bjeHw+w87Ojlb8rWtS1NG2LZ44usDHzhucEOH22SVG - DYGoweVigWXT4AunlzgaXGA6naY3BjdDp75hFFAF97oTxdzxllZFyQU960KUkUtiQjGvxzWRpPRMQaW6 - UXM4NYZ0eliTa+ITU8h+3TVoPovdXjbZ0lGXD24touvbKmlZQqpW2Wm6fWpFZjYXTojB6J2cg744YKMs - M6fYSf/1R5WF2UVFDGQiJj3GOh/pB4ZFRmJvpjx6q/mX4f2BVQDgS5pgQRC5bzpPGkIaINQA1Wiw7T9n - JfcPzJDbJWWi3vnOH+ryl5lpmbG4usTJ6Rl+7PgIR4dHuMwP/5jP5+mlnts7oeovghI7tpOgWzBun1/h - 944ZJ4MJbp2cYyRvBWoZzWiIk4ObuPv0Nq6mW5YMdBJiJ5dQyOHGqWyUuiYEyOTNcohJaZdWob5StuRk - iaZ8xMIlq0sv0MjNu/IqEVuedH2sNSEopL88HhIEUYVSM6TMDAXBWGWFnNXn3zq7EjAwKxnpUikZt/V+ - ShySet9gk36uIXWv3ZyC2EgHBApw5RwJ+R2a9Bupnfhli8Vf6WKNxO6wrX0giPc83oB1EJKUYglRKsrk - mmz3aN2JDIYcCBiE25cSVDJbDYDRcIzdbcJoMMT21jYWiwWanCeYjifR+OV6r9kUp3K5bPEbz17gYLSN - m4dnSLmABiBg0DS4Oj0DPfMFvILOMBzuuYpCUt6s+INV6QkcHEwYZmCPtbBDdiBF/tGPufEoGSvMMbxz - UULZf2WuJEEmctHtJhkiA/oI8/Sl41dLIwsBhR9PZsLGKSMrIcS8bVwYZzDygxKDcZGRgokn20UpkVai - Rs7oAejSSYpvTFqwJZntDijL1eysgam5f8+Wzbc6CQgQS85D+uOesaxv6x8I0vEoCJ15JerDaPX6Dt04 - /xIKKTwIlCPyhL2OZHqD4RBbeZuwbZdA02DYNKCmQdNEBE4GRkrKMBxo2yV+75lTfJEmuHVyiUXbYjRo - 8h2IqfDo7MZTeGR5iPn+LnZ2djAej0ED14lpczZ6AwFwT4aYoYUc3jDIRVSaG+nF2Kw24qXdcVEem4kV - +ZXogoIXMpJ5BnW3A3WmZF7lGpE7q0bkxG3p53v8vYtMtEtdSjpj8gEBJSPsPGO/YpOmWyJkCj/lQavz - 08hX5C46zSXhykA6BRP+V7KlUEnX1YCwAPKqUvIVbRUAuD0hqCTLzKmsa1ftQKQ5oUDO/0o+1FLZ9hGU - xIdfhhAaEHgIDDAA8wgSUjK6vMXljBsJA58/OsfHzxscLRjnF5cY5YeJNAQMuMHRrWdw3+mXcN/uGPv7 - 85xfGKUHlGa+zDN7lDTlriehLDrKRXTqdZXiChkH5045iHWpeXvk1UrzqvPkooakiBbpiH8wZe0IO8gi - PCRTk46WzDJZ1YbrUF+HxpBtPXVS+WehqfmP3iGbnDzPsrxNnyN4WBTs9Kyo8+hHGCccdp999pXN/NzE - 5mUgm7MQnQlEr99W7gJY4sTIS6grIdGqXlVgedySe4qTweoBJMO9Wjcp/4fs7cj1I5PEDsBLzgpFENtq - GccXl/iNmwsct0PcPj0HgHw7MaOlAS6OjzG9+QU8OG4xn88xm82xtbWVlxikihgqmiEqWzM5M2wSF22B - gnkZZbmylej60H9llyAnADVRKF7FHCQ0yOUuKBggsyq4KKDyDZeddvrNhQwSL6RjdBty+bI47zJeL6aq - UWUXmOqGBATy2cJmiIa6rdwXkr5NHb0lsjoLVrlZ4GEplh6vDycYhyih8JYzz66MXOWky2RyQCe7MXdk - +wDWvh48o7PMjQKvQ2IXinSG2wnHONOQkFBGEBE4TD5M0KVMQ5Qm6OscRLrYoxC0HwF3WastucWHvnSK - pzDFzeOz9O7AZXqdOAAsl0ucP/0FPEKnmM9mmM/m2NrexkheIOIUIYXqooVUYx3eWiyqYthixHatqbjK - ZFbQk24pxzQsa/Q8QTJlgJtP4dOBgVLM0KUi7M51dBAGrmUZWVJeAYx8qiClzhfF+jPHmzWDOlF++4VM - DyB8klplHwiUEZavOfGFPqq/PkJQnfXzWWmV5WG8nyEbPGcwCOfDwFaZNmen/64Kw3vamleDUShXJQfr - CXg9oz1EtMjD7VyrtzGhSdLLK5MlcNgpgQw4G4uERMjAIsUTKPTGT07+Rxxuyy0+fesMn7oY4fj0EpdX - CzAoPYaMGYwGp08/hVfzbXzdbBv7+/vY3U2vDyPZHcjKr+C12uXEc3JWXZBdTC9sQ1tsWaWXtlQ5e3rO - Ok9Kk8Q9+UKfGjnufrbkYx6dMbS65TEltlyC11yz64dDZLiaOuv5CgdOnNEY1uin50P5hvot1VC243KO - 6ZJCTn8fEoUQW81IsnZIcZZERrbf7+RNxgK5L66m7Doz0mmrIwBb3IjuGFvCu5zqr8sncIHP6Te2b+QY - 78SMNjhf6eX7sD5tUeCpdCkWGM0At8Dtsyv82tMLHC4aHB2fAZzeJ7hsWzANcHp0G/Ojp/CqKTCbzTCb - zTDdmqIZDJJx6XrNetZohMsAE2oYYggKWGxbTk7P3KeO61VBJCCkbOwxP6KKnCMlI1P3tmJAIYIz7SsZ - QF/oqXnsHPXp9cKMu8zBXkm9+0UNIkGA5BMIFfA3l1nhz43Lj92fTVH3TF9znyQjXd80ciYJ52H2IF6f - KBi16WrRhwk2jucO22oA4KxALvusjFHX2AJzglWqRDa49DNpJBDXWRUe7HTILJGsKV1ySX72lFSIXlBk - fxfc4oNfPMKXeIyDk1Mskbz+khlM6bXhzTNP4jXTBebzOeb7+/mOwmEo79X9ftedR+7YKHrRTETkSWQ1 - EjqgEiB1Pmy04lfkuECiATcV+YlCe1SEthAJBT+QOYuwVGyxwA6xATVJFOC9NReX9agwGXvmPkR2bJIT - xyj61I8i2RRZ0VeCWYqCcPjH6gSdCwvr9PUty1Sh0Y7FcXYTmYEzGboWHK3Ocaxqa3IAycD8PqZfH63r - VX2yejg2W/SIpgSLFgwohsXyu27DmCV2KYVKN85JMkK7XOIPbpzgYydDHJ1c4OL8EgykZwxwSgCeP/Ml - PDI8xT2zXcxnc+xsb2M8tqy/grg5psh+yUynQEXWxJYOMySI8itFUzbK20PJOZXbUUWVnKeSFVv6k0QW - s+1Gx45YB9qnArK8DYYtEZHYq9ZH1LxzBBUJXgzhs8WWUREB9X33OGSl5VjTNyfrVlTWYG+jigARkq7d - cr+S7WFZsoGgCU1QKDxyDOu8pOE7QLlOCFJpa5OAilqmK0Wr96wT6P6ksdsOtKW4HKK7rgUoskZL9JSp - syqCOseOtSF4JxIhE8Bti9vnl/jVpy9xzA2Ozs8zKKSsP2iAk4ObePniJl61O8L+/j72ZnuYTKcYNE1H - DnJHpIzRSzCOv/xFylhN2qZjnveiP7VSkbVtMRJZBaApebEHnqmaaM0YbT9d9s4rit4n6o7tZUBR47Uw - SUrKxeNFzhwhFwHJUQZsL1wcgfK1wiid/NPYKfBtyzAxS9KJSXPDNWJ1WQQp5L8KgpKXcVGUDIFth8Su - LSMNp2PU7e+6bfVjwQl5b9PwmDrGWhq6w26WAhQX8vqEHVz4Vk6ahMGuOz/xUnQRpqDuFo1dsgloly1+ - +XPHeGoxxq2D4/SQ0RZYMMBNg/OzU+zcfgqv22bM5jN7bfigQXpBiVv7eyWCC8hKpebwq2M5G4bsZ3NX - tbj4mz6LZZHSsecCOldXA0ZADVPmIPbBsNu8IVO3ssVdH4sdAqj587WfOm32nGkxmgyJdPz5F3Uo13GG - sttQek+v6UI1XxAMUaOQnmYJfue5wWYH+U8d+ARonCLkyMCMwtmMp3mHQLD6seDZYrgQUMVfO0Y935lh - tqHZ1RFSqhyIe1L6Umghnk22jeo0RP5lOLnkFh95+gQfPm5wdHqBy8Uih/wt2hZYLlosn3kKb9i6xN3z - PezP9rG1lbb8Bs0AtpAmhIKlfLiz86hDEujTndsEiDnK8XdF1rZVAzAQ6Ukp+ZUVh6M+1LBVSShPRktx - jMmJP/1ebpfVyRofyibgdmf8Rid6gUXW46Zr7LywGx8EXNyNP5GVkjJMC1mPIIMMuesiOBSoLMuEavNu - 0E6ySsESbCkCAZHOp9pT3imyJLq7YA0YrWr9EUAjhtslrMPrujL4MlJ25yqiOYTwv8P96glbyMVqzDbN - 7HopWMkGZaXbdt3B6RV+6clzHC4IR0enABOWDCwBoGlwdnALDw0Ocf98mrb89nYxnY7TcwQZaX3G0ZOX - 2lDqhvlCASzzDPowjHxADLAfZJ0vYgIrSPvj7pK+cCL/aDFZlrHiAeWpEsmtHqMphZVaRycl8OIOVvXW - kqAcD2u/nMcONsOC070wzg550r8CNH5HGzBHG8AkKH2JtL5PW0Y5kUDnPoT/BMmzUQYHyRDI/Gj2hq2T - 0ql9uW3NNiCis0YxXGfEuiuQz9cEhZvzgF0F05zPNZ8GJ4Ai7khWYxdW2JZz1NCysiyXLX7pjw7w+csR - Dg6O03bfMr08pOUGFycn2D+/gdfukW75bU2nGA5HxhcYYS1YWSNz+YEBefdBlKTb8tOiKgcIJRHfh+yz - J+IOH9wNLRUZ+XCcs2z8VpolJEvh1jUt6HdGD7nrUN4v5+9v8MPvJq/cqNn+soJ4Bhjl0dkzuG+14xrl - 8efknlg6GRSKrrIqtPx1gvORgWe4wDcXQNnl5P7nBL3yuTA3A4OO3vS1O0ODtduADoiq5NUsndLp2l7D - P8A/pqm25ad9+GQPI9LMa1IpLAG6CmSKbYU1TOblPnHjCB96lnB0do6rqysAhGXbppLfxRKLW0/jDTtX - eMlsD/P5HFvTLQxH4wQmuuVkdQel0+nyYkoaXozCUT4qGZWBpyPmSKowYvpeudSjRP/QlbUoGts8CV8C - 0l75a44ucud+dtGDGGQqRCx2JZxxVzjUf0Uv7FYLgjkIb5yBbOQwg4dijybhZNC2gChxygzAS8fx7/vt - AHfBFSMviWQJmMcpeRuCJUwzmEZahGsg3B219YVAwn5tUarIbKhKGVnteW9xZVZd22oncn5YJQdPkCbI - BFMWIipg+K3LbFgn55f4n58+wtGiwdHxKZgJC2a0SwajwdntW3h0dIJXz6eYz9ONPuPJGE2TOpJ9YJdy - q0ySE18xQM4gRmFAgN1EEpOJ/lq/fy/7yFJIQmxrxt5HQ5dRAGSvmSwH4ZE+a3kZykd6OiF6TLY0QWxL - L7+pvcqBWRgReVC5ZAAsaz8ciNVoxuUEQ319HoNWtfqmcqTAd+mhYWfZpwziCp9MxdhJHZ1uAYbxwzlU - N7Bc0r0uBriTtuZ2YM1JduffHJCOTSr2auFjqB+oaVOoosnrnmwY73//z93puLpDYcanrvbwmbtfh+Oz - 45TwE083TAU/d13exDfe12BvNsNervazfmUxAAAgAElEQVQbDgdIrxfJisNRjVQxOI7K4ZlFMs5hyQsl - KHtaHy2UhGQ9SdZr0SlnnfLqWaiq0xrZ9mMl4bb75LKsjH13ZSZOskFS0Sd5eZACXnXq/SE3RtktEo+p - CTon09DnCsdoc+WWltkuRcf9ll+SC+tSzKtzWWJAnY58th66HJPIjvUqUoA0sJC6AFjRlMGDFletGOod - t7UPBDFQikKWp5dImCdVeWRTGIQVhNnpgywkTTWt2WhMAd/5Iz8IKfopjQ3CniKkKQ84PTXoi7fP8Ou/ - +SxOL4HTy3OMhwMseImGBkmyBzfwxruu8NL5Pvbnc2xvbWE0GEG2+9IYZKxwk4kKM1lGxQczGjN0DeX7 - msNFiEwRFURIRsMwpiIAueVVWJZV+q0Yv8yWLVXcjj2Jt2ZLkgufziuWVClbIxuTlgdRZeqTd0340WWn - JJ+AaP497P054Cv1q+Krat0knr1DNFM3L5ANOuuQSI9FrmwdK2RSdRqes7Y2CUhALB9VQJR9fFHKcnJd - UCTg4Abiz1OBk4T+OQLonM8VDPHfZNIJpkgAt4z//olbeOpqhMPjE3DbYNECyyXQMuHi+AgPj0/xmru3 - MJ+lZwhOJvL+ANuMkonz5tpXIKWKJtdpmM4qVB8V1BRZFEMUU4Cy3AJi5627UMK6Y+j3tFPtgkMGdnzX - rFS7M7iQF1R6O9A8hvIfQgoPS/ZJk5CuH4ZVCrIvTuoCa43LQgKQmdRlFsMMX5Ov+TDZ/RS1Piz44HAk - mYEMXntUEOQ8FnbLQL2hzojGv19B4weukQT0ti+NBK1UHUVcDmUdjIaHTeYPtufNYaufDBqLBF+1ehpB - K9h5M4lQWuD3njzAr91ocXRyiqurRar1XzBabrC4usLe6Q08dneD2WyGvfkc060tDAZDoGlyAlO4z4pS - BbIos8xE/MmjfjivMstikOxGTaYwkl2HevKujK1TF2IGY5O9/nKtX7cs0QUJlbM/g21PZ9jjSCe8wUib - dxDpIquIZPU6YREqRuXH3sOnZ5jC9dBlhd5LkoFAPTDntXkvCHqTz/5ezpVlnZTuyj0rAhZSMRrWhg54 - K7rQi3PPQVu/DQigDkMFZLMgrOjcCrYFdQHIGkz3YjXsYf2/bVssFle4Wizydp13u+5zAJL0//H5Ff7b - J2/j8BI4PT4F0CQay3TTz+LwJr7lriXu29/BbDbD9tYWxqNReuloJixbRvY05NVj82lBUWm5ivS7mKRv - 0QWm6IqDYqgtiQeDAWygFtDSkqqahBRm2HlF4bSzC6Es5QNx3q2qLv1rUUSywP6nOznqymf+onTdcsI8 - Soc3/90iSocQ5GfTQN07OKdCUE+2AgQM7VNf/qnAGlXlybLoNwtedrFkSJ2+atHcc9+u8UxAr65JZIZw - th2lWEj9yFntgsz4Abh1LGOxYPzqp5/FLx6+FI//ryfwLfeN8c2vnGEyHqXHcDUEyhim9QfI80apsu+X - //AZ/P5Bg8Pj4wRKixZNg/R8v+NjvGZwiG+8ewvz2Ry7u7s569/Y2LJiWh4AHQOpCU0KkCgPyj1eKY2z - 9Nj5qBzTh3IW1xiuckVBC75ypJAcpnkc9dpwyzaCHivp2ZYnae5Bt2R94FDB5Zp82IV8SltDY58LyH3V - 5L2Cvlwd5Sle3nZabPlm0YGNv56viI0UnMp0uWx9kl8KZAVN+klOFhVdcAHCHZjTHbf17wWAA/PsudMu - T4Y39U4W/vUyrdappytaa5jIyaM9fXiO//jbX8QvPElYTh7AJz7L+MDjp3jjx2/iR79xH4/eN8d0MsFg - NEpP5c3aKB6MmfHkrTP810+f4uSCcZEfFZ4GMgAvFxjeehJvft0W9vfnmM32sLU1xWg40jGmaXUFTh65 - /RjZftJwnJ2xFrsaigWeiJNNKD91hmCy60mEhmvgtmKVDVNTshjEoi8PwLAL82dVAc9ZVmAruco5h65L - 61ASB+lfain5JCnxts+mczWqQlGxw7ksdGTgk4tS0xG57cd5593FwDXKEIM3t54cgWT2naTYZtb1aJ/L - ZfNXqK0FAEFP20vNGsqylyrD4HBNtPbcBCxUy0i9gD7MkQFul/gnv/RZ/PqNAQ5PTnFwdIThsMHO1hZO - LnfwyQ8e4C89fIzvff3XYWd7G6PhCIPBQPxF8v7LFj/30afxhbMBDo9vo0F60w+IwA0Dp7fxqrMn8KqX - fFOq9tvZwXg0ATVOobmjEsUY82fxAuTODd7MLgqGX5IPQhc6+S97j+X3sctmLplU1u4XtxtT83Fdpbd9 - avFcKbKJCK7zr+DZp7ries14LHFovCXDly5Y8ydyjnKes+vKodo7G2jn7C1nftXMpJ8KlxWYzz9keuQ+ - hzwNa/8hkU3GL9sUmUIEx9mvd891WwkADiSdfhr+ezvWYAB9ZiKqJJPkt5KsIwKwbFv8yqdu4bAd4fzy - EsNmAGLg5OwMZ2dnONub4T0fucKNoyfwrsdejt2dXYzGo7RnzwC3jN/5/G384ucucHS6wHKxBA0GWLTA - cNiAz07xSHOIV+JAXx6yNZ2gGVAwWgETC43rk+GDID+BneXCNebSJ0TV+Mo1b81pOC8XACTI3ymmB6hO - OOLJ+VJsFya4S3xVZM34veQMSjx73mu6LjQs9/8UJhIyxRLZJKOUparxRIFf2VbuzkkNod1PJf+eBtsY - Rd4CwgpK8lm7Ks2+nNjrtzuFipUAYOMjE2T22LYtxSFk9KUOwUuimO88SRYmm4K2bYuvG5/jxrMXoOkW - Wm7RMJBuw2Uc3D7E5fY2/vNnCIzP413f/Ars7u4ClNbvxxeXeO9HbuJoMcDp+TEG+dHeGBKwWGL7/ABv - ebDBjaMxZrO9lPUfjoBMP2yzifG72Pjf/Kv3BjmVNu6/lPZQx4AgHfe9PF4Qq1EUPWezjbDN7al0EXtF - K1GnRJvVRNh/kCAA5lzcNrkej15xFeW+s2o81gZ9TS9bXP7X3/1DtnxxXl0T/mHDn20eCsfZ4aF/ffec - t1W7AFzqVdz0FnT2mF7x/QEFfBxhoVzaajMKRA1+4k8/iNfuXIDPTsCcinnatgUz0DQNTk9PcXjR4mf+ - sMH7f+fzOD5OrwRbXC3xgY8/g99+hnF4dIwlp8d7LVuAW+Dq9Da+9a4rfMO9e9ja2sb29i7G8t5ACRWz - 0dvuLdCzIExjIWRgtCFqyFpcttr4a314T1Aqbc81bL/WLgkO/9qKRq5Pr7nXMx692skHMJUKfDm+axDY - pbyOR/R8Xk155enqCGWus77IcoVMvJo4h1OjztYoG91VO2jr2x1dvAoAyCaL81d/q4mglPjtnpr47O1l - 8v21JiApSknnDQYN3vTg3fjJ738Q337PBZanh+AlwET6qC4aJBA4uGrx059o8fMffQrHR8d48tlDvO/j - t3F8foXzi4ucU2C0AJYXl3glHeE7759itreHra0tTKdTDIZNZtO2yyKk1WXqTVOMnwo9K68k/2OV2qqe - yiihp4kdZAfkdY29jZQkV7aaAfUhSGWU+VQBfOElONAectfDqD5vX4uu4H67Rg8rgzDWJUeKaNOuhZR4 - K1AoKUGGbp8aGH+13D/WPhJMohdnDFmenfxYH9OMVHySB2a3heYLvZvMiZqmSe/1e/0D9+If/fnX4rvG - j2N6dSvdsdcC7SJ5daIGZ8cnOFo0+KmPn+PXP/0U3vfhL+GJkwaHh8cAKL/YowUvGKPTW3jrKwZ46XwP - s9kck8kE4/EQspVIueqH4XgKcSnCX+9l2f8l83Z96le3vH64KK/uPVqwK1WcZS3K9XR/VURSIkn9OvIf - 3OkKBI4Xf8+QnrcWoPq8vHwvo5Uv07tWwMlvHyp1tqSpOjpbE2BV6XdZZfrVaGvvBShDST1CMBToLmjs - mhDqJeTgYlbDfiwAagjD4RBb29u4r2nwtlcO8J337uM9v3kTh6O7sBwQmiWjJQI1DU7OztDyFP/hDydY - TLZw6+RpLJdLEAZYMgODBu3lCd501yXe+PK70p1+u+mNwaBGrdVn/amWzSbPZcS9EMpW7KY/UKbiL1c+ - r/YIQcVFJx0Z3bGVqGAltRpvJZ/X9Jy+caHgJX8luQxYtV2J/hCm9rkmzzvkvbfJ1q7VRfjyHY2Wy/Lf - AiAtD1K9K+Mr2tbsAqTByEMmdY3jMnemDlxcC2chMSSUN8ravrkz/myITdNgPBphQA22t3fwjjc/isn4 - j/Av/u8zOBrM0RIBDYPaJL3Ts3N88tYYvDzDxfkFhs0ALScwaRcL3Ls8wNse2MJ8toe93bTnn+oHKBuH - ZWjDKDrfCe/+W+9U16T5cYZLuhmhXvP1BuGiKrnJKhYeyUU1aulizu5eFEl/I4ngVu1jeEo6SQi3drG7 - fgWRun/zfo9MB+C3lbnCXL0j0TfZZtMgLay/8vw4EFfeOyFsfQwR6Dlf5oreRGsZ9o3KKBfwX2qzZ2r2 - 1TV+oAcAmsFAP+ttkTLIApb7WPa39ZRNb3M0skpM97cpgcNgMMBoNMLe7h7e8diDAAj/7P/cwNF4H8tl - emlnqnRj3Lh5Ew01GI2GqVyY04287cUh3vbqIV710r1U7ute6RUGIndrASEa8MoL+MIUaFgnYyGncKrs - NVwnr68SRpghi7LFwqMuyHplUx7J5K/2C0BrN3oM2BcNQUEoz3lxX3Ofr6pgfud8Ehmq0XMUA6Jr0R9d - Lb8kXLSATKI45YE13yFdiAzWGZoVJPu8lsmOnVC18IvkjlZXHVsGG45vO+7Dta8+AKx5NRgsXCfWdWQM - croG7q7WMTGyUflsOwCdpQDeTuxEKScwnWBvdwc/8Nir8Te+9SUYnR+AKb2uu21bLBkYNkMMmgHaRYtl - zhcsLs/xJ7bP8B0P7GC2l/b8x9NJug1YOZOPdRym4htlFq3sU8biPIyNulBjJxA5Ta9xBwOQ1FVDgMpA - hkTQrtw2zUGaN+4hlvkk+5HdL/IPOY0O3rHGWOCd1XOCLbLQvITc3FPwVMo9qJvW2xunCTtlLKmmw+OL - 8lVluoweDPJ1/DIGkPHNbq+IHWS4kngrDiWdD+uOO/L6arbrFQJplZ64ZlGkbkCjXsn9TQBpypeAj027 - esduk0UNYTyZYIcJf/nND+H2+RL/9nePsBzvoW0T/SWyLjWiHy3miwP82YenuGu+h9l8hslkgtFw4KDP - kLca3majpuKA1Xl7b1CaT0WYgZIcpKgQZs510bAFLL4WX+rPgWjsa9eVLJFduFKnWsurK56qf+qk8i7r - QagjEdXxX3wxcZe2x0uTUWZTaefr3doqlHTXCGsrUUHRvJg3luHZdTIMYsUljWJEx7XM1a7T+HDFcuQr - 3dbfDuwWt5QP9gOW3PMOTTxJaaSNkUNivd6v60nCPhCaZoDJZIzdnV38tbc8gh98ZAJcnqKllO3XuweZ - wS3Qnh/ju19GeM19e9jb28P21na62YeawuDgULwQgENs1nOhCm5vZ0mftTa81CenC/bkHbdA0ssMPntF - FAzfFEjMiIQ/AYp+QRdE8xhDlJpk0E9jBWWKX/Sr/sgdD97XEzklCueQ0LZnBshdBrbl6cqKrzUQQ31W - UHEAyMKP1fWHW97ZJ5AlTyDAXADJ18jzS1u7BFAv4LzOettlZwTmPtP6yBHoC8XIlMIfJzCaZoDxeIL9 - 2S5+4u2P4rtfzsDVObhJ1X7p3X4Ebpd45egUf+ahHcz20tp/Op1g2AwSD1QqUZ8EcobXhavqeYkN4DKP - bt6LYeWiJ/lHb2xhd37y/NXbe+uSAvlzxckoWOljLYrrLOXqbTFNFynYsS7PPA1ezVa+VtVAbIalTFe4 - LSouq/Qd5yo8OBrq23VU5nf8uaZzBj71rpWyW4ayKH7+Ig8m1dW+A6Gud4sOwXfxtTX91Fa/GQiAxMS+ - rLTKeT5uDwpxqAFAX6RpOFql0/EACpg54wvGYNhgPJ7gnv0Z/v73PIzX716Az8+BwSAnlwjL82O87f4R - 7t3fxd5sjul0iuFolG72Keeo6/qLYZH7bMburSeGpx2xoKwv0Lv7kEJYuT/ddKVf0Lru9/bBwmm5Vu+a - P6nyBgL5Z87LNVmns17TM8TOd8V98Z5gBT0L1V1asHTLHCipLPpmKC19sqln0JLHw4knpuKa+Mnq8rk4 - JeGOyCYV+jAYrLskEoHl/2vhfJhK7urfc9rujHA/ALSsoR8D2fj6oD97QtlKy4eYbNfASmtXsMm2jaVF - Q34mYLJsmgbT6RQPv/xu/OT3PYRHds/BF2cAN2ivLvDq6Sm+44Fd7O7tYXc7h/6NeDS2STXSkTEN2aTS - C85z5+u8o6iIRnBFPZbohyKgKFDqz5eQVmlJR85g0v3+srWWZZ6XGN5Twl+fLsxg4/M27g42ynDCiPNQ - 4yzG9pBid9ZB+8vtWQQpuoKTdX3QVm4uRiYRinyGOhuHya7T/uUUudELu8Xeoh5PQZ9U+clP8sFFU2Es - FT37ihn/nbfeJKBNSf4kVUxsv9sgk9YS+SvNWLy3KraooyxkG450FaehXO3JwPK0oIuLC3z/7AwfOBrg - s8dzbLdneMPwGXzkdx/H5z6TnvE3knr/3rHaUPyY1Ju4m4QkJAzBvwjEKztpRJ1BB+4OPH9BNmRnGIEr - lW36ojEHZQNm8+l6MpvHrOobwSZD5i1kqTVX3+t7g5w0RDfo1m1HEOTNu7ZbYfUTbpjxi5eT8KvLMTJR - 6zojUnLSRXHAm7brMslOHmyqhe9u54rIAElrI7L8+sYSZvMr6v3vnPbquwFlL5URM5Xsw7ssRi1BA2rP - pu9MrjtWlJzkvkm94Y/88A9ojbWPIQjpJqHLqyucnZ7irxwf4fAw3RQ0Go3ym332sL21g8FwAGok+cem - /1WBOQ9QFKyL8XrHX+hd9AKiv+5mp9C/HrQwtBNGOgNVeCWDCsNa+VBDV5O1yFcMR+VKsgRJn/uz0xH+ - YwGB85xamMTKkve2lomosKrknGYQEtgRLOMOuzgYe42mO9CJ+qiMOGNsFMorAx2JkgreHY7LKL0Dfb60 - 9U8EqikR2TT611QntIQKy5fTUlUAooDmzYSYJozIsqg6wbkPzn2MRyM0O9sYDofY3t7B4mqBwXCA8XiM - yXiCwXCIhgzVGd4L15ozVuHLsU4SZnvxKFC6qyl6e/bnea8LDruiXjaQqCBHExaFkOmi21XoRCGFrA2d - IuySAIzbrg34VJGPFxK7CIk8H4EDMsJ9nr9kFzIuASkDDl9MJHUOFl24nEsNYRx9zhGFPxi+5SWBj1zi - STk6KPQ/TPjzzfJzW1sHsPr3WIml5huQLxpMbKTCDZ1a3LzC0xq9VDE4wnQ6wGQyQdsuATQYDAYYNIXS - RHdRHZOEegYDDuxk3J6E/0L+Cve7kCou0uH2ukCoF+TMg8JpMFLR5vq4PLwCFq6mnJlMIIMcCHQ8mxuG - NwLOhDwIKIC4uVRfuMoR1oAryFR2JwpHK0R9gVAHwRznZD/obb0+OmHoUtRvfYV7RJwehqWbG+C6BdTX - ul3rmYDdJl4jTwlZlVTUb+8lK/5EENKDAEGTWKJYhXirrWlSnQCjAWHors0dkaF3jYbZry091DPCgkG/ - CHGBjzbyn7JX8rIgVTTxYqLQXa4EHHyiyt2VEQHKMVKlFowjj81ZsQJCIZA6bHM2eIspfLGUeV6K933A - YKDDY+GRASdLiXbkHK0kdeXkhddhZ7QBnTvwbMciwOS/ch9MnkORk8xFHEV9Dp/Pbe3twPUw0FyWio7y - tpJThFgLzR0qgEy2TYIoSsq7mYAVjePV3U9q9GR79TDvHUfVHauqh5yu249xyuujyZf4dbhclS1FnUf+ - v4Mgfjy++AQCQxy4SMsZ6c8gIV9u1LyByrqauWccVPwt+Mo/+en1njMafwIMk15Bp9Ol5CFcYZAsS2wA - kFJi7c5xIWOrz1JtTF63cn+EtD3LoRM9RZaoRKS4GvCgrmLPu3at5wEAlcnWsMwrJXKIyk72FYGzKLM3 - TIfoqsiCBivKJZ1FWdTnNizNjSKsCwsSYvQWsrH9kLczWVW5R0rq3kyhRFFslKX3qZDJfKTaCdmxz8qo - iuflD7vQU/cA5LyjV+b0YlEDWUWnPpPtuG24OYjSZyBt6crORxUyyxmxEVn1n1XcqYHKT05BbXZXW59B - g0WFngfZIE1DcrJncvPH6vS8WH0HLwQMWAsAYdLYTQqTlkPqb1lwnVCwaKQhHCCJMgENTa55IqXxK4A4 - SFYFyIAUruNQHVcSs3A803JbT/bqJvO6RCUZvwfMVgzFroYgy0eBrGMQ7IMXP9SoTGzjEe7lZr3e5t12 - Hig7udk8efl0DROIUZ2v6mSugKuOkZ1+FIyx890CRAwFDQMTytGBFP6kDgK3Oi9dnePik94cpQVE0G3Y - KNscj2S63rlxJOzFVErieduuAQAVzSL7369htUKqayGpmX1qOa33vhZasHVQU2zvzTXEt+y+eMb6BMTj - aRIpzmaMZ/Mhp0Le8+QDXu/8kt7fHiqWbN4sDsrMUgBELnE7FzAP5+suqgVo6tkF4FyUZPu7OmT2MggC - cuPJ18oDLhS04ISiQOhHV0o+H/VTrHkgdrmPqCMShVnWXy9JY+uxOqp8CgOj3K+xpfSJKrGfzDFRJPlC - sHrX1t4MJB8MFU0TbB9XpwFSBVaVhEZWlnSi7PVLOSoN07Au4nIGn7zskHoNnRsxFI60O599oQ9LqG14 - dL37HwD/7ETvjRLYsQ2pJzgUufhbeSWqSfrJ7kwxWEL5hCU9p8gJKMg4WQsvjvPYZOzCkgtHkiFm43DL - rG70UJcfl79x+at0ZPMrvzFQSTyusb8OtomZQwoJgTymsprSoqZKh86p1T3W87etfTcgZ4UVp25bIwqa - ENVxtVlF4+J/BDnFrSPz/kF9Re+cd9b7CwiQPIF537Ca73AVNxitf1svW16jt1wgX2TFIGToo8U1wkvX - TXCHDhvgFPjnFZLgQYQDg0JZFzZ+8OyOV0wmrGddi95b5AMFc+UoOwXLgTrZVuyC9G+6wK0m01E2jmQN - bvhDyobvo98Za+gT9aiE4+zVBWBVa41ZP6oQclQjqOd5Wx8BqEGJUcDKMN3NEX4Ca25EFUW2VgR2CbaM - UE9bMRCnd/ZdwIGUVs/VYUjeTCAKCxuHdkFlh46K4lK+TsCS03i0xl3LSrv8UPHNtgNTRCIFKkF2jnuq - UlFqkPShqqwYgItCVuYO3HDNXrK8tGy7BA0XOvVAr/+j3sSP3UV9EeTd7IVY32j6o3HGXCzFoi5WU5BO - MokJEAvRWPDmYKNf6V8QrbcOgMj2edWLieFKiaf+k42g61SMHrK9ZqNKainG4TyHBxxt8oMXsxhD9oyi - O9WOjY6sp42fTEUdHOnxiOhRtaSS1kqgWftLl0ndODsnTagKR/wYmWKZfy+9uxuWB0E4DMx0ZHuKnNGm - 6MJ5PWPbffUTUfBMlqvQ3Gjou5CH70eBA34i088Z7AIAA2AuefDLn2s0lYHrU3j081cU78gn7Tn/rtFX - Z5zXZej51a69DajNJGJfXBq6VCz5rJdoYKgaEWKqcss3fCMHFHKyr0SknuuK74UvTxyRW3Lovjp3SZRi - yMCYItSsVBquKNIFoUTRiCJJcovdL1EYHvxq2ESkeq3GqI5SrcZ4sLikXLxJOCPEbJ1stQMS5VhBEft/ - qBi6G4Bw4HDZ2Z+BVFIN2wJ0Vcrxxq5VzpcsX6BNeM4CcywnWbDCjNVY5HllR6ODni/A1g8ABNJbHwGU - 0ybK4ENDOwtB6b29+g7shhu7sIqnjgfzMjClUK9bDoId3ehJBdUpHjE+RWsKvsLOQOGK9CGaXPIfgcfF - LtmTW3Ze9qYBu0cihv7+U9frELInlfW+7so4DjSsW+G9BJQlve6uNfkU/Dgg78jNHfaO2Aw0KoGvwWSB - AWdornyk0FEvJYV3jTLtFxlXWsZorb/0pqe6rUYS4JHrIAHkC7atfDOQrXOgLlwz5PqT7JV2mzc0RVNB - V2IN7zqewl2vVHL/qf7AYrqsQ26SqUJD1AAJtML5krswPrqG5vRavaEgkHgpqKcU72J9F+AYOCK7Xmsg - yIzCjbXbMlgEwzAagkS+CjJu0PTPW6wVsN0DvZLy3BPggpbMap9LZOXJZ9Up9ycOwQDBksv2zMLAZaDT - je2g9JCpgZNswrYx5/gr4G2Ufbxd22TZNzMvlNabA2gaUmFEw5JR56ETeycYmvk9QXHTPqu14YrHlN/k - s/eA0bVorr/0RrDf4erWJTMfkdtNdN6S7B8Tq1D0Sbe5StDXA6z0r8xaIajMa+4h0dcXTZA7p4An6Ujv - cpSwFpLoQ/DIXXCLVYqc2LAAIZzrPpGALtfH2rtAJw36NI/kPLRQsZdsmP7ZYHTinVxiH8ZsCA8ULGV8 - AjxaEiGgk/uSHJfmcXx3jpW+0b4Q2vpCIPUiztiCsrpT6wTM+NkpqQslOwjqD4gnZf+zD+uoc0mHmDl/ - V8nm/IJMfBG+FsOAGA2TAIlofzZ+Mq/ZrxQM3WYCNH/gw/701ULeeGdiMTaQ24Nnq6KDeDwjwhpJ2EC5 - JKdssu6Hy6vdALMndhFOwuhKDUEpPvmsxWOFCgnt4Fld8VKvVAsjF16D8SPrrVGSHAixOBHSXY1U/mvK - SfEf9AvuhdV6AaDVR4KJ0dqkiZcs56N0GrZ+cy5dYq4SOFbIMIWAIn+r9vPrxs4qpNgbJ5hZUnGNJrfK - PEZncObl1XtkPlQcui26ajQwpWbShLJsQgkXWp7KXZ66UQWcF8useuYdiKunrQwx8WY0KANkTCOQG4D0 - X446fiN3OPkAmZW8lShA6PDJEqQ949XPjhGpBhOl0kSm5Vx8wYE5EXbnsF4q823uwsumPtYXUlv7UFBB - SPGA5kCpe7L7oo4nn8t+TvIvqoqqeSWpuDPfTTwihLhBI9VDSSIzf+NyyaG+sjMeBy+wbUpSGuluMVPS - QLhnHWyKZIVHC/gAAAVNSURBVP436yd8UY3zf+4KhPMDiJL/YGOWJRZcX0Kvq7YO3BxkauVmaeRuuH4q - AkMcz4fyYxfpUko40HxASaArU5t28dvibGw7V3Qw954oSd/Q4uJyctC5xd3nGyqg/EJsax4L7kLVfMzs - vsf9OyvXZ6uRN3d1fd05NrC2pgZvlXKhLDRk2Ct+Mq8D2U2eqZE3uOLHrDhlpWPCAEl+kXqcTj1IbR3M - jk893z77SkCVRTE2NTTy88IIC3h3rQeUWjUi/PUyS5oNg9bBw9Njsc9okGHETh6lJMgZp47bEaAc9vSY - e6Slv1h9h8jeXhgC3bEJelL2QYDf+RG4eDF4+r7WDwCsfi/W6fdm/C00ciTU2LXQw3v6tfIkW1c7NFfa - 7lOdlAu3cxgrz3T3tCLKF+MizyepZ7XIwDkgGVRVRN7QxRlmYGGpqIRFEd4gS94cklH2YbUbq8Qn2kVx - cIFciFii19XcCUmdQowq+pptlLi+HZ/6VF9ysQdLROB2VK7RFCh1HSE/uCUVqRtRFGVPIPfHxW8RTF9c - 7RoPBCGdpPS9hszQCfPoS2Rlp7KF0jehvpJQcYKjF/SJo17d6wQmzhryz7odKcq8Yl6z3psMAlrkqKAS - eBhqZSB1g1JP5cfuAMIUrjOYoJYGyuyEJpELOavoH1v8ZJGAEsvWzzma43BhQbwAqGRHeXS+poGLsQaU - FdjKAKjRxoqmcysFWeq6HIKnMYTEoPusYJQUBLItaF0UkeKLpPU/FpxbHg1H7jt3/rZtCwD6FwBaiMDF - etN3IoDb6B3VDLJiVJ0KA0wNEoJbNrq6V0eVrzk7TdTASmCpaxiNmrPzsK6PbHzCg4+AqXFK7a4VI14Z - 6Qghf1J1bCuOrdq3vBY9dfEQK0hG69WedO6bhjBoGjSDAQZNk8m9+LzjH4fWCwC7O5MvPfbWHwOQkLVp - iJqmISLCaDig4XBIg0FDw0FDTdMAIAwGjcN1CABkO2hBRGgZaNuWGyJK+QG3ySUwnM2RmblpGmrbZTrY - DKhtWd+FwcxM1FDbttneGC3nzZycfCBwuqZpstmrP6amGWDZtoxkw9S2LcegyCNB55iWrDK3IEoysM9t - zn80ej7zEk3ToG1T0E4ELNs2AVTTuB7E5CSHIsCU6LUtJ4bBYGYCOZ65BYjQUIPlcokkN5+4LBdR6b2K - TZNG2TIwSPPMw2FDwieYsGhbcNvi4uKKzy4u26urS766WuBqsWR5L6NrqxGBe79cu62G//+fVuHnBeL8 - R4PlTQD3X/f8XgD4H+97z3c/Fwxt2qZt2le1Xdv4gR4A+MgnP//csLJpm7Zpz+t2jUeCbdqmbdqLtW0A - YNM27Y9xkyUAA8Cb3/jQ15CVTdu0TfsKNgbQ5v91o9pnTv8uEiDclf8O8JxmVjdt0zbta9QYwL/Ln88A - HOe/F2LgDZLRjwG8PP8dYrNE2LRNezG0FsAifz4EcArgHMCl3wVgAMv8wxIpAtgAwKZt2gu/tUg2fQXg - EgkMlgDY5wDkpFOY8W+WAJu2aS/85u17gQQCSwBtGQG0SBGAGP8GADZt0174TZJ+AgLL/DncBiMGP8TG - +Ddt015sjRGBIN/2FBvBvH+LDQhs2qa9GFrtftXa8U3btE3btE3btE3btE3btE3btE3btE3btE3btE3b - tE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3b - tE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE3btE177tv/A2F/Fw0eR0qc - AAAAAElFTkSuQmCCKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAF - AAAACwAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAO - AAAADgoEBRAKBAUQCgQFEAoEBRAKBAUQCgQFEAoEBRAKBAUQCgQFEAoEBRAKBAUQCgQFEAoEBRAKBAUQ - CgQFEAoEBRAKBAUQCgQFEAAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAKAAAAAwAAAAAAAAAA - AAAAAAAAAAUAAAAVAAAAJQAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAq - AAAAKgAAACoAAAAqAAAAKgUCAi0FAgItBQICLQUCAi0FAgItBQICLQUCAi0FAgItBQICLQUCAi0FAgIt - BQICLQUCAi0FAgItBQICLQUCAi0FAgItBQICLQAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAj - AAAAEQAAAAMAAAAAAAAAAHh0ckWIhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf8AAAA0AAAAIwAAAAoAAAAAAAAAAIiEgf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/ - 0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/ - 0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/0ca9/9HGvf/Rxr3/ - 0ca9/9HGvf/Rxr3/0ca9/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3/+/v8//z7/P/7+/v/ - +/r7//r7+//6+vr/+vr6//n5+v/5+fn/+Pn4//j4+P/4+Pf/9/j3//f39//29vf/9vb2//b29v/19fb/ - 9fX1//T19P/09PT/9PT0//Tz9P/z9PP/8/Pz//Py8v/y8vL/8vPz//Ly8v/y8fL/8fHy//Hx8f/x8fH/ - 8PHw//Hx8P/w8PD/8PDw//Dw8P/w8PD//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3/ - /Pz8//v8+//7+/v/+/v7//r6+v/7+/r/+fr6//n5+f/5+fn/+fn5//n4+P/4+Pj/+Pj3//f39//39/f/ - 9/b2//b39v/29fb/9fX1//X19P/19fX/9PX0//Tz9P/08/T/8/Pz//Pz8//z8/L/8vLy//Ly8v/y8fL/ - 8fLy//Hx8f/x8PH/8fHx//Dw8P/w8fD/8PDw//Dw8P/w8PD//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAA - AAAAAIiEgf/Rxr3//Pz9//z8+//8+/z//Pz8//v7+//Lycn/y8nJ/8vJyf/Lycn/y8nJ//j4+f/4+Pj/ - +Pj3//f39//39/f/9/f3//f29v/29vb/9fb2//X19f/19PX/9PX0//T09P/09PT/9PP0//Pz8//z8/P/ - 8vPy//Ly8v/y8vL/8vHx//Hx8f/x8fH/8fHx//Dx8f/w8fD/8PDw//Dw8P/w8PD//f7+/9HGvf+IhIH/ - AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//Pz9//z8/P/8+/z//Pz8//v7+//Mycn/+vr6/+fZyP+1gUH/ - u6KD//j5+f/4+Pn/+Pj4//j4+P/39/f/9/f3//f39//29vb/9fb1//b19f/19fX/9fX1//T09P/09PT/ - 9PTz//Pz8//z8/P/8vPz//Pz8v/y8vL/8vLy//Ly8f/x8fH/8fHx//Hx8f/x8PH/8PDw//Hw8P/w8PD/ - /f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//P39//z9/f/8/Pz//Pv8//v7+//Mycn/ - 9fDs/7J5KP+6dQr/q2sa//bz8f/5+Pj/+fj5//j4+P/49/f/9/f3//f39//29/f/9vb2//b29f/19fX/ - 9fX1//X19f/09PT/9PPz//P09P/z8/P/8vPy//Ly8v/z8/L/8vLy//Ly8v/y8fH/8fHx//Dx8f/x8fD/ - 8PHw//Dx8f/w8PD//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//fz8//38/P/8/Pz/ - /Pv7//v8+//Fs6D/tngp/7NtC/+5dRH/uXEL/8aYYP/5+fn/+Pj5//n4+P/4+Pj/9/f3/6iSlf+okpX/ - qJKV/6iSlf+okpX/qJKV/6iSlP+okpT/qJKU/6iSlP+okpT/p5KU/6eSlP+nkpT/p5KU/6eSlP+nkpT/ - p5GU//Hx8f/x8fD/8PHx//Dw8P/x8fD//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3/ - /f39//38/f/8/fz//Pz8//z8/P+8kl//tWwK/7h9NP/Bq5H/uHQQ/7Z2D//n1b7/+fn5//n5+P/4+Pj/ - +Pj3/6iSlf+okpX/qJKV/6iSlf+okpX/qJKV/6iSlf+okpT/qJKV/6iSlP+okpT/p5KU/6eSlP+nkpT/ - p5KU/6eSlP+nkpT/p5GU//Lx8f/x8fH/8fHx//Hx8f/w8PD//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAA - AAAAAIiEgf/Rxr3//f39//39/f/8/fz//fz9//z8/P/v5Nb/3sGc//Xv6P/7+vv/y5pa/8GHC//Fijf/ - +fn5//n5+f/5+Pj/+Pf4//j3+P/49/f/9vf2//b29//29vb/9vX2//X19f/19fX/9PT1//T09P/09PT/ - 8/Pz//Pz8//z8/P/8vPy//Pz8v/y8vL/8fLy//Hx8v/x8vH/8fHx//Dx8f/w8fD//f7+/9HGvf+IhIH/ - AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//f3+//39/f/8/Pz//fz9//z8/P/7+/z//Pz7//v7+//7+vv/ - 9e7k/8WIIf/Gjhz/2riA//n5+f/5+Pj/+Pj4//j49//49/j/9/f3//f29//29vb/9vb2//b19f/29fb/ - 9fX1//X19f/09PT/8/T0//P09P/z8/P/8/Pz//Lz8v/z8vP/8vLx//Hx8v/x8fH/8fHx//Dx8f/x8fH/ - /f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//f3+//39/v/9/f3//f39//38/f/8/Pz/ - /Pz8//v8+//7+/v/+vr6/+PKnf/NoSH/zJkk/+/lzf/5+fn/+Pn5//j4+P/49/j/9/f3//f29//39vf/ - 9vb2//X29v/19vX/9fX1//X19P/09PT/9PT0//Tz9P/z9PP/8/Pz//Lz8v/z8vL/8vHy//Ly8f/y8fH/ - 8fHx//Hw8f/x8fH//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//v7+//39/f/9/f3/ - /f39//39/f/Mysr/zMrK/8zKyf/Mycn/zMnJ//r7+v/ZuFz/1q46/9SvRP/18uf/+Pn5//n4+P/4+Pj/ - +Pf3//f39//39/f/9vb3//b29v/29fX/9fX1//X19f/09fT/9PT0//Tz9P/z9PT/8/Pz//Pz8//y8/P/ - 8vLy//Hy8v/y8vL/8vHx//Hy8f/x8fD//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3/ - /f7+//7+/f/9/v3//f39//38/P/Mysr//Pz8/+jbyf+2gUH/u6KD//r6+v/39e7/2rZL/9iyQf/ewW3/ - +Pn5//j5+P/4+Pj/+Pf3//f3+P/39/f/9vf2//b29v/29fX/9fX1//X19f/19fX/9fX0//T09P/09PT/ - 8/Pz//Pz8//y8vP/8vPy//Ly8v/y8vL/8vLy//Hx8f/x8fH//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAA - AAAAAIiEgf/Rxr3//v7+//79/f/9/f3//f39//39/f/Mysr/9vPt/7N5KP+6dQr/q2sa//j18v/6+vv/ - 7eG6/9u4Vv/hx3z/+fn5/6mTlv+ok5b/qJOW/6iSlv+okpX/qJKV/6eSlP+nkpT/p5KU/6eRlP+nkZT/ - ppGU/6aRk/+mkZP/ppCT/6aQk/+mkJP/ppCS//Ly8//y8vL/8vLx//Lx8f/x8fH//f7+/9HGvf+IhIH/ - AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//v7///7+/v/+/v7//f7+//39/f/FtKH/tnkp/7NtC/+5dRH/ - uXEL/8eZYf/7+/v/+vr7//r6+v/6+vr/+fn6/6iSlf+okpX/qJKV/6iSlf+okpX/qJKV/6iSlf+okpX/ - qJKV/6iSlf+okpX/qJKV/6iSlP+okpT/qJKU/6eSlP+nkpT/p5KU//Py8v/z8vL/8vLy//Hy8f/x8vL/ - /f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//v/+//7+/v/9/f3//f7+//39/f+8k1// - tWwK/7h+NP/CrJL/uHQQ/7Z2D//p1r//+/v7//r6+//6+vr/+vn6//n5+f/5+fj/+Pn4//j5+P/4+Pf/ - 9/j3//f39//29vb/9vb3//b29f/29vb/9fX1//T19P/19PT/9PT0//P08//z8/P/8/Pz//Py8v/z8vL/ - 8/Ly//Ly8f/y8fL//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//v7+//7+///+/v7/ - /v3+//3+/v/x5tf/4MOe//bw6v/8/Pz/y5tb/8GHC//Fijf/+vv7//r6+//6+vr/+vr6//n5+f/5+fn/ - +Pn5//j5+P/4+Pj/+Pj3//f3+P/39/f/9vb2//b29v/19fX/9fb2//X19f/19PX/9PT1//P09P/09PP/ - 8/Pz//Pz8v/y8vP/8vLz//Ly8v/y8vL//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3/ - /v////7//v/+/v7//v7+//39/f/+/v3//f39//z8/P/8/fz/9u/m/8WIIv/Gjhz/27mB//v6+//6+/v/ - +vr6//n6+f/5+fr/+fn5//n5+P/4+Pn/9/j4//j39//39/f/9/b3//b29v/29vb/9vX2//X29f/19PX/ - 9PX1//T09P/z8/T/8/Tz//Pz8//z8/P/8vPy//Ly8v/y8vH//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAA - AAAAAIiEgf/Rxr3///////7//v///v7//v7+//7+/v/9/f7//f39//39/f/9/fz//Pz9/+XMn//NoSH/ - zJkk//Hnzv/6+/v/+vr7//r6+v/6+vr/+fr5//n5+f/5+Pj/+Pj4//f3+P/4+Pj/9/f3//b39v/29vf/ - 9fb2//X29v/19fX/9fT0//T09P/09PT/9PTz//Pz8//z8/P/8/Ly//Ly8v/y8vL//f7+/9HGvf+IhIH/ - AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//v////7+/v/+/v7//v7+//7+/v/Mysr/zMrK/8zKyv/Mysr/ - zMrK//z8/P/auV3/1q46/9WvRP/28+n/+/r6//r6+//6+vr/+fn5//n5+f/5+fn/+fn4//j4+P/39/f/ - 9/f3//b39//29/b/9vb2//b29f/19vX/9fX1//X19P/09PT/9PT0//Tz9P/08/P/8/Pz//Pz8v/y8vL/ - /f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3///////7///////7//v7+//7+/v/Mysr/ - /v3+/+ncyv+2gkL/u6KE//z8/f/69/D/2rZL/9iyQf/fwW7/+/r7/6iSlf+okpX/qJKV/6iSlf+okpX/ - qJKV/6iSlf+okpX/qJKV/6iSlf+okpX/qJKV/6iSlf+okpX/qJKV/6iSlf+okpT/qJKU//P09P/08/P/ - 8/Pz//Lz8//y8vL//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/Rxr3//////////v///v7/ - /v7+//7+/v/Mysr/+PPv/7N5Kf+6dQr/q2sa//r28//8/Pz/7+K7/9y4Vv/ix3z/+/v7/6uWmf+rlpn/ - q5aY/6uVmP+qlpj/qpSY/6qUl/+qlJf/qpSX/6mUl/+plJf/qZSX/6iTlv+ok5b/qJOW/6iTlv+nk5X/ - qJKV//T09P/09PP/8/Pz//Pz8//z8/P//f7+/9HGvf+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP/ - ///////////+/////v///////v/FtKH/t3kp/7NtC/+5dRH/uXEL/8iaYf/8/f3//Pz8//z8+//8/Pv/ - /Pv7//v7+//6+vv/+vr6//r6+f/5+fr/+fn5//j4+f/5+Pj/+Pj4//f49//39/f/9vf3//b29v/29vb/ - 9fb1//X29f/19fX/9fT0//T09P/09PP/8/T0//Pz9P/z8/P//f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAA - AAAAAIiEgf/g2dP///////////////////7//////v+8k1//tWwK/7h+NP/CrJL/uHQQ/7Z2D//q2MH/ - /Pz8//z8/P/8+/z/+/v7//v7+//7+/v/+vv6//r6+v/5+fr/+vn5//n5+f/5+Pn/+Pj4//j3+P/49/f/ - 9/f3//f29//29vb/9vb2//b29f/19fX/9PX1//T09f/09PT/8/T0//P08//z8/P//f7+/+DZ0/+IhIH/ - AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP///////////////////7////+///y5tn/4cSe//jy6//+/f7/ - zJtb/8GHC//Gizf//f39//z9/f/8/Pz//Pz8//v8+//7+/v/+vr7//v6+v/5+vn/+fn6//r5+f/5+Pn/ - +Pj4//j4+P/3+Pj/9/f4//f39//39/f/9vb2//X29f/29vb/9fX1//T09f/09PT/9PT0//Pz9P/z8/P/ - /f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP////////////////////////////+/v// - /v7///7+/v/+/v7/9/Dn/8WIIv/Gjhz/3LqC//z9/f/8/P3//Pz8//v8/P/8+/v/+/v6//r6+v/6+vr/ - +vr5//n6+v/5+fn/+Pn4//n5+P/3+Pj/+Pj3//f39//29/f/9vb3//b29v/29fX/9fX1//X19P/19PT/ - 9PT0//Tz9P/09PT//f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP///////////////// - ///////////+/////v////7+/v/+/v7//v7+/+XNn//NoSH/zJkk//Poz//8/Pz//Pz8//z7+//8+/v/ - +/v7//v7+//6+/v/+vr6//r5+f/6+fn/+fj5//n5+P/4+Pj/+Pj4//f39//39/f/9/f3//b29v/29vb/ - 9fX1//X19f/19fX/9fT0//P09P/z8/P//f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP/ - ///////////////////////+//////7///7+//7+///+/v///v7+//39/f/auV3/1q46/9WvRf/49Or/ - /Pz8//z8+//8+/v/+/v7//v7+//7+vv/+vr6//n6+v/6+fn/+fn5//j5+f/5+Pj/+Pj4//j49//39/f/ - 9/f2//f39//29vb/9fb2//X29f/19fX/9fX1//T09P/z9PT//f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAA - AAAAAIiEgf/g2dP//////////////////////////////v////////7+///+/v7//v7+//7+/v/6+PH/ - 2rZL/9iyQf/fwm7//f38//z9/P/7/Pz/+/v8//v7+//7+/v/+vr6//r6+v/6+fr/+fr6//n5+f/4+fj/ - +Pj4//j4+P/3+Pf/9/f3//b39v/39vf/9vb2//X29v/19fX/9fX0//X09P/09PT//f7+/+DZ0/+IhIH/ - AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP////////////////////////////////////+/////v/+//7/ - /v7+//7+/v/9/v7/7+O8/9y4Vv/iyH3//Pz9//z8/f/8/Pz//Pz8//z8+//7+/v/+/v6//v7+v/6+vr/ - +vn5//r5+f/5+fn/+Pn4//j4+P/4+Pj/9/j3//f39v/29vb/9vb2//b29f/29fX/9fX1//T19P/09fT/ - /f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP///////////////////////////////// - ///////+///+/v///v7////+///9/v7//v7+//39/v/9/f3//fz9//z8/P/8/Pz/+/z8//z8+//7+/v/ - +/v7//v7+//6+vr/+vr6//r6+f/5+fn/+fn5//j4+P/4+Pf/9/f3//f39//39/f/9vb2//b19v/29fX/ - 9vb1//X19P/09PX//f7+/+DZ0/+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP/vr/A/76/wP++v8D/ - vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/76/wP++v8D/ - vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/76/wP++v8D/ - vr/A/76/wP++v8D/vr/A/76/wP++v8D/vr/A/+DZ0/+IhIH/AAAAKgAAAA4AAAAAAAAAAIiEgf/g2dP/ - 4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/ - 4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/ - 4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0/+IhIH/AAAAJgAAAAwAAAAA - AAAAAIiEgf/g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/ - 4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/ - 4NnT/+DZ0//g2dP/kXlo/5F5aP/g2dP/4NnT/5F5aP+ReWj/4NnT/+DZ0/+ReWj/kXlo/+DZ0/+IhIH/ - AAAAFwAAAAYAAAAAAAAAAIeDgGyIhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf9/fHlyAAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP///////wAA - ////////AAAAAAAAAAcAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAA - AAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAA - AAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAA - AAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAA - AAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAA - AAMAAAAAAAAAAwAA////////AAD///////8AAP///////wAA////////AAD///////8AACgAAAAgAAAA - QAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAAL - AAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAAN - AAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAALAAAABgAAAAIAAAAG - AAAAFgAAACMAAAAmAAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACYAAAAm - AAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACMAAAAW - AAAABouGhIGFgX73iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+KhoP/jImG/4+Mif+Piof/i4eF/4iEgv+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - eXVzlAAAACMAAAALiISB//z7+//7+/r/+vr6//r6+f/5+vn/+fn4//j4+P/3+Pj/9/f3//f39//29vb/ - 9vb2//X19f/09fX/9PT1//T08//08/P/8/Lz//Ly8//x8vL/8fHx//Lx8f/x8fH/8fHx//Dx8P/w8PD/ - 8PDw//v59v+IhIH/AAAAJgAAAA2IhIH/+/z7//v7+//6+/v/+/r6//n5+f/5+fn/+Pn5//j4+P/39/f/ - 9/f3//b29//29vb/9fX2//X19f/19fX/9PT0//Pz8//z8/P/8/Lz//Ly8v/x8vL/8fLx//Hx8f/x8fH/ - 8fHx//Dw8P/w8PD/+/n2/4iEgf8AAAAmAAAADYiEgf/8+/v/+/z7//v7+//7+vr/2NLX/83Yzf/CtKX/ - 1t/V//f3+P/39/j/9/f3//b29v/19vb/9fX2//X19f/09PT/9PT0//P09P/z8/L/8vLz//Py8v/y8vL/ - 8fHx//Hx8P/x8fH/8fDw//Dw8P/7+fb/iISB/wAAACYAAAANiISB//z8/P/8+/z/+/v7//r7+v/U3NP/ - 4NC3/7F5FP/TuJD/+Pj4//j4+P/39/j/9vf3//f29v/29fX/9fX1//X09f/09PT/9PT0//Pz8//z8/P/ - 8vLy//Ly8v/y8vL/8vHy//Hx8f/x8PH/8PDw//v59v+IhIH/AAAAJgAAAA2IhIH//f39//z8/P/7/Pv/ - /Pv7/7+ke/+vbgL/uYIb/7uFKv/y6+H/+fj4//j4+P/39/f/9/b3//b29v/19fb/9fX1//T09P/09PT/ - 8/T0//Pz8//z8/P/8vLy//Ly8v/y8vL/8fHx//Dx8f/x8fD/+/n2/4iEgf8AAAAmAAAADYiEgf/9/f3/ - /f39//z8/P/7+/v/z6ty/82oa//Wxa//uYAJ/9Owcf/4+fn/+Pj4/5Z8gP+WfID/lnyA/5Z8gP+WfID/ - lXyA/5V8gP+VfID/lXx//5V8f/+VfH//lXx///Ly8v/x8vH/8fHx//Dx8f/7+fb/iISB/wAAACYAAAAN - iISB//39/f/9/f3//Pz9//z8/P/8+/v/+/v7//v6+v/XtHP/w5EW/+vcuv/4+Pj/+Pj4//f49//39/b/ - 9/b2//X29v/19fX/9fX1//T19P/z9PT/9PTz//Lz8v/y8/L/8vLy//Hy8v/x8fH/8fHx//v59v+IhIH/ - AAAAJgAAAA2IhIH//f39//z9/f/9/f3//Pz9/+rq6v/r5+r/5+jl/+7j0P/SsDf/1LJE//bz6f/4+Pn/ - +Pf4//f3+P/29/f/9/b2//X29f/19fX/9PT0//T09P/09PT/8/Pz//Lz8//y8/P/8vLy//Lx8v/x8vL/ - +/n2/4iEgf8AAAAmAAAADYiEgf/9/f7//f39//39/f/8/P3/29XZ/+HZy/+0lWn/3s+6//Hpzv/Yujv/ - 3shw//j4+P/4+Pj/+Pj4//f39//29vb/9vb2//b19v/19fX/9PT0//T09P/08/T/8/Pz//Pz8v/y8vL/ - 8fLy//Hx8f/7+fb/iISB/wAAACYAAAANiISB//7+/f/+/f3//f39//z9/f/WzL//zKhv/7RwAP/Kpm// - +/v6/+vepf/l0ov/+fn5//j4+P/4+Pj/9/j4//f29v/29/b/9fb2//X19f/09fX/9PX0//T09P/z9PP/ - 8vPz//Py8//y8vL/8fLy//v59v+IhIH/AAAAJgAAAA2IhIH//v7+//7+/v/+/v3//f39/7uVXP+zdhD/ - uo9I/7Z6Df/p2cP/+/r6//r6+v+WfID/lnyA/5Z8gP+WfID/lnyA/5Z8gP+WfID/lXyA/5V8gP+VfID/ - lXyA/5V8f//z8/T/8/Pz//Lz8//y8vL/+/n2/4iEgf8AAAAmAAAADYiEgf/+/v7//v7+//3+/v/+/f3/ - 5tCv/+jVt//v59z/wY4j/8mZQf/5+Pf/+vr7//r6+v/5+fn/+fn5//j4+P/3+Pj/9/f3//b29v/29vb/ - 9fX2//X19f/09fX/9PT0//Tz9P/z8/P/8/Lz//Py8//7+fb/iISB/wAAACYAAAANiISB///+/v/+/v7/ - /v7+//7+/f/9/f3//f39//38/P/lz6f/yJwb/+HJiv/7+/r/+vr6//n6+f/5+fn/+fj4//j4+P/4+Pf/ - 9/f3//b29//19vb/9vb1//X19P/09PT/9PT0//T08//z8/P/8vLz//v59v+IhIH/AAAAJgAAAA2IhIH/ - //////7+///+/v7//f7+/+Ta4v/j3OL/2NPV/+zhz//dw2n/07Ew/+/mxP/6+vr/+vn6//n5+f/5+fj/ - +fj5//j4+P/49/f/9vb3//b39v/29fb/9fX1//X19f/19PT/9PT0//Tz8//z8vP/+/n2/4iEgf8AAAAm - AAAADYiEgf////////7///7////+/v7/2tvZ/+nezf+xgDH/2cWo//v59v/cwVD/28Bb//r7+//6+vr/ - +fr5//n5+f/5+fj/+Pj4//f4+P/39/f/9/f3//b29v/19vX/9fX1//X19P/09PX/8/T0//Pz8//7+fb/ - iISB/wAAACYAAAANiISB//////////7///7+//7+/v/Jtpr/t30i/7l+Cv/Bkkj/+vj1//Xw2v/y6cn/ - ln2A/5Z9gP+WfID/lnyA/5Z8gP+WfID/lnyA/5Z8gP+WfID/lnyA/5Z8gP+VfID/9fX1//T19f/09PT/ - 8/T0//v59v+IhIH/AAAAJgAAAA2KhoT2/////////////////////8ObW/+/izj/yK6J/7d9B//ewpj/ - /fz8//v7/P/7+/v/+/v7//r7+v/6+vr/+fn6//n5+f/5+fj/+Pj4//f3+P/39/b/9vb3//X29v/19fX/ - 9PX1//T09P/08/T/+/n2/4iEgf8AAAAmAAAADYqGhPb///////////////////7/+PLr//r38//+/v3/ - zqNP/8SQIP/17dz//Pz8//v8+//7+/v/+/r6//r6+v/6+fr/+fn5//n4+f/4+Pj/9/f4//f39//39/f/ - 9vb3//X29f/19fX/9fT0//T19P/7+fb/iISB/wAAACYAAAANioaE9v/////////////////////+//// - /v7+//7+/f/y5dH/zKMh/9i5Xv/8/P3//Pz8//z7+//7+/v/+/v7//r6+v/6+vn/+fn5//n4+f/4+Pj/ - +Pj3//f39//39/f/9vb2//X19f/19fX/9PT1//v59v+IhIH/AAAAJgAAAA2KhoT2//////////////// - //////////////7//v/+//79/f/p2Z//1bY3/+bUkf/9/fz//Pz8//v8/P/7+/v/+/r6//r6+v/5+vn/ - +fj5//j4+P/4+Pj/9/j3//b39v/29vf/9vX1//X19f/09fX/+/n2/4iEgf8AAAAmAAAADYuGhPb///// - //////////////////7//////v/+/////v7+//39/v/jznz/38dq//39/f/8/Pz//Pv8//z7+//7+/r/ - +vr7//r6+f/5+vn/+fn5//j5+P/3+Pf/+Pf3//f39v/39vb/9vb1//X19f/7+fb/iISB/wAAACYAAAAN - joqI9svJx//Lycf/y8nH/8vJx//Lycf/y8nH/8vJx//Lycf/y8nH/8vJx//Lycf/y8nH/8vJx//Lycf/ - y8nH/8vJx//Mysn/zcvK/83Myv/NzMr/zcvJ/8zKyP/Mysj/y8nH/8vJx//Lycf/y8nH/8vJx/+IhIH/ - AAAAIwAAAAuLiYf+5t7Y/9/X0f/e19H/3tfR/97X0f/e19H/3tfR/97X0f/e19H/3tfR/97X0f/e19H/ - 3tfR/97X0f/e19H/3tfR/97X0f/e19H/3tfR/97X0f/e19H/3tfR/5F5aP/e19H/kXlo/97X0f+ReWj/ - 3tfR/4iEgf8AAAAWAAAABpGMiXyIhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/iISB/4iEgf+IhIH/ - iISB/4iEgf+IhIH/i4aEgQAAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8oAAAA - EAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAAl5KP/5eSj/+Xko//l5KP/5eSj/+Xko// - l5KP/5eSj/+Xko//l5KP/5eSj/+Xko//l5KP/5eSj/+Xko//l5KP/5eSj//+/f7//fz9//v7+//6+vn/ - +Pn4//f39//19vb/9fT0//Pz8//y8vL/8fHx//Dw8P/w8PD/8PDw/5eSj/+Xko///v7+//39/f/k2eL/ - 4trh/9bR1P/o38z/9/f3//X19f/09PT/8vLz//Hx8f/x8fH/8PDw//Dw8P+Xko//l5KP///+///+/v7/ - 2trY/+fdzP+whDH/1sWm//f3+P/29vX/9fT0//Pz9P/y8vL/8fHx//Hw8f/w8PD/l5KP/5eSj/////// - /v7+/8i3mv+3gyL/uYQK/8CVR//29PL/9vf2/6uYmv+rl5r/qpea/6qXmf+qlpn/8PDw/5eSj/+Xko// - /////////v/Dnlv/v5A4/8iwiP+3gwf/28KV//j3+P/29/b/9fX1//Pz9P/y8vP/8vHx//Dw8f+Xko// - l5KP////////////+PTq//n38v/9/Pz/zadO/8SWIP/w6tf/9/f3//b19f/09PT/8/Pz//Ly8v/x8fH/ - l5KP/5eSj/////////////7//v/+/v7//f39//Dl0P/MqSH/17xc//f3+P/29/b/9fX1//Tz9P/z8vL/ - 8fHy/5eSj/+Xko///////////////////v/+//7+/v/8/P3/6Nqd/9W7N//k1Y//+Pf3//b29v/09fX/ - 8/Tz//Lz8v+Xko//l5KP//////////////////7//v/+/v7//f39//z8+//i0Xz/3spp//j4+P/39vf/ - 9fX1//T09P/z8/P/l5KP/5eSj//NzMr/zczK/83Myv/NzMr/zczK/83Myv/NzMr/zczK/83Myv/NzMr/ - zczK/83Myv/NzMr/zczK/5eSj/+Xko//4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/4NnT/+DZ0//g2dP/ - kXlo/+DZ0/+ReWj/4NnT/5F5aP+Xko//l5KP/5eSj/+Xko//l5KP/5eSj/+Xko//l5KP/5eSj/+Xko// - l5KP/5eSj/+Xko//l5KP/5eSj/+Xko//l5KP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAA= - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmConfigUser.vb b/GUIs.ClientSuite/frmConfigUser.vb deleted file mode 100644 index 80c884bf..00000000 --- a/GUIs.ClientSuite/frmConfigUser.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System.Configuration -Imports System.IO -Imports DigitalData.Modules.Logging -Public Class frmConfigUser - Private _Logger As Logger - - Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked - ' Specify that the link was visited. - Me.LinkLabel1.LinkVisited = True - ' Navigate to a URL. - System.Diagnostics.Process.Start("http://www.didalog.de/Support") - End Sub - - Private Sub frmUserBasics_Load(sender As Object, e As EventArgs) Handles Me.Load - _Logger = My.LogConfig.GetLogger() - - chkLogErrorsOnly.Checked = Not My.SysConfig.LogDebug - End Sub - - Private Sub btnLogFolder_Click(sender As Object, e As EventArgs) Handles btnLogFolder.Click - Process.Start(My.LogConfig.LogDirectory) - End Sub - - Private Sub btnAppFolder_Click(sender As Object, e As EventArgs) Handles btnAppFolder.Click - Dim oAppData = Application.LocalUserAppDataPath - Process.Start(oAppData) - End Sub - - Private Sub chkLogErrorsOnly_CheckedChanged(sender As Object, e As EventArgs) Handles chkLogErrorsOnly.CheckedChanged - Dim oLogDebug = Not chkLogErrorsOnly.Checked - My.LogConfig.Debug = oLogDebug - My.SysConfig.LogDebug = oLogDebug - My.SystemConfigManager.Save() - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/frmHome.Designer.vb b/GUIs.ClientSuite/frmHome.Designer.vb deleted file mode 100644 index 6967bbf2..00000000 --- a/GUIs.ClientSuite/frmHome.Designer.vb +++ /dev/null @@ -1,200 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmHome - Inherits BaseRibbonForm - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl() - Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup() - Me.NavBarGroupControlContainer1 = New DevExpress.XtraNavBar.NavBarGroupControlContainer() - Me.TreeList1 = New DevExpress.XtraTreeList.TreeList() - Me.TreeListColumn1 = New DevExpress.XtraTreeList.Columns.TreeListColumn() - Me.GridControl1 = New DevExpress.XtraGrid.GridControl() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.NavBarGroup2 = New DevExpress.XtraNavBar.NavBarGroup() - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.NavBarControl1.SuspendLayout() - Me.NavBarGroupControlContainer1.SuspendLayout() - CType(Me.TreeList1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'RibbonControl - ' - Me.RibbonControl.ExpandCollapseItem.Id = 0 - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem}) - Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 1 - Me.RibbonControl.Name = "RibbonControl" - Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl.Size = New System.Drawing.Size(1110, 146) - Me.RibbonControl.StatusBar = Me.RibbonStatusBar - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 630) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(1110, 21) - ' - 'NavBarControl1 - ' - Me.NavBarControl1.ActiveGroup = Me.NavBarGroup1 - Me.NavBarControl1.Controls.Add(Me.NavBarGroupControlContainer1) - Me.NavBarControl1.Dock = System.Windows.Forms.DockStyle.Left - Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1, Me.NavBarGroup2}) - Me.NavBarControl1.Location = New System.Drawing.Point(0, 146) - Me.NavBarControl1.Name = "NavBarControl1" - Me.NavBarControl1.OptionsNavPane.ExpandedWidth = 250 - Me.NavBarControl1.OptionsNavPane.ShowOverflowButton = False - Me.NavBarControl1.OptionsNavPane.ShowOverflowPanel = False - Me.NavBarControl1.PaintStyleKind = DevExpress.XtraNavBar.NavBarViewKind.NavigationPane - Me.NavBarControl1.Size = New System.Drawing.Size(250, 484) - Me.NavBarControl1.TabIndex = 2 - Me.NavBarControl1.Text = "NavBarControl1" - ' - 'NavBarGroup1 - ' - Me.NavBarGroup1.Caption = "Inbox" - Me.NavBarGroup1.ControlContainer = Me.NavBarGroupControlContainer1 - Me.NavBarGroup1.Expanded = True - Me.NavBarGroup1.GroupClientHeight = 369 - Me.NavBarGroup1.GroupStyle = DevExpress.XtraNavBar.NavBarGroupStyle.ControlContainer - Me.NavBarGroup1.Name = "NavBarGroup1" - ' - 'NavBarGroupControlContainer1 - ' - Me.NavBarGroupControlContainer1.Appearance.BackColor = System.Drawing.SystemColors.Control - Me.NavBarGroupControlContainer1.Appearance.Options.UseBackColor = True - Me.NavBarGroupControlContainer1.Controls.Add(Me.TreeList1) - Me.NavBarGroupControlContainer1.Name = "NavBarGroupControlContainer1" - Me.NavBarGroupControlContainer1.Size = New System.Drawing.Size(250, 367) - Me.NavBarGroupControlContainer1.TabIndex = 0 - ' - 'TreeList1 - ' - Me.TreeList1.Appearance.Empty.Options.UseBackColor = True - Me.TreeList1.Appearance.Row.BackColor = System.Drawing.Color.Transparent - Me.TreeList1.Appearance.Row.Options.UseBackColor = True - Me.TreeList1.Appearance.SelectedRow.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.TreeList1.Appearance.SelectedRow.Options.UseFont = True - Me.TreeList1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder - Me.TreeList1.Columns.AddRange(New DevExpress.XtraTreeList.Columns.TreeListColumn() {Me.TreeListColumn1}) - Me.TreeList1.Cursor = System.Windows.Forms.Cursors.Default - Me.TreeList1.CustomizationFormBounds = New System.Drawing.Rectangle(-252, 456, 252, 236) - Me.TreeList1.Dock = System.Windows.Forms.DockStyle.Fill - Me.TreeList1.Location = New System.Drawing.Point(0, 0) - Me.TreeList1.Name = "TreeList1" - Me.TreeList1.BeginUnboundLoad() - Me.TreeList1.AppendNode(New Object() {"Todos"}, -1) - Me.TreeList1.AppendNode(New Object() {"Validierungen"}, 0) - Me.TreeList1.EndUnboundLoad() - Me.TreeList1.OptionsBehavior.Editable = False - Me.TreeList1.OptionsSelection.EnableAppearanceFocusedCell = False - Me.TreeList1.OptionsView.FocusRectStyle = DevExpress.XtraTreeList.DrawFocusRectStyle.None - Me.TreeList1.OptionsView.ShowIndentAsRowStyle = True - Me.TreeList1.Size = New System.Drawing.Size(250, 367) - Me.TreeList1.TabIndex = 0 - Me.TreeList1.ViewStyle = DevExpress.XtraTreeList.TreeListViewStyle.TreeView - ' - 'TreeListColumn1 - ' - Me.TreeListColumn1.Caption = "TreeListColumn1" - Me.TreeListColumn1.FieldName = "TreeListColumn1" - Me.TreeListColumn1.Name = "TreeListColumn1" - Me.TreeListColumn1.Visible = True - Me.TreeListColumn1.VisibleIndex = 0 - ' - 'GridControl1 - ' - Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridControl1.Location = New System.Drawing.Point(250, 146) - Me.GridControl1.MainView = Me.GridView1 - Me.GridControl1.MenuManager = Me.RibbonControl - Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(860, 484) - Me.GridControl1.TabIndex = 3 - Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) - ' - 'GridView1 - ' - Me.GridView1.GridControl = Me.GridControl1 - Me.GridView1.Name = "GridView1" - ' - 'NavBarGroup2 - ' - Me.NavBarGroup2.Caption = "Analysis" - Me.NavBarGroup2.Name = "NavBarGroup2" - ' - 'frmHome - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1110, 651) - Me.Controls.Add(Me.GridControl1) - Me.Controls.Add(Me.NavBarControl1) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.RibbonControl) - Me.Name = "frmHome" - Me.Ribbon = Me.RibbonControl - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "Home" - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.NavBarControl1.ResumeLayout(False) - Me.NavBarGroupControlContainer1.ResumeLayout(False) - CType(Me.TreeList1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents NavBarControl1 As DevExpress.XtraNavBar.NavBarControl - Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup - Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents NavBarGroupControlContainer1 As DevExpress.XtraNavBar.NavBarGroupControlContainer - Friend WithEvents TreeList1 As DevExpress.XtraTreeList.TreeList - Friend WithEvents TreeListColumn1 As DevExpress.XtraTreeList.Columns.TreeListColumn - Friend WithEvents NavBarGroup2 As DevExpress.XtraNavBar.NavBarGroup -End Class diff --git a/GUIs.ClientSuite/frmHome.resx b/GUIs.ClientSuite/frmHome.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/frmHome.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmHome.vb b/GUIs.ClientSuite/frmHome.vb deleted file mode 100644 index 62bde727..00000000 --- a/GUIs.ClientSuite/frmHome.vb +++ /dev/null @@ -1,24 +0,0 @@ -Imports DevExpress.XtraGrid -Imports DevExpress.XtraTreeList - -Public Class frmHome - Private Sub frmInbox_Load(sender As Object, e As EventArgs) Handles Me.Load - Dim oCommonCommands As New ClassCommonCommands(My.LogConfig) - - Dim oGridPatcher As New ClassControlPatcher(Of GridControl)(Me) - oGridPatcher. - ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings). - ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings) - - Dim oTreeListPatcher As New ClassControlPatcher(Of TreeList)(Me) - oTreeListPatcher. - ProcessContainer(AddressOf TreeListDefaults.DefaultTreeListSettings) - - Dim oSQL As String = "SELECT * FROM VWIDB_DOC_METADATA_DE;" - My.Channel.CreateDatabaseRequest("Doc Metadata", True) - Dim oTable = My.Channel.ReturnDatatable(oSQL) - My.Channel.CloseDatabaseRequest() - - GridControl1.DataSource = oTable.Table - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/frmMain.Designer.vb b/GUIs.ClientSuite/frmMain.Designer.vb deleted file mode 100644 index d8636b59..00000000 --- a/GUIs.ClientSuite/frmMain.Designer.vb +++ /dev/null @@ -1,390 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmMain - Inherits BaseRibbonForm - - 'Form overrides dispose to clean up the component list. - - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) - Dim PushTransition2 As DevExpress.Utils.Animation.PushTransition = New DevExpress.Utils.Animation.PushTransition() - Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.MainMenu = New DevExpress.XtraBars.Ribbon.ApplicationMenu() - Me.BarButtonExit = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonUserSettings = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonConnectionSettings = New DevExpress.XtraBars.BarButtonItem() - Me.LabelCurrentUser = New DevExpress.XtraBars.BarStaticItem() - Me.LabelCurrentMachine = New DevExpress.XtraBars.BarStaticItem() - Me.LabelCurrentVersion = New DevExpress.XtraBars.BarStaticItem() - Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() - Me.SkinDropDownButtonItem1 = New DevExpress.XtraBars.SkinDropDownButtonItem() - Me.BarButtonDeleteControl = New DevExpress.XtraBars.BarButtonItem() - Me.LabelCurrentLanguage = New DevExpress.XtraBars.BarStaticItem() - Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() - Me.BarWorkspaceMenuItem1 = New DevExpress.XtraBars.BarWorkspaceMenuItem() - Me.WorkspaceManager1 = New DevExpress.Utils.WorkspaceManager() - Me.LabelServiceOnline = New DevExpress.XtraBars.BarStaticItem() - Me.BarButtonUserManager = New DevExpress.XtraBars.BarButtonItem() - Me.LabelServiceOffline = New DevExpress.XtraBars.BarStaticItem() - Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonFormDesigner = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem() - Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageAdmin = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup6 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager() - Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView() - Me.DockManager = New DevExpress.XtraBars.Docking.DockManager() - Me.MainNav = New DevExpress.XtraBars.Navigation.OfficeNavigationBar() - Me.NavbarItemHome = New DevExpress.XtraBars.Navigation.NavigationBarItem() - Me.NavbarItemSearch = 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.MainMenu, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DocumentManager, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DockManager, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.MainNav, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'RibbonControl - ' - Me.RibbonControl.ApplicationButtonDropDownControl = Me.MainMenu - 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.BarButtonItem5}) - Me.RibbonControl.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl.MaxItemId = 26 - Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always - Me.RibbonControl.Name = "RibbonControl" - Me.RibbonControl.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1) - Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1) - Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageAdmin}) - Me.RibbonControl.Size = New System.Drawing.Size(1139, 143) - Me.RibbonControl.StatusBar = Me.RibbonStatusBar - ' - 'MainMenu - ' - Me.MainMenu.ItemLinks.Add(Me.BarButtonExit) - Me.MainMenu.ItemLinks.Add(Me.BarButtonUserSettings) - Me.MainMenu.ItemLinks.Add(Me.BarButtonConnectionSettings) - Me.MainMenu.Name = "MainMenu" - Me.MainMenu.Ribbon = Me.RibbonControl - ' - 'BarButtonExit - ' - Me.BarButtonExit.Caption = "Beenden" - Me.BarButtonExit.Id = 1 - Me.BarButtonExit.ImageOptions.Image = CType(resources.GetObject("BarButtonExit.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonExit.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonExit.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonExit.Name = "BarButtonExit" - ' - 'BarButtonUserSettings - ' - Me.BarButtonUserSettings.Caption = "Benutzereinstellungen" - Me.BarButtonUserSettings.Id = 2 - Me.BarButtonUserSettings.ImageOptions.Image = CType(resources.GetObject("BarButtonUserSettings.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonUserSettings.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonUserSettings.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonUserSettings.Name = "BarButtonUserSettings" - ' - 'BarButtonConnectionSettings - ' - Me.BarButtonConnectionSettings.Caption = "Verbindungseinstellungen" - Me.BarButtonConnectionSettings.Id = 14 - Me.BarButtonConnectionSettings.ImageOptions.Image = CType(resources.GetObject("BarButtonConnectionSettings.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonConnectionSettings.Name = "BarButtonConnectionSettings" - ' - 'LabelCurrentUser - ' - Me.LabelCurrentUser.Caption = "Current User" - Me.LabelCurrentUser.Id = 3 - Me.LabelCurrentUser.ImageOptions.Image = CType(resources.GetObject("LabelCurrentUser.ImageOptions.Image"), System.Drawing.Image) - Me.LabelCurrentUser.Name = "LabelCurrentUser" - ' - 'LabelCurrentMachine - ' - Me.LabelCurrentMachine.Caption = "Current Machine" - Me.LabelCurrentMachine.Id = 4 - Me.LabelCurrentMachine.ImageOptions.Image = CType(resources.GetObject("LabelCurrentMachine.ImageOptions.Image"), System.Drawing.Image) - Me.LabelCurrentMachine.Name = "LabelCurrentMachine" - ' - 'LabelCurrentVersion - ' - Me.LabelCurrentVersion.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right - Me.LabelCurrentVersion.Caption = "Current Version" - Me.LabelCurrentVersion.Id = 5 - Me.LabelCurrentVersion.ImageOptions.Image = CType(resources.GetObject("LabelCurrentVersion.ImageOptions.Image"), System.Drawing.Image) - Me.LabelCurrentVersion.ImageOptions.LargeImage = CType(resources.GetObject("LabelCurrentVersion.ImageOptions.LargeImage"), System.Drawing.Image) - Me.LabelCurrentVersion.Name = "LabelCurrentVersion" - ' - 'BarButtonItem1 - ' - Me.BarButtonItem1.Caption = "File Test" - Me.BarButtonItem1.Id = 8 - Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem1.Name = "BarButtonItem1" - ' - 'SkinDropDownButtonItem1 - ' - Me.SkinDropDownButtonItem1.Id = 10 - Me.SkinDropDownButtonItem1.Name = "SkinDropDownButtonItem1" - ' - 'BarButtonDeleteControl - ' - Me.BarButtonDeleteControl.Caption = "Delete Control" - Me.BarButtonDeleteControl.Id = 13 - Me.BarButtonDeleteControl.ImageOptions.Image = CType(resources.GetObject("BarButtonDeleteControl.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonDeleteControl.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonDeleteControl.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonDeleteControl.Name = "BarButtonDeleteControl" - ' - 'LabelCurrentLanguage - ' - Me.LabelCurrentLanguage.Caption = "CurrentLanguage" - Me.LabelCurrentLanguage.Id = 15 - Me.LabelCurrentLanguage.ImageOptions.Image = CType(resources.GetObject("LabelCurrentLanguage.ImageOptions.Image"), System.Drawing.Image) - Me.LabelCurrentLanguage.Name = "LabelCurrentLanguage" - ' - 'BarButtonItem2 - ' - Me.BarButtonItem2.Caption = "License Test" - Me.BarButtonItem2.Id = 16 - Me.BarButtonItem2.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem2.Name = "BarButtonItem2" - ' - 'BarWorkspaceMenuItem1 - ' - Me.BarWorkspaceMenuItem1.Caption = "BarWorkspaceMenuItem1" - Me.BarWorkspaceMenuItem1.Id = 17 - Me.BarWorkspaceMenuItem1.Name = "BarWorkspaceMenuItem1" - Me.BarWorkspaceMenuItem1.WorkspaceManager = Me.WorkspaceManager1 - ' - 'WorkspaceManager1 - ' - Me.WorkspaceManager1.TargetControl = Me - Me.WorkspaceManager1.TransitionType = PushTransition2 - ' - 'LabelServiceOnline - ' - Me.LabelServiceOnline.Caption = "Service Online" - Me.LabelServiceOnline.Id = 18 - Me.LabelServiceOnline.ImageOptions.Image = CType(resources.GetObject("LabelServiceOnline.ImageOptions.Image"), System.Drawing.Image) - Me.LabelServiceOnline.Name = "LabelServiceOnline" - ' - 'BarButtonUserManager - ' - Me.BarButtonUserManager.Caption = "User Manager" - Me.BarButtonUserManager.Id = 19 - Me.BarButtonUserManager.ImageOptions.Image = CType(resources.GetObject("BarButtonUserManager.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonUserManager.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonUserManager.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonUserManager.Name = "BarButtonUserManager" - ' - 'LabelServiceOffline - ' - Me.LabelServiceOffline.Caption = "Service Offline" - Me.LabelServiceOffline.Id = 20 - Me.LabelServiceOffline.ImageOptions.Image = CType(resources.GetObject("LabelServiceOffline.ImageOptions.Image"), System.Drawing.Image) - Me.LabelServiceOffline.Name = "LabelServiceOffline" - ' - 'BarButtonItem3 - ' - Me.BarButtonItem3.Caption = "DocTest" - Me.BarButtonItem3.Id = 21 - Me.BarButtonItem3.ImageOptions.Image = CType(resources.GetObject("BarButtonItem3.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem3.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem3.Name = "BarButtonItem3" - ' - 'BarButtonFormDesigner - ' - Me.BarButtonFormDesigner.Caption = "Form Designer" - Me.BarButtonFormDesigner.Id = 23 - Me.BarButtonFormDesigner.ImageOptions.Image = CType(resources.GetObject("BarButtonFormDesigner.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonFormDesigner.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonFormDesigner.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonFormDesigner.Name = "BarButtonFormDesigner" - ' - 'BarButtonItem4 - ' - Me.BarButtonItem4.Caption = "Workflow Step" - Me.BarButtonItem4.Id = 24 - 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.Name = "BarButtonItem4" - ' - 'RibbonPageStart - ' - Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) - Me.RibbonPageStart.Name = "RibbonPageStart" - Me.RibbonPageStart.Text = "Start" - ' - 'RibbonPageGroup3 - ' - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem1) - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem3) - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem2) - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem4) - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem5) - Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "DEBUG" - ' - 'RibbonPageAdmin - ' - Me.RibbonPageAdmin.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup6, Me.RibbonPageGroup1}) - Me.RibbonPageAdmin.Name = "RibbonPageAdmin" - Me.RibbonPageAdmin.Text = "Administration" - ' - 'RibbonPageGroup6 - ' - Me.RibbonPageGroup6.ItemLinks.Add(Me.BarButtonUserManager) - Me.RibbonPageGroup6.Name = "RibbonPageGroup6" - Me.RibbonPageGroup6.Text = "Benutzer und Gruppen" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonFormDesigner) - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "Inhalte" - ' - 'RibbonStatusBar - ' - Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentUser) - Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentMachine) - Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentVersion) - Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentLanguage) - Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOnline) - Me.RibbonStatusBar.ItemLinks.Add(Me.LabelServiceOffline) - Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 546) - Me.RibbonStatusBar.Name = "RibbonStatusBar" - Me.RibbonStatusBar.Ribbon = Me.RibbonControl - Me.RibbonStatusBar.Size = New System.Drawing.Size(1139, 31) - ' - 'DocumentManager - ' - Me.DocumentManager.MdiParent = Me - Me.DocumentManager.MenuManager = Me.RibbonControl - Me.DocumentManager.View = Me.TabbedView1 - Me.DocumentManager.ViewCollection.AddRange(New DevExpress.XtraBars.Docking2010.Views.BaseView() {Me.TabbedView1}) - ' - 'TabbedView1 - ' - Me.TabbedView1.DocumentProperties.AllowPin = True - Me.TabbedView1.EnableFreeLayoutMode = DevExpress.Utils.DefaultBoolean.[True] - ' - 'DockManager - ' - Me.DockManager.DockingOptions.HideImmediatelyOnAutoHide = True - Me.DockManager.Form = Me - Me.DockManager.TopZIndexControls.AddRange(New String() {"DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.StatusBar", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl"}) - ' - 'MainNav - ' - 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.Location = New System.Drawing.Point(0, 501) - Me.MainNav.Name = "MainNav" - Me.MainNav.Size = New System.Drawing.Size(1139, 45) - Me.MainNav.TabIndex = 4 - Me.MainNav.Text = "OfficeNavigationBar1" - ' - 'NavbarItemHome - ' - Me.NavbarItemHome.Name = "NavbarItemHome" - Me.NavbarItemHome.Text = "Home" - ' - 'NavbarItemSearch - ' - Me.NavbarItemSearch.Name = "NavbarItemSearch" - Me.NavbarItemSearch.Text = "Search" - ' - 'NavbarItemWorkflow - ' - Me.NavbarItemWorkflow.Name = "NavbarItemWorkflow" - 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 - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1139, 577) - Me.Controls.Add(Me.MainNav) - Me.Controls.Add(Me.RibbonStatusBar) - Me.Controls.Add(Me.RibbonControl) - Me.IsMdiContainer = True - Me.Name = "frmMain" - Me.Ribbon = Me.RibbonControl - Me.StatusBar = Me.RibbonStatusBar - Me.Text = "EDMI" - CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.MainMenu, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DocumentManager, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DockManager, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.MainNav, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPageStart As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents MainMenu As DevExpress.XtraBars.Ribbon.ApplicationMenu - Friend WithEvents BarButtonExit As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonUserSettings As DevExpress.XtraBars.BarButtonItem - Friend WithEvents LabelCurrentUser As DevExpress.XtraBars.BarStaticItem - Friend WithEvents LabelCurrentMachine As DevExpress.XtraBars.BarStaticItem - Friend WithEvents LabelCurrentVersion As DevExpress.XtraBars.BarStaticItem - Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents NativeMdiView1 As DevExpress.XtraBars.Docking2010.Views.NativeMdi.NativeMdiView - Friend WithEvents DocumentManager As DevExpress.XtraBars.Docking2010.DocumentManager - Friend WithEvents TabbedView1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView - Friend WithEvents DockManager As DevExpress.XtraBars.Docking.DockManager - Friend WithEvents SkinDropDownButtonItem1 As DevExpress.XtraBars.SkinDropDownButtonItem - Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents BarButtonDeleteControl As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonConnectionSettings As DevExpress.XtraBars.BarButtonItem - Friend WithEvents LabelCurrentLanguage As DevExpress.XtraBars.BarStaticItem - Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarWorkspaceMenuItem1 As DevExpress.XtraBars.BarWorkspaceMenuItem - Friend WithEvents WorkspaceManager1 As DevExpress.Utils.WorkspaceManager - Friend WithEvents LabelServiceOnline As DevExpress.XtraBars.BarStaticItem - Friend WithEvents BarButtonUserManager As DevExpress.XtraBars.BarButtonItem - Friend WithEvents RibbonPageAdmin As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup6 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents LabelServiceOffline As DevExpress.XtraBars.BarStaticItem - Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents MainNav As DevExpress.XtraBars.Navigation.OfficeNavigationBar - Friend WithEvents NavbarItemHome As DevExpress.XtraBars.Navigation.NavigationBarItem - Friend WithEvents NavbarItemSearch As DevExpress.XtraBars.Navigation.NavigationBarItem - Friend WithEvents NavbarItemWorkflow As DevExpress.XtraBars.Navigation.NavigationBarItem - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents BarButtonFormDesigner As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem -End Class diff --git a/GUIs.ClientSuite/frmMain.resx b/GUIs.ClientSuite/frmMain.resx deleted file mode 100644 index 9a7f64cc..00000000 --- a/GUIs.ClientSuite/frmMain.resx +++ /dev/null @@ -1,477 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 174, 17 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAENsb3NlO0V4aXQ7QmFycztSaWJi - b247RgO56AAAALRJREFUOE+tkkEKwkAQBD0F/Vd+4kdUIkg0+BY9+RR/s3YvO0vv7HiQeCjE7ukiBjfv - /ZjW8HfBE5xdpkyANzVTAYshpZydJDcOpRvAw3IVzDww8F0leSzdYp0KyMUdHoEfX8ttKCCNREHXjEkk - IJ0EWTcm3wTNYxcBf053Gwm6sYGuk3iBf2E3EL3YUDC5Q46t85L6Z1PBC+yCsZEl+NwC3uZcBYTF3WXK - DOqYeMHPrBSM6QNLooCecqpo4AAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAENsb3NlO0V4aXQ7QmFycztSaWJi - b247RgO56AAAAXZJREFUWEftlkFOwzAQRbvqfUAgUMWSm3A9KtEuOAuHAMEFwMxH8yPb+XbGIBQkunit - 6vnjeUmTtJuU0qp8vTzd3aY1OAn8C4F3sTYREXgzbozHbC3K0dgZr9lawZIAhl96fWuMSGD41nsvDCnR - E8Cp26FG7HNUYhqe9eJMfHh9ArWWALg3io0825NQwyH+4PUC1BmaFZ29oTZUEsc8l2XlcIAMgzLg7Lkh - sbVaYujICXIMy0BG70zMhnu9Oxwgx7AMVLQkho+cID8iAGYSOagZoeEAPWyUgQZSAmtGeDhA33cEWt85 - rwnVI0HfqIAcTlAzwhLoYaMMVLRuNbUWkkA+KtC7z1vXxKIEcgzLgBN5wvWeE/leBcgxLANG78jrbOSJ - WYAMgyrQutoPWaZm6EygzlBdxE/nNTfxDDbqDSdK4soY/jl+Mc69Hh1OJgl7PzOefb1gSQBAAvYjwwkk - 0CuHg4gA6P6xXODHf0p/lZPA3xFYj7T5BN17IBCO78cXAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABHdEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO0Zp - eDtQdWJsaWM7U2V0dGluZ3M7T3B0aW9ucztDdXN0b21pejtHcm91cDtUZWFtaQsTiAAAARBJREFUOE+l - 0z9qAlEQx/E1Bi1t7D1BCgXb3EBT2nkBmxQSW5HtPUCKdIGcwL2CFnuI4A0EFSRuvr9lHsyTlSWk+PCY - cf68XTUpiuJfKpN/kaRpek8D7ziYDzwgqouCG11sUThDRHU+uLfxB2HABL4nGqDpfpsot3PxAr4nGqDp - vlmU+0SONnx9yQeaHg0YrbLENNHH2U7F5Wd+QAdHNZqDFWnQG2a42qm4XOAHyBxhwJQCbVLxxRoCxcpH - Ax7xhGfToEDX1UY1rdGzU7HyfTXq5SzxjT1eTIsCPbOurYYeuVedFit/1oAvhGt77fFqM6Co9ganm8Yg - p6DuHTTD81eioP5bqPqHBSpw/O/AclnyC9lwIPbajFPHAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABHdEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO0Zp - eDtQdWJsaWM7U2V0dGluZ3M7T3B0aW9ucztDdXN0b21pejtHcm91cDtUZWFtaQsTiAAAAsFJREFUWEfF - 1k+ITWEYx/EZ/8IwslQWNlJylcJM/hU76U7drBAWWCh2YiGb6W5sbSULRSQrf0aNPxmE/JdpRlZI2E0i - orm+v5n3bZ6ennMdV6E+Ofd53/f3vOfcc86dtkaj8V+FxX8pLJZVr9fX4zI+4gc+4So2RPMjYbEMmnTj - JxoB1ddF67ywWAYNTpmGkbPROi8slkGDJ66h9zRa54XFMmhwFKOmofc6WueFxYyQHRiAvcnuYifacRhR - c9F9UIlyrbAoLD5iwiL6NwMjiMalGmVbYZGFM/HZBEW+ohO3TM16hulRvhUWWdhlgppZi4uulu2Ksr2w - yOJNLqyI5h1zNfmAjijbC4ss3mfCmtmP5a72HRuj3EhYJOCeCWzmAXS/HMd9nMRv73wrLBLSj6ih11+w - voIp0ZgXFlNA0Xs+0/hSTHNr50Pvi8fYq8923AuLwsKixyvTC2oy9Ou3GyuwB+9g5+kFdgJzq719bV7Y - XFhQSwFFNL7G1byFxgLMK70BYcEZRMGn0/gFV79jjKQmrzCcG3ph44yQqTiAN1CDtzgEXfotqZbpyWnv - 6b2yutZ7aQ7HldSkkeSmnViVP4eNMwWa49nmeFL6fzOGMLYBmncTOorn2I4byBu4mWoa05wuxBsgbBF0 - +Q8WjOtX8LzmKcTQ2b1AblpEczR3YgOEzYIu7yDyZdVbreaa69LbR1Tzta5DgdiK3EhnqqsgOs51zZn4 - Clisu9k/PtZDnMMjU7PsldClzs17Uk10nDehOeMbYPEyfDFhrdAGhlJ4dh25eWbvCRnWBsq+dpvRBl66 - 8NvwG1DNzhnUBr65sFYsJiw3sV9BNdVEx+FX8N6FtUp/mi0h1N+E1zCQjnN9G8Y3YO/wVuSgpPXHsFUK - MVZCZ/p3L6I/oRBHr9mxs0vyBvJnjZV7FZeRg5rQj5EEY31tvwDXIzKeLFW7IwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAtdEVYdFRpdGxlAERCO1NvdXJjZTtTdG9yO2RhdGFz - b3VyY2U7RGF0YWJhc2U7RWRpdCj2upwAAAGlSURBVFhHxZUxTsNAEEVT0CPRcQMKCiQoqBGUkGtQIqoU - IAWOQMdNkGgo0iKUjktAE6QUSCz/ITtydmZDvF7FxZOc2fn/TxyPMwgh9Ipb3CRucZO4xc/JdZNtcSKu - xKN4Fu/iQ3xXcE2NM3roRYN24eVlucVKsC9uxasImaDFAy83yy2qeSimwjPNAa+hl2UKUAk8oy5MvSxT - ADXPInEJZl6WKYCa55G4BHMvyxSA5khcglYD9P4T9P4Q9r6GI3EhSr2I8Bp5WaYAauYZeBN34lTkvorR - 4oFX9hp+iRfxIC7FmdgTO2KrgmtqnNFDLxq0tU/va3jjZZkCqPknEndlfH7/NBCHIlRwnRyg5AZ44Ysh - UgOUWsM43AyRGqDEGqa++dLn1ABd1/BY5qnbDos7khqgyxoeyXhVeA3nxddw1QPX5C8cUgPk/Bu2DofU - AG03YIyuMvdCa5bC0ZhwkGGbNcwKB3QmHGQK665hVjiQZcIB04pdcSBYxdQaYlaHxMF13YQDWSY8B5k1 - w9YKB7TGLAeZxaH/hgNaY5aDzJoDrBUOIYTBL0gqUmOSnmecAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl - cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAfhJREFUWEfF1rFLVWEYx3FBFweHwGhVamnIvdUQ - CmwI+mOiIUIXwV10cQ8aGoVcbFWCiIYgAiVHsWgwSDj+fofzHN7nvV+vDt7r8Fne87zP99x7HZxomuZW - DRw8X9m5jmV5J7/kf+dY3ssLoTtJ9FLcaLiyIc0VtoXu9qKX4kbDhadCQfJSaEcreiluNFzw104x8kFo - Ryt6KW40XPguFCM/hHa0opfiRsOFv0Ix8ltoRyt6KW40XKDQZf4J7WhFL8WNhjuLQqFhfId29b0UNxru - bApFhvEd2tX3UtxouLMmFBnGd2hX30txo+HOfTkRChHP+g7t6nspbjRceCMUI6+EdrSil+JGw4VHQjHi - WdrRil6KGw1XPgoFS7tCd3vRS3Gj4cqCnAmFzc88Q3d70Utxo2HwTE6ljv8RP6M7SfRS3Gj4Enfltfgn - +SRv5Z7Q7IDopbjRcGUSzmpTcJZEL8WNhguP5bM8KM5q/uv/Ip6l563opbjB8JysyDeJ33pPpqWenZED - iTnfWZV5SbPRS3Erhu7Ilvj/vVhY2pcn4q/bluSr0Kx3eJd3XusFHspPoWW18w49q3mnd/e9FDc9nJVD - oQU3wbtno0cvsF4Mj8p69OgFRvnpw2H06AXowo2LHr3AUT08AkfRG3iBccPDccLDccLD8WkmLgAKdExB - J+0x6AAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 - RGlhZ3JhbTtIaWVyYXI7TmV0Tg8qRAAAAMNJREFUWEft0rENwjAQBdAsyDoMwBKMQOuS7Q4cYQlFT4cj - Badx8VL8hP+vYImIUzEciaFcbs/YgR3CUDCSYYcwFIxk2CEMBSMZdghDwUiGHcJQMJJhhzAUjGTYIQwF - Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 - +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAEJ1aWxkO1NldHRpbmdzO0N1c3Rv - bWl6O09wdGlvbnNZCaCYAAAAvklEQVQ4T72RQQoCMQxFB7qYY8wZ6j0E7+HOxRxAu/c44wFcz1FcFxTj - /5DBBmaa4sLAIyTk/6ZtJyKGlJI4mHlTEA5txX8MgBdm3hSP+0lKlljptxlsUWpaDF5gBv1CqfEM2Ov2 - 51s4XKYdctYcWgx4MsUCRnAEb82sIakbzBgKOvykoID16Bn0ui5PpOgKBs2s2Y9VAwxkwLUpGNDjlWjC - mv3sGUTw8wbuG4BgDNZQQdsv1ICA1+GbxG9fug/ssNACwjT8OgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAEJ1aWxkO1NldHRpbmdzO0N1c3Rv - bWl6O09wdGlvbnNZCaCYAAABy0lEQVRYR82VPU7DQBSEc4O0UZQ2TZooB6HMRZCoIyFXdFyDE3AAKqrQ - 0keIBkU0EQixzET7nJeXifAPllnpU9azb2d27bUzSCn1ihQjRVGkBnCe9PNIUVC7VQknUvS4HdUmeimk - 6MlGtVtehPT0SDHQuLVeQN5FK6JnRIpGNmjcWi8A/EVTviVSJG8Pl+kc3187lBwar1WdgSYziBSJMjI+ - Xh9Rcmi8VnUGmswgUiTKyHh/ut2Hcuf85bWqM6K3R4pEGTUlenukSJRRU6K3R4pEGTUlenukSJRRRZ7B - 0KP8DSkSTFTmihewcawvru+nYJuZKn9DigRGKizC8AFCRmCM/hJcoT8HKTM3T9aAkc8pO5Ec8BsbGuag - O7AAE3ADPjPsU+MYa1hbLuIk2BBhCi6AuzLjKrB2bDknwYYIU/CZL2HI3akwxcLnHIV6QpCCp30N+Mx5 - iy2Ad2UFZhn2qdn4xOcchXpc0DmGMONp54Hjc7aAFcY4v4SaG2ct5+zfDhlOMFGFergAvmY05WGzgBnG - 4gJ4J2zcarfMkeEEE1Wo518soNdH0PshJN29hlWBYTcfoqrArJtPcR1oCMpdod/+z6gNCKn4d5wGP9ko - qHzFAnr7AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA9dEVYdFRpdGxlAE5ldztQYWdlO0JhcnM7UmliYm9u - O1N0YW5kYXJkO0l0ZW07Qmxhbms7RGVmYXVsdDtFbXB0eTsTBFLtAAAAS0lEQVQ4T2P4//8/RRjOaGlp - +Y8H/4PSxsiaQRjFAHwAJN/X13cX3RCSDACCX+iGkGQAMgYC0gxABqMGjBoAAjgNIAVjGEAe/s8AAJ6c - UrL1AeEIAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA9dEVYdFRpdGxlAE5ldztQYWdlO0JhcnM7UmliYm9u - O1N0YW5kYXJkO0l0ZW07Qmxhbms7RGVmYXVsdDtFbXB0eTsTBFLtAAAAqklEQVRYR+2SQQqFMAxEPZ/n - 6rZH6NG6Ev4hdBEzYOFbB1GRcZPAQzo2yVt0MLNPoaESGiqhoRIaKqEhSCnZTSZndNB7gO0ANATe5J/r - hfs556WUMvqxn7U7/0ND8ESg1kolZAIoJiEVQPUScgHUJjFD4hMBVJPwf4eH2aAheCJwws+v0D00BGh8 - q7ZZdA8NQQiEQAiEQAiEQAig6U36+Q0aKqGhEhrqsGEFMnodJsvjoggAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS - aWJib247U3RhbmRhcmQ7Y1ZIMAAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlO - q4sHSf0YBlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgP - y+QzUIN+ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQ - hiM0+DBaI5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS - aWJib247U3RhbmRhcmQ7Y1ZIMAAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1Vcxaom - D57pek1ehLj4FilSP9Dd0LtSyr8ixZlIcSZSvDzf/okm6+DPLVKsQVfgBdzVczcu5x68gqPP90gRBpZ/ - gAK+QWpEzWA5vcz4BHLESsDFA+BqGo3sCF9uMHPf9v06GLj4BNqA3hGqnOcH1bUSCC6Tx2psg7ZGpMqJ - FGEwMiPS5USKMHl6RgyVEynC2LI1YricSBFmRTRiuJxIEQERaoQnVU6kiJAtohFLOZCZEVJkyAbqmduA - 5cVUmRFSZEhAVG4sI1RmhBQRoojedqV1j5AiAnrL+czDT1Rlt0gR5t5yuzM8QoowZsqNoRFShIlE5Sfg - iz3pEVKEYaTcSI1YCbi4B2/V6AN6yg014h10/5Bcg69qzJZbhh9xBjdtD1kJBJcJR3B1qpy4HI5ghiwn - UrQgwP9Df+6iycr/ls9EijOR4kykOBMpzqPsfgDZ5w1jF/MagwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAtdEVYdFRpdGxlAEZvbnQ7Q29sb3I7Q2hhbmdlO0Jh - cnM7UmliYm9uO1N0YW5kYXJkO1GA2IIAAAJ2SURBVFhHxdY9jExRGMbx9ZUIovCxEaWKhFWshuiUstEL - IrG+ClEICh2j8hG6rfUsjSAShU5CshGFaCQ0hI74Nv7PzXkn75z7ZMwqRvHL7rznnPc5c3PP3DvW7Xb/ - K1scJVscJVscJVscJVuUqfP3BtmDbvIJK+Hm9rgcWxTXILmNvAE5Cje3x+XYorgGxVp8Q72BJ3Dze1yO - LYprUJxEhD5O/8sE3JqGy7FFcQ2KZ4jAI3ibPl+HW9NwObYorgG2IsJ+YhzXUu0jlsKttTm2KK4BriLC - Hpba9lSTvajXNVyOLYppsATvEEGHofoCvC41iY21uBxbFNMgn/0fWIMYu4QY+40NyGsbLscWxTS4hQi5 - X2phG2JMOsjjjTqj0+lMtoqhWlyf/UOo57xCjOtkLEbfnNxf4egPzarFJxDNv2MV6jkXEXNkN/rmRO8I - n88G8tm/W2o1/QjlDcyib4765vBhN1A3HpZu1HXIvbSBXviwG7gCFzCMs4jg+Ob7IlxsuJSFupHy2Z+v - l2hd9vzZhosWYqo0CqcRY85CvMFnPMccWpe9aK6EDRctxE1E+C+sRw50NkHPg2XYjIlzncs7qvAGYwN/ - iFYjn/0HqMOcLbiDL4ir8GH6wo2D1QYmqQ/cQD77sh91WE2/iLr8x5Gfigcwp9AcLjZcGHyKCNc73wpE - Q0eB76GXlBmcwUboHljEX/VYrs+ZDZd64hAeIV8x0X1zDDpN+l3QE7VvnQ136oWVadThQS8ueo+wj2kb - 5rjFxS4oxIUHPaJ3orXehjluMXRj/i1c46fg1v/zBvQ01CWNEH3D8BW6GV9A74v5xaXFho1Od+wP/kd2 - dhb/KMUAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAQdEVYdFRpdGxlAE1hc2s7Um9sZTu6seyzAAAA3klE - QVQ4T52SvQ2CYBRFia0TuACF0coxbLF1AgvDAJQu4ASG6ACugI07UJlYKvYUeo95H/lASITiRO7Pu8GE - 4HmJS/EeSMlA0TD7UDCQN8w+5AxkJk5iKcb2i3bFrixjIDUxE2gH2g10ZSkiMTHkDRIGIhNDiBgIxcsz - /4Wb0P2ns5l94CZwA1sz+8BNNTAV7ntYmNcGGR263FQDsBOEezEyzwePjA7dr+8X5uIqKBzFSkwMnvHI - 6ND9GYC1eAiKbZDRqW78Y8dG3EXzGI+s1q8JD762g7gZPOM1enHwAUbOxAVvaZeAAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAQdEVYdFRpdGxlAE1hc2s7Um9sZTu6seyzAAACmUlE - QVRYR8XWv29OcRTH8ZakQhlEikhFiEQZxM/QRGNoRJoKmyK2iviRpsEmERaDwWCxmQ1iaewW5i4MiH/B - ZL8+72++5+bcb8/zuH2eG4bXzePecz7nVO+9fUaqqvqvwpPm16eH83Ja9siocG4YZJBF5jwzwsFGRUvy - LLsnV2VWTshB2SXbZEw2ZHzmHNeooZYeesmwvCVmhIONihZdQ9cWmREONipaKJq6tMCMcLBR0VzR1KU5 - ZoSDjYqmi6YuTTMjHGxUNFU0tfFUbos9Qaasm2KGDXot3KGnxD9uW+Sy3JS78kgeZ3zmHNeomZEjslPI - IItMsndIucCEX+CbVNkXeSfP5ZZclKPC87tVNmZ85hzXqKGWHnrJsDyyywXuSJptC3wWa+ga2eUCV6Sx - wHuJmrtA9l7xC/DraSzwSqLmLpB9WGw4989uaSzwQHzTR+FO3pfxmXO+pm0d2WfEFrguzGwswO/Eh56U - VORwzoe3rSObm9QWYJlU6xfgv8ga+Cl8oMe19daRfU0Yzh+37ZLq/AJYFWvqCplk3xcWuJD/HS7wRqKQ - YZDJDcfwZZmQngvwcohChkHmcWGB81IPR7nAMfktUdAgyCLzktyQzdJ3AaxIFDYIsvh2xHcKvh35OUm0 - AHdpFDYIsvbLpPgZtWiBA/JdosD1IIOscfH5DdECeCE+rN/zbvxzDzL++i261wL8Tf8pFtbrjWfKNx+9 - ZNQ1zOglHXxx9kQs0Jbgp7R3fr93P72NvHKolw5lg/C6/CA+uA166letKYd66VA2ZHzT+SrRoAi19KzJ - Kod66RA1ZWelzVNBDbVRxpqhXjpETc4heSvRYHCNmqg3KYd66RA1FTbJOXkpPzI+c45rUU+tHOqFJ/+d - auQPQiXhdkHlGrsAAAAASUVORK5CYII= - - - - 412, 17 - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAhdEVYdFRpdGxlAEFwcGx5O09LO0NoZWNrO0JhcnM7 - UmliYm9uO2RjyGgAAAFKSURBVFhHxdAxTgNBEARA2wEpiH9hJETCI0j5Ck8gxI+AABAPgoCj27q1eoa+ - 27XkW4KS3KOd65FXwzD8KzvsyQ57ssOe7LCnEB6eHhch399oH4WQF09l/PYVvMKFdh5+UFlYAMu/YIAP - OBzR4wAtL/hPrHsc4MqZr0vnkgdUy2mpA5rKKQQ8OIXmcgoBj9Q65RZHlVMIeFjcwzOcyazm6HIKAY+J - 5T/AD+yg5YjJcggdWQh4fAelvKgdMVtO2pGFgMfn8A76MZo6olpO2pGFMC60HtFUTtqRhSBLtSOay0k7 - shDS4tQRL9BcTtqRhWCWp45QLN+C29/TjiwEtwxzR1TLSTuyENzyiEd8gpZ/ww2494F2ZCG4ZXEJ5QiW - 34J794d2ZCG45YRHvEFzOWlHFoJbNjZmNks7MjvsyQ57ssOe7LAnO+xnWP0CbFjkt+hdVzwAAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAjdEVYdFRpdGxlAENhbmNlbDtTdG9wO0V4aXQ7QmFy - cztSaWJib247TJaWsgAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1VcxaomD57pek1e - hLj4FilSP9Dd0LtSyr8ixZlIcSZSnIkUL8+3f6LJOvhzixRr0BV4AXf13I3LuQev4OjzPVKEgeUfoIBv - kBpRM1hOLzM+gRyxEnDxALiaRiM7wpcbzNy3fb8OBi4+gTagd4Qq5/lBda0EgsvksRrboK0RqXIiRRiM - zIh0OZEiTJ6eEUPlRIowtmyNGC4nUoRZEY0YLidSRECEGuFJlRMpImSLaMRSDmRmhBQZsoF65jZgeTFV - ZoQUGRIQlRvLCJUZIUWEKKK3XWndI6SIgN5yPvPwE1XZLVKEubfc7gyPkCKMmXJjaIQUYSJR+Qn4Yk96 - hBRhGCk3UiNWAi7uwVs1+oCeckONeAfdPyTX4Ksas+WW4UecwU3bQ1YCwWXCEVydKicuhyOYIcuJFC0I - 8P/Qn7tosvK/5TOR4kykOBMpzqPsfgBphQ1j4i+mWAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz - ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v - uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB - unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2 - sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM - 0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII= - - - - - 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== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAWdEVYdFRpdGxlAFRleHQ7UGFnZTtSZXBvcnR2YWEA - AAAAVUlEQVQ4T2P4//8/RRjOaGlp+Y8H/4PSxsiaQRjFAHwAJN/X13cX3RCSDACCX+iGkGQAMgYC0gxA - BngN8G3agReDwKgLaO0CYgDtDCAFYxhAHv7PAAC6Jy+iz67OxwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAWdEVYdFRpdGxlAFRleHQ7UGFnZTtSZXBvcnR2YWEA - AAAAu0lEQVRYR+2SQQqDMBREPZ/QS5Vsc4Tco5fJSugh2kX6BwxoHEpNZSzlDzwko0keH4dSyqnQUgkt - ldBSCS1BCKHsZDJGA3s3sDsALYFtssfnwfcxxmdKabRle9ZqvYSWoEcg50wlZAIIk5AKIK2EXACZJR6Q - OEUAqRL2bvNjVmgJegTecLdP6D20BNh4VOaz6D20BD8ncLnedrGMT8An4BPwCfzHBL6JC3QLHEl7foWW - SmiphJZKaKmjDC/fWMVvGNRzeQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFdpbmRvd3M7RXll7xo9bwAAANxJ - REFUOE/dkT0KwkAQhQNaiaCn8RaewgOI4gkkF7CyttDebsNCIJV6AsHKAySVgiYbGN9bXLFYsqBWLnzM - ZGbey/5EIvIV0XCu5Bv+wSCOYybeC2qCGmo/NiAvA+AdCPELAxM0QK8NpuAEbs84A6wPGg1Q74FdkiRS - FIUYY2zkN+oH0A8ZrNM0RSqy3Z9ltMhszsU6+puQwaUsS6RixXx3Z1JVFXVXZ+CjC5ZaaytwO2DkYh39 - lffPDgx0gOaZ8zyXuq5tVEpRnLHvFb6DId72BBzBHfAVxqAlItED1Ra9ByAahOsAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFdpbmRvd3M7RXll7xo9bwAAAY1J - REFUWEftl7FKw1AUhvMIro66+QBCcfEJ9Cl8BH0BCQQcMgZEMB27OAgOxcUhQyRDUoUMOri5iEEHoWAa - jv9/0ys3aQW1SemQAx85597zn/unTVtqicg3e8dDWSY8szPQGagYWBY43LJtGykM1F21zUoYIJ2B1THA - BKgHo230oXMN6I026Qx0BjoDq2DgwMhxacEAZu2AM8/zxHEcBepHrnHP6HvitTEDmLEBrvv9viRJIlmW - yWQyUTDnGvfYM+1do64RA9DvgrcwDFGKfIxzubl/lqPzW1WbwR72UoNycQPQboH3NE1RloefXNyZPz4z - wV5qqG3CwDCKIqRl8M714T8ZYFBDbRMGxnmeIy2DL/tvDFBDbesGTMxnokkDl/rhY9TfAhPu6YDukFpt - 4L/sg03wOhqN1OD6Q6jhGvcY7KWG2rl39VcwaNt1XQmCAGX1Y0iY68PZg/4XalA298cEA9cHg4H4vi9x - HKsvn6IoFMy5hp4QXLFX62YGLQqG98ApeACfU5hzrVftF+sLoRMhmJtEnpwAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 - RGlhZ3JhbTtIaWVyYXI7TmV0Tg8qRAAAAHVJREFUOE/NzMENgDAMQ9EuyDoMwBKMwLXHbhf0JUBtYqCo - Fw5PCNdOMrMhMpyWYorvIQRQY/geQgA1hu8hBFBj+B5CADWG7yEEUGP4HkJQyznbQb6j+akGbx4P8D1d - A5e1B+ZttRqFnuz2wJfsJwdGyLCfpR37LNV02NfAHQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 - RGlhZ3JhbTtIaWVyYXI7TmV0Tg8qRAAAAMNJREFUWEft0rENwjAQBdAsyDoMwBKMQOuS7Q4cYQlFT4cj - Badx8VL8hP+vYImIUzEciaFcbs/YgR3CUDCSYYcwFIxk2CEMBSMZdghDwUiGHcJQMJJhhzAUjGTYIQwF - Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 - +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAALHRFWHRUaXRsZQBEb2N1bWVu - dDtNYXA7U2NoZW1lO0RpYWdyYW07SGllcmFyO05ldE4PKkQAAAB1SURBVDhPzczBDYAwDEPRLsg6DMAS - jMC1x24X9CVAbWKgqBcOTwjXTjKzITKclmKK7yEEUGP4HkIANYbvIQRQY/geQgA1hu8hBFBj+B5CUMs5 - 20G+o/mpBm8eD/A9XQOXtQfmbbUahZ7s9sCX7CcHRsiwn6Ud+yzVdNjXwB0AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAALHRFWHRUaXRsZQBEb2N1bWVu - dDtNYXA7U2NoZW1lO0RpYWdyYW07SGllcmFyO05ldE4PKkQAAADDSURBVFhH7dKxDcIwEAXQLMg6DMAS - jEDrku0OHGEJRU+HIwWncfFS/IT/r2CJiFMxHImhXG7P2IEdwlAwkmGHMBSMZNghDAUjGXYIQ8FIhh3C - UDCSYYcwFIxk2CEMBSMZdghDwUiGHcJQMJJhhzAUjGTYIQyllm6VUuKN79QhDEUjQw+QdoDe9WL4KT4a - txi2H3TY9Z22GLYfdPjvAXr37Yjv1sf1cY9f6j9b+VZvX/2umgfMA+YB84D1cSaGIzEcJ5YXdxoUYrVL - o4QAAAAASUVORK5CYII= - - - - 17, 17 - - - 284, 17 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmMain.vb b/GUIs.ClientSuite/frmMain.vb deleted file mode 100644 index 8a664370..00000000 --- a/GUIs.ClientSuite/frmMain.vb +++ /dev/null @@ -1,232 +0,0 @@ -Imports System.IO -Imports System.ComponentModel -Imports DevExpress.XtraBars.Docking2010 -Imports DevExpress.LookAndFeel -Imports DevExpress.XtraBars.Ribbon -Imports DigitalData.GUIs.ClientSuite.ClassLayout -Imports DigitalData.GUIs.ClientSuite.Workers -Imports DigitalData.Modules.License - -Public Class frmMain - Private _PanelManager As PanelManager - Private _WorkerManager As WorkerManager - Private _Loading As Boolean = True - - Public Sub New() - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Show splashscreen - frmSplash.ShowDialog() - - ' Initialize Form Related Variables - My.MainForm = Me - - ' Initialize Common Functions - My.Common = New ClassCommon(My.LogConfig) - End Sub - - Private Sub SetOnlineLabel(Online As Boolean) - If Online Then - LabelServiceOnline.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - LabelServiceOffline.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - Else - LabelServiceOnline.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - LabelServiceOffline.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - End If - End Sub - - Private Sub HandleOnlineChanged(sender As Object, Online As Boolean) - SetOnlineLabel(Online) - If Online = False Then - MessageBox.Show($"Application will be closed now.{vbNewLine}Reason: Service is offline.", "Critical Error", MessageBoxButtons.OK, MessageBoxIcon.Error) - Application.Exit() - End If - End Sub - - Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load - Try - ' Initialize Worker Manager - _WorkerManager = New WorkerManager(My.LogConfig, Me) - Dim oHeartbeatWorker = _WorkerManager.GetWorker(Of HeartbeatWorker)() - AddHandler oHeartbeatWorker.OnlineChanged, AddressOf HandleOnlineChanged - - ' Initialize Panel Manager - _PanelManager = New PanelManager(My.LogConfig, DocumentManager, DockManager) - - ' Show Service Status Label - SetOnlineLabel(True) - - ' Apply Selected Skin Style - UserLookAndFeel.Default.SetSkinStyle(My.UIConfig.SkinName) - - ' Show User Info - LabelCurrentUser.Caption = My.Application.User.UserName - LabelCurrentMachine.Caption = My.Application.User.MachineName - LabelCurrentVersion.Caption = My.Application.Info.Version.ToString - LabelCurrentLanguage.Caption = My.Application.User.Language - - ' Load and Save Layout - AddHandler UserLookAndFeel.Default.StyleChanged, AddressOf frmMain_StyleChanged - LoadLayout() - - ' We're done loading now - _Loading = False - Catch ex As Exception - ShowErrorMessage(ex) - End Try - End Sub - - Private Sub FrmMain_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing - SaveLayout() - End Sub - - Private Sub frmMain_StyleChanged(sender As Object, e As EventArgs) Handles Me.StyleChanged - If _Loading = False Then - My.UIConfig.SkinName = LookAndFeel.ActiveSkinName - My.UIConfigManager.Save() - End If - End Sub - - Private Sub LoadLayout() - Try - Dim oLayoutPathForDockManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DockManager) - Dim oLayoutPathForDocumentManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DocumentManager) - - If File.Exists(oLayoutPathForDockManager) Then - 'DockManager.RestoreLayoutFromXml(oLayoutPathForDockManager) - End If - - If File.Exists(oLayoutPathForDocumentManager) Then - 'DocumentManager.View.RestoreLayoutFromXml(oLayoutPathForDocumentManager) - End If - Catch ex As Exception - ShowErrorMessage(ex) - End Try - End Sub - Private Sub SaveLayout() - Try - Dim oLayoutPathForDockManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DockManager) - Dim oLayoutPathForDocumentManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DocumentManager) - Dim oDirectory As String = GetLayoutDirectory() - - If Not Directory.Exists(oDirectory) Then - Directory.CreateDirectory(oDirectory) - End If - - 'DockManager.SaveLayoutToXml(oLayoutPathForDockManager) - 'DocumentManager.View.SaveLayoutToXml(oLayoutPathForDocumentManager) - Catch ex As Exception - ShowErrorMessage(ex) - End Try - End Sub - - Private Sub BarButtonUserSettings_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserSettings.ItemClick - Dim frm As New frmConfigUser() - frm.MdiParent = DocumentManager.MdiParent - frm.Show() - End Sub - - - Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick - Dim frm As New frmFileTest() - frm.MdiParent = DocumentManager.MdiParent - frm.Show() - End Sub - - Private Sub BarButtonFormDesigner_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonFormDesigner.ItemClick - Dim oForm As New frmFormDesigner() - oForm.MdiParent = DocumentManager.MdiParent - oForm.Show() - End Sub - - Private Sub BarButtonConnectionSettings_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonConnectionSettings.ItemClick - Dim frm As New frmConfigService() - frm.MdiParent = DocumentManager.MdiParent - frm.Show() - End Sub - - Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick - Dim oUser1 = LicenseCreator.NewUser(UserType.PowerUser, 5) - Dim oUser2 = LicenseCreator.NewUser(UserType.WriteOnly, 5, Date.Now) - Dim oUsers As New List(Of LicenseModuleUser) - oUsers.Add(oUser1) - oUsers.Add(oUser2) - - Dim oModule = LicenseCreator.NewModule("EDMI", oUsers) - Dim oModules As New List(Of LicenseModule) - oModules.Add(oModule) - - Dim oLicense = LicenseCreator.NewLicense(oModules) - - Dim oLicenseFile As New LicenseFile(My.LogConfig, "E:\") - oLicenseFile.SaveFile(oLicense) - - Dim oSerializer As New Xml.Serialization.XmlSerializer(GetType(LicenseSchema)) - Dim oLicense2 As LicenseSchema - - oLicense2 = oLicenseFile.LoadFile() - End Sub - - Private Sub BarButtonUserManager_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserManager.ItemClick - Dim oForm As New frmUserManager() - oForm.MdiParent = DocumentManager.MdiParent - oForm.Show() - End Sub - - ' Manually merge the status bars of the parent and child MDI forms. - Private Sub RibbonControl1_Merge(ByVal sender As System.Object, ByVal e As RibbonMergeEventArgs) Handles RibbonControl.Merge - Dim oParentRibbon As RibbonControl = TryCast(sender, RibbonControl) - Dim oChildRibbon As RibbonControl = e.MergedChild - oParentRibbon.StatusBar.MergeStatusBar(oChildRibbon.StatusBar) - End Sub - - ' Manually unmerge the status bars. - Private Sub RibbonControl1_UnMerge(ByVal sender As System.Object, ByVal e As RibbonMergeEventArgs) Handles RibbonControl.UnMerge - Dim oParentRibbon As RibbonControl = TryCast(sender, RibbonControl) - oParentRibbon.StatusBar.UnMergeStatusBar() - End Sub - - Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick - Dim frm As New frmDocTest With { - .MdiParent = DocumentManager.MdiParent - } - frm.Show() - End Sub - - Private Sub BarButtonInbox_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) - Dim oForm As New frmHome With { - .MdiParent = DocumentManager.MdiParent - } - oForm.Show() - End Sub - - Private Sub MainNav_SelectedItemChanging(sender As Object, e As DevExpress.XtraBars.Navigation.SelectedItemChangingEventArgs) Handles MainNav.SelectedItemChanging - Select Case e.Item.Name - Case NavbarItemHome.Name - Dim oForm As New frmHome() - oForm.MdiParent = DocumentManager.MdiParent - oForm.Show() - Case NavbarItemSearch.Name - Dim oForm As New frmSearch() - oForm.MdiParent = DocumentManager.MdiParent - oForm.Show() - End Select - - e.Cancel = True - End Sub - - Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick - Dim oForm As New frmWorkflowStep(172) With { - .MdiParent = DocumentManager.MdiParent - } - oForm.Show() - 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 \ No newline at end of file diff --git a/GUIs.ClientSuite/frmObjectEditor.Designer.vb b/GUIs.ClientSuite/frmObjectEditor.Designer.vb deleted file mode 100644 index 3a4b80c4..00000000 --- a/GUIs.ClientSuite/frmObjectEditor.Designer.vb +++ /dev/null @@ -1,247 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmObjectEditor - Inherits BaseRibbonForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmObjectEditor)) - Me.SplitContainer = New DevExpress.XtraEditors.SplitContainerControl() - Me.GridList = New DevExpress.XtraGrid.GridControl() - Me.ViewList = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() - Me.LayoutGroup = New DevExpress.XtraLayout.LayoutControlGroup() - Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.BarButtonSave = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonNew = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonDelete = New DevExpress.XtraBars.BarButtonItem() - Me.labelParentAttributeId = New DevExpress.XtraBars.BarStaticItem() - Me.labelSyskey = New DevExpress.XtraBars.BarStaticItem() - Me.BarCheckHorizontalLayout = New DevExpress.XtraBars.BarCheckItem() - Me.BarButtonResetLayout = New DevExpress.XtraBars.BarButtonItem() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() - CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainer.SuspendLayout() - CType(Me.GridList, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ViewList, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutGroup, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'SplitContainer - ' - Me.SplitContainer.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainer.Location = New System.Drawing.Point(0, 146) - Me.SplitContainer.Name = "SplitContainer" - Me.SplitContainer.Panel1.Controls.Add(Me.GridList) - Me.SplitContainer.Panel1.Text = "Panel1" - Me.SplitContainer.Panel2.Controls.Add(Me.LayoutControl1) - Me.SplitContainer.Panel2.Text = "Panel2" - Me.SplitContainer.Size = New System.Drawing.Size(1104, 338) - Me.SplitContainer.SplitterPosition = 547 - Me.SplitContainer.TabIndex = 0 - Me.SplitContainer.Text = "SplitContainerControl1" - ' - 'GridList - ' - Me.GridList.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridList.Location = New System.Drawing.Point(0, 0) - Me.GridList.MainView = Me.ViewList - Me.GridList.Name = "GridList" - Me.GridList.Size = New System.Drawing.Size(547, 338) - Me.GridList.TabIndex = 0 - Me.GridList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewList}) - ' - 'ViewList - ' - Me.ViewList.GridControl = Me.GridList - Me.ViewList.Name = "ViewList" - ' - 'LayoutControl1 - ' - Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.LayoutControl1.Location = New System.Drawing.Point(0, 0) - Me.LayoutControl1.Name = "LayoutControl1" - Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(-870, 211, 650, 400) - Me.LayoutControl1.Root = Me.LayoutGroup - Me.LayoutControl1.Size = New System.Drawing.Size(545, 338) - Me.LayoutControl1.TabIndex = 0 - Me.LayoutControl1.Text = "LayoutControl1" - ' - 'LayoutGroup - ' - Me.LayoutGroup.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] - Me.LayoutGroup.GroupBordersVisible = False - Me.LayoutGroup.Name = "Root" - Me.LayoutGroup.Size = New System.Drawing.Size(545, 338) - Me.LayoutGroup.TextVisible = False - ' - 'RibbonControl1 - ' - Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonSave, Me.BarButtonNew, Me.BarButtonDelete, Me.labelParentAttributeId, Me.labelSyskey, Me.BarCheckHorizontalLayout, Me.BarButtonResetLayout}) - Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 11 - Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] - Me.RibbonControl1.Size = New System.Drawing.Size(1104, 146) - Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 - ' - 'BarButtonSave - ' - Me.BarButtonSave.Caption = "Speichern" - Me.BarButtonSave.Id = 1 - Me.BarButtonSave.ImageOptions.Image = CType(resources.GetObject("BarButtonSave.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonSave.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonSave.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonSave.Name = "BarButtonSave" - ' - 'BarButtonNew - ' - Me.BarButtonNew.Caption = "Neu" - Me.BarButtonNew.Id = 2 - Me.BarButtonNew.ImageOptions.Image = CType(resources.GetObject("BarButtonNew.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonNew.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonNew.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonNew.Name = "BarButtonNew" - ' - 'BarButtonDelete - ' - Me.BarButtonDelete.Caption = "Löschen" - Me.BarButtonDelete.Id = 3 - Me.BarButtonDelete.ImageOptions.Image = CType(resources.GetObject("BarButtonDelete.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonDelete.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonDelete.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonDelete.Name = "BarButtonDelete" - ' - 'labelParentAttributeId - ' - Me.labelParentAttributeId.Caption = "AttributeId" - Me.labelParentAttributeId.Id = 5 - Me.labelParentAttributeId.Name = "labelParentAttributeId" - ' - 'labelSyskey - ' - Me.labelSyskey.Caption = "Syskey" - Me.labelSyskey.Id = 6 - Me.labelSyskey.Name = "labelSyskey" - ' - 'BarCheckHorizontalLayout - ' - Me.BarCheckHorizontalLayout.Caption = "Horizontales Layout" - Me.BarCheckHorizontalLayout.Id = 9 - Me.BarCheckHorizontalLayout.ImageOptions.Image = CType(resources.GetObject("BarCheckHorizontalLayout.ImageOptions.Image"), System.Drawing.Image) - Me.BarCheckHorizontalLayout.ImageOptions.LargeImage = CType(resources.GetObject("BarCheckHorizontalLayout.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarCheckHorizontalLayout.Name = "BarCheckHorizontalLayout" - ' - 'BarButtonResetLayout - ' - Me.BarButtonResetLayout.Caption = "Layout zurücksetzen" - Me.BarButtonResetLayout.Id = 10 - Me.BarButtonResetLayout.ImageOptions.Image = CType(resources.GetObject("BarButtonResetLayout.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonResetLayout.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonResetLayout.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonResetLayout.Name = "BarButtonResetLayout" - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "Allgemein" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonSave) - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonNew) - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonDelete) - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.ShowCaptionButton = False - Me.RibbonPageGroup1.Text = "Aktionen" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarCheckHorizontalLayout) - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonResetLayout) - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "Layout" - ' - 'RibbonStatusBar1 - ' - Me.RibbonStatusBar1.ItemLinks.Add(Me.labelParentAttributeId) - Me.RibbonStatusBar1.ItemLinks.Add(Me.labelSyskey) - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 484) - Me.RibbonStatusBar1.Name = "RibbonStatusBar1" - Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(1104, 21) - ' - 'RibbonPage2 - ' - Me.RibbonPage2.Name = "RibbonPage2" - Me.RibbonPage2.Text = "RibbonPage2" - ' - 'frmObjectEditor - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1104, 505) - Me.Controls.Add(Me.SplitContainer) - Me.Controls.Add(Me.RibbonStatusBar1) - Me.Controls.Add(Me.RibbonControl1) - Me.Name = "frmObjectEditor" - Me.Ribbon = Me.RibbonControl1 - Me.ShowIcon = False - Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "Datensätze bearbeiten" - CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainer.ResumeLayout(False) - CType(Me.GridList, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewList, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutGroup, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents SplitContainer As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents GridList As DevExpress.XtraGrid.GridControl - Friend WithEvents ViewList As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl - Friend WithEvents LayoutGroup As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents BarButtonSave As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonNew As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonDelete As DevExpress.XtraBars.BarButtonItem - Friend WithEvents labelParentAttributeId As DevExpress.XtraBars.BarStaticItem - Friend WithEvents labelSyskey As DevExpress.XtraBars.BarStaticItem - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents BarCheckHorizontalLayout As DevExpress.XtraBars.BarCheckItem - Friend WithEvents BarButtonResetLayout As DevExpress.XtraBars.BarButtonItem -End Class diff --git a/GUIs.ClientSuite/frmObjectEditor.resx b/GUIs.ClientSuite/frmObjectEditor.resx deleted file mode 100644 index d58a3168..00000000 --- a/GUIs.ClientSuite/frmObjectEditor.resx +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFNhdmU7+ej5CQAAAFhJREFUOE9j - +P//P0UYTEzOWr8XiP+DMJQPZqNjNLm9ID7MAFyKUMTQ5UB8+hgAw9jUYjUAH0ZXiyFICqa+ASA2MXjU - ADwGkIqRDdiOLkkE3g43gHz8nwEAvq7TCya3G6wAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFNhdmU7+ej5CQAAAQ1JREFUWEft - l9EJwzAMRLNZoF+Zpet0kM7RPQIZw9WJ2JyF5CbQOATy8cCVjqcjfx1SSqfiDnviDntS/Xg936PwERKB - OcO7JquTZ3CPfNMWWCic4eNW2GR12vnCN20BGwZ8PMoA3bMncmKeKQ/ghQUVE14G6J49kRPzTHkALyyo - mPAyQPfsiZyYZ8oDeGFBxYSXAbpnT+TEPFMewAsLKia8DNA9eyIn5pnyAF5YUDHhZVwiZ74HLlmgCfsi - J+9/ho+Ab94FWgUeAma7YB954dpdoBJvhX2M7O4Cd4G7wPUKTEIl3wL7yAvX7gKHwTdtgdmGD2Dmm7YA - PpX33+BfwD3xzarAGbjDnrjDfqThC1oLalOREus2AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u - O5UGMy8AAABgSURBVDhP3YxRCoAwDEN3QS/lqbxdtNKUTDJEHAh+vNGl6WsAXmFDsqwbkphtx4bkR4Kc - bceGRAUjzofFp0wVFPEnWrzk1e0CJfMS6I7ME4w4Sp1Ad8SGhII4/kZwD9oOmV+r+RzWkL4AAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u - O5UGMy8AAACPSURBVFhH7c5RCoQwDEVRN+imXJW7i82HIOlFHhKiSD4Owp1p+xYzexXGShgrYayEsRJG - xbrtdhV/V2FU9IAe0AP+PSBeniW+46bg6HCG+I6bgqPDGeI7bgqODmeI77gpqJTLFRgVNGB8b13PnzAq - xoXfG/AERkUPoAHji/+9g1HRA7JgrISxEsZKGOvYcgB55Y6E3tOuXgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS - aWJib247U3RhbmRhcmQ7Y1ZIMAAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlO - q4sHSf0YBlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgP - y+QzUIN+ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQ - hiM0+DBaI5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS - aWJib247U3RhbmRhcmQ7Y1ZIMAAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1Vcxaom - D57pek1ehLj4FilSP9Dd0LtSyr8ixZlIcSZSvDzf/okm6+DPLVKsQVfgBdzVczcu5x68gqPP90gRBpZ/ - gAK+QWpEzWA5vcz4BHLESsDFA+BqGo3sCF9uMHPf9v06GLj4BNqA3hGqnOcH1bUSCC6Tx2psg7ZGpMqJ - FGEwMiPS5USKMHl6RgyVEynC2LI1YricSBFmRTRiuJxIEQERaoQnVU6kiJAtohFLOZCZEVJkyAbqmduA - 5cVUmRFSZEhAVG4sI1RmhBQRoojedqV1j5AiAnrL+czDT1Rlt0gR5t5yuzM8QoowZsqNoRFShIlE5Sfg - iz3pEVKEYaTcSI1YCbi4B2/V6AN6yg014h10/5Bcg69qzJZbhh9xBjdtD1kJBJcJR3B1qpy4HI5ghiwn - UrQgwP9Df+6iycr/ls9EijOR4kykOBMpzqPsfgDZ5w1jF/MagwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAENvbnRlbnQ7QXJyYW5nZTtBbGln - bjtDb2x1bW5zO1zGIX4AAAA5SURBVDhPY2hpaflPLgYCBrABZcunM5CKMQzwbdrxH4aJ4Y8aMGrAIDWA - VIxiALkYbACIIB//ZwAAbIFcNNtz9AIAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAENvbnRlbnQ7QXJyYW5nZTtBbGln - bjtDb2x1bW5zO1zGIX4AAABvSURBVFhH7c7BDYAgDIXhLug6DmC6gyO4gts9W5IeCOUm5fIOP5Ji0k8A - bK0dqorqBkAMVme7un0xxHG9UtEUcD63ePaTY9L+ePcIIIAAAggggAACCCCAgBRgtXtFU8DqYqnd7TMC - SusAO0uHdUE+LKTicYZIPukAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFJlc2V0O1VuZG87E4EW/wAAAKtJ - REFUOE+l0r0NgzAQhmEWQRkiFTtkjtRMkCITpYMuY6SkZ4njey1bOqGDYCgefu7MJ2O7MbNLwmKNdHm8 - x5dwRyu9DDJnPFOjl8atA0wI6eST3yP0GBMG4JfvX3nKLeOZWglptwIwyV3SVB1qJaTfC4BfE4+Z0B/+ - BSAK4XfozeuAo3YD2CqaTNN/5G3+AthnmixU9SKCQ1LOQPU2FqcPkld/lK8Ii8dZswC12mC3TFCEqwAA - AABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFJlc2V0O1VuZG87E4EW/wAAAYVJ - REFUWEfFlj1Ow2AMhnsAJK7ThRtwBE7ACEtZGBCH4BSd4SbdOAADUyW24KdKqtfG6ceHqDM8Uuz4tZ18 - v6thGBYldVaSOitJnZU44/rptcXa2BhbY2fsR3jGxztiMu0BrQfOyAQjV8aL8WkMDYghFs2PXFoPnGEB - j1Fg3Bp8YVbsFGjQunxaD5xhAQi1iQfjy4jJfwtacnQ1ADRB91nxN+POYKwvR3jGx7sYT47jn9B64IxR - MPER7Hfj3rgwjl8U4B0xxKqW4TjMCa0HzhBBhIQ3Riw4B7GxCSamqwfOCAKFr4pFWqDRHKyOtdYDZwSB - 8mzEAi0YjjgnNloPnBGCI9kSbcHE1BxbrQfOCMEZvU2wOlS/03rgjBA8R08TLFHV7rUeOMMC/pvFG+ge - AuBUUxETSZP20D0JgSNVRSylU7vfHH9ahsBvi8du2UY0wbap4rKteIKDI94BSMhXnfUwUhY5jiPlF5IM - ui+7ks1RdiltwVif71q+BKmzktRZSeqsY1h9A4ZDkwafEbAVAAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmObjectEditor.vb b/GUIs.ClientSuite/frmObjectEditor.vb deleted file mode 100644 index 844ede3c..00000000 --- a/GUIs.ClientSuite/frmObjectEditor.vb +++ /dev/null @@ -1,264 +0,0 @@ -Imports DevExpress.XtraEditors -Imports DevExpress.XtraGrid -Imports DevExpress.XtraLayout -Imports DigitalData.Modules.Logging - -Public Class frmObjectEditor - Private ReadOnly _Datatable As DataTable - Private _BindingSource As BindingSource - Private _LayoutConfig As ClassUIConfig.EditFormConfig - - Private _LanguageDatatable As DataTable - Private _AttributeId As Integer - Private _Syskey As String - - Private Class ControlMetadata - Public AttributeId As Integer - Public DataType As Type - Public ColumnName As String - End Class - - Public Sub New(AttributeId As Integer, Syskey As String, Datatable As DataTable) - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _Syskey = Syskey - _AttributeId = AttributeId - - _Datatable = Datatable - _BindingSource = New BindingSource With { - .DataSource = _Datatable - } - - If _Datatable Is Nothing Then - ShowErrorMessage(New ArgumentNullException("Datatable is empty")) - End If - End Sub - - Private Async Sub frmEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Try - Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me) - oGridPatcher. - ProcessContainer(AddressOf GridControlDefaults.DefaultGridSettings). - ProcessContainer(AddressOf GridControlDefaults.ReadOnlyGridSettings) - - labelParentAttributeId.Caption = $"Attribut-ID: {_AttributeId}" - labelSyskey.Caption = $"Syskey: {_Syskey}" - - GridList.DataSource = _BindingSource - - _LayoutConfig = GetLayoutBySyskey(_Syskey) - ApplyLayout() - - Await LoadLanguageTableAsync(My.Application.User.Language) - LoadDetailForm() - Catch ex As Exception - ShowErrorMessage(ex) - End Try - End Sub - - ''' - ''' Applies to currently saved layout to all controls - ''' - Private Sub ApplyLayout() - SplitContainer.Horizontal = _LayoutConfig.SplitterHorizontal - SplitContainer.SplitterPosition = _LayoutConfig.SplitterDistance - BarCheckHorizontalLayout.Checked = _LayoutConfig.SplitterHorizontal - End Sub - - Private Function GetLayoutBySyskey(Syskey As String) As ClassUIConfig.EditFormConfig - Dim oConfig = My.UIConfig.EditFormConfigs.Find(Function(c) c.SysKey = Syskey) - - If Not IsNothing(oConfig) Then - Return oConfig - Else - Return New ClassUIConfig.EditFormConfig() With {.SysKey = Syskey} - End If - End Function - - Private Sub SaveLayoutBySyskey(Syskey As String, Config As ClassUIConfig.EditFormConfig) - Dim oIndex = My.UIConfig.EditFormConfigs.FindIndex(Function(c) c.SysKey = Syskey) - - If oIndex >= 0 Then - My.UIConfig.EditFormConfigs.Item(oIndex) = Config - Else - My.UIConfig.EditFormConfigs.Add(Config) - End If - - My.UIConfigManager.Save() - End Sub - - Private Sub ResetLayoutBySyskey(Syskey As String) - Dim oIndex = My.UIConfig.EditFormConfigs.FindIndex(Function(c) c.SysKey = Syskey) - Dim oDefaultLayout = New ClassUIConfig.EditFormConfig With {.SysKey = Syskey} - - If oIndex >= 0 Then - My.UIConfig.EditFormConfigs.Item(oIndex) = oDefaultLayout - End If - - My.UIConfigManager.Save() - End Sub - - Private Async Function LoadLanguageTableAsync(UserLanguage As String) As Task - Try - Dim oSQL = $"SELECT * FROM VWIDB_ATTRIBUTE_LANGUAGE WHERE LANGUAGE_CODE = '{UserLanguage}' AND PARENT_ATTRIBUTE_ID = '{_AttributeId}' ORDER BY ""SEQUENCE"";" - - Await My.Channel.CreateDatabaseRequestAsync("Language Syskey", False) - Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL) - _LanguageDatatable = oResult.Table - - Await My.Channel.CloseDatabaseRequestAsync() - Catch ex As Exception - ShowErrorMessage(ex) - End Try - End Function - - Private Function GetColumnEditor(Column As DataColumn, AttributeId As Integer) - Dim oEditor As BaseEdit - - Select Case Column.DataType - Case GetType(Int64) - Dim oIntegerEdit = New TextEdit() - oIntegerEdit.Name = Column.ColumnName - oIntegerEdit.Properties.Mask.MaskType = Mask.MaskType.Numeric - oIntegerEdit.Properties.Mask.EditMask = "n" - oEditor = oIntegerEdit - Case GetType(DateTime) - Dim oDateEdit As New DateEdit() With { - .Name = Column.ColumnName - } - - oEditor = oDateEdit - Case GetType(Boolean) - Dim oCheckEdit = New CheckEdit() With { - .Name = Column.ColumnName - } - - oCheckEdit.Properties.Caption = Column.ColumnName - oCheckEdit.Properties.GlyphAlignment = DevExpress.Utils.HorzAlignment.Far - - oEditor = oCheckEdit - Case Else - Dim oTextEdit = New MemoEdit() With { - .Name = Column.ColumnName - } - - oEditor = oTextEdit - - End Select - - - Dim oMetadata As New ControlMetadata() With { - .DataType = Column.DataType, - .ColumnName = Column.ColumnName - } - - ' Set EditControl Metadata - If AttributeId = 0 Then - oMetadata.AttributeId = Nothing - Else - oMetadata.AttributeId = AttributeId - End If - - oEditor.Tag = oMetadata - - Return oEditor - End Function - - Private Function GetColumnCaption(Column As DataColumn, SequenceId As Integer) - Dim oRow = GetRowBySequence(SequenceId) - Dim oCaption = Column.ColumnName - - If oRow IsNot Nothing Then - oCaption = oRow.Item("LANGUAGE_TERM") - ElseIf oCaption = ClassConstants.ATTRIBUTE_ID_COLUMN Then - oCaption = "ID" - End If - - Return oCaption - End Function - - Private Function GetRowBySequence(SequenceId As Integer) - Return _LanguageDatatable.Select($"SEQUENCE = {SequenceId}").FirstOrDefault() - End Function - - Private Function GetRowItemBySequence(SequenceId As Integer, ColumnName As String) - Dim oRow = _LanguageDatatable.Select($"SEQUENCE = {SequenceId}").FirstOrDefault() - Return oRow?.Item(ColumnName) - End Function - - Private Sub LoadDetailForm() - ' Counter is used to match SEQUENCE in Attributes - ' to column order in the used View (eg. VWIDB_USER) - Dim oCounter = 0 - - For Each oColumn As DataColumn In _Datatable.Columns - Dim oAttributeId As Integer = GetRowItemBySequence(oCounter, "ATTRIBUTE_ID") - Dim oCaption = GetColumnCaption(oColumn, oCounter) - Dim oEditor = GetColumnEditor(oColumn, oAttributeId) - - ' Setup Databinding for editor - If oColumn.DataType = GetType(Boolean) Then - oEditor.DataBindings.Add(New Binding("Checked", _BindingSource, oColumn.ColumnName)) - Else - oEditor.DataBindings.Add(New Binding("Text", _BindingSource, oColumn.ColumnName)) - End If - - ' Add Control to Layout - LayoutGroup.AddItem(oCaption, oEditor) - - ' Set Column Captions - ViewList.Columns.Item(oColumn.ColumnName).Caption = oCaption - - oCounter = oCounter + 1 - Next - - ' General Layout Tweaks - LayoutGroup.AddItem(New EmptySpaceItem()) - LayoutGroup.LayoutMode = Utils.LayoutMode.Flow - End Sub - - Public Sub SaveRecord() - _BindingSource.EndEdit() - - Dim oChanges As DataTable = _Datatable.GetChanges() - Dim oChangedRow As DataRow = oChanges.Rows.Item(0) - - For Each oColumn As DataColumn In oChanges.Columns - Dim oAttributeId = (From oItem As LayoutControlItem In LayoutGroup.Items - Where oItem.Control.Name = oColumn.ColumnName - Select DirectCast(oItem.Control.Tag, ControlMetadata).AttributeId).FirstOrDefault() - - Dim oValue = oChangedRow.Item(oColumn.ColumnName) - MsgBox($"Saving Value {oValue} for Attribute {oAttributeId}") - Next - End Sub - - - Private Sub SplitContainerControl1_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainer.SplitterPositionChanged - _LayoutConfig.SplitterDistance = SplitContainer.SplitterPosition - SaveLayoutBySyskey(_Syskey, _LayoutConfig) - End Sub - - Private Sub BarButtonSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonSave.ItemClick - SaveRecord() - End Sub - - Private Sub BarCheckHorizontalLayout_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarCheckHorizontalLayout.CheckedChanged - SplitContainer.Horizontal = BarCheckHorizontalLayout.Checked - _LayoutConfig.SplitterHorizontal = BarCheckHorizontalLayout.Checked - SaveLayoutBySyskey(_Syskey, _LayoutConfig) - End Sub - - Private Sub BarButtonResetLayout_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonResetLayout.ItemClick - Dim oDefaultLayout = New ClassUIConfig.EditFormConfig With {.SysKey = _Syskey} - SaveLayoutBySyskey(_Syskey, oDefaultLayout) - _LayoutConfig = oDefaultLayout - ApplyLayout() - End Sub - - Private Sub ViewList_Layout(sender As Object, e As EventArgs) Handles ViewList.Layout - - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/frmSearch.Designer.vb b/GUIs.ClientSuite/frmSearch.Designer.vb deleted file mode 100644 index cb8a4a76..00000000 --- a/GUIs.ClientSuite/frmSearch.Designer.vb +++ /dev/null @@ -1,386 +0,0 @@ -Imports DigitalData.GUIs.ClientSuite.Base - - -Partial Class frmSearch - Inherits BaseRibbonForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSearch)) - Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() - Me.RibbonPageCategory1 = New DevExpress.XtraBars.Ribbon.RibbonPageCategory() - Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl() - Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup() - Me.NavBarGroupControlContainer1 = New DevExpress.XtraNavBar.NavBarGroupControlContainer() - Me.ImageListBoxControl1 = New DevExpress.XtraEditors.ImageListBoxControl() - Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() - Me.textEdit1 = New DevExpress.XtraEditors.TextEdit() - Me.textEdit2 = New DevExpress.XtraEditors.TextEdit() - Me.textEdit3 = New DevExpress.XtraEditors.TextEdit() - Me.textEdit4 = New DevExpress.XtraEditors.TextEdit() - Me.textEdit5 = New DevExpress.XtraEditors.TextEdit() - Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() - Me.LayoutControlGroup4 = New DevExpress.XtraLayout.LayoutControlGroup() - Me.layoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() - Me.layoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() - Me.layoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() - Me.layoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() - Me.layoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem() - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.NavBarControl1.SuspendLayout() - Me.NavBarGroupControlContainer1.SuspendLayout() - CType(Me.ImageListBoxControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.LayoutControl1.SuspendLayout() - CType(Me.textEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.textEdit2.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.textEdit3.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.textEdit4.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.textEdit5.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlGroup4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.layoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.layoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.layoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.layoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.layoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'RibbonControl1 - ' - Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonItem1, Me.BarButtonItem2}) - Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 3 - Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategory1}) - Me.RibbonControl1.Size = New System.Drawing.Size(1220, 146) - Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 - ' - 'BarButtonItem1 - ' - Me.BarButtonItem1.Caption = "Execute Search" - Me.BarButtonItem1.Id = 1 - Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem1.Name = "BarButtonItem1" - ' - 'BarButtonItem2 - ' - Me.BarButtonItem2.Caption = "Save Search" - Me.BarButtonItem2.Id = 2 - Me.BarButtonItem2.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem2.Name = "BarButtonItem2" - ' - 'RibbonPageCategory1 - ' - Me.RibbonPageCategory1.Name = "RibbonPageCategory1" - Me.RibbonPageCategory1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage3}) - Me.RibbonPageCategory1.Text = "RibbonPageCategory1" - ' - 'RibbonPage3 - ' - Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2}) - Me.RibbonPage3.Name = "RibbonPage3" - Me.RibbonPage3.Text = "RibbonPage3" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1) - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2) - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" - ' - 'RibbonStatusBar1 - ' - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 680) - Me.RibbonStatusBar1.Name = "RibbonStatusBar1" - Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(1220, 21) - ' - 'RibbonPage2 - ' - Me.RibbonPage2.Name = "RibbonPage2" - Me.RibbonPage2.Text = "RibbonPage2" - ' - 'NavBarControl1 - ' - Me.NavBarControl1.ActiveGroup = Me.NavBarGroup1 - Me.NavBarControl1.Controls.Add(Me.NavBarGroupControlContainer1) - Me.NavBarControl1.Dock = System.Windows.Forms.DockStyle.Right - Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1}) - Me.NavBarControl1.Location = New System.Drawing.Point(970, 146) - Me.NavBarControl1.Name = "NavBarControl1" - Me.NavBarControl1.OptionsNavPane.ExpandedWidth = 250 - Me.NavBarControl1.OptionsNavPane.ShowOverflowButton = False - Me.NavBarControl1.OptionsNavPane.ShowOverflowPanel = False - Me.NavBarControl1.PaintStyleKind = DevExpress.XtraNavBar.NavBarViewKind.NavigationPane - Me.NavBarControl1.Size = New System.Drawing.Size(250, 534) - Me.NavBarControl1.TabIndex = 3 - Me.NavBarControl1.Text = "NavBarControl1" - ' - 'NavBarGroup1 - ' - Me.NavBarGroup1.Caption = "Forward To" - Me.NavBarGroup1.ControlContainer = Me.NavBarGroupControlContainer1 - Me.NavBarGroup1.Expanded = True - Me.NavBarGroup1.GroupClientHeight = 369 - Me.NavBarGroup1.GroupStyle = DevExpress.XtraNavBar.NavBarGroupStyle.ControlContainer - Me.NavBarGroup1.Name = "NavBarGroup1" - ' - 'NavBarGroupControlContainer1 - ' - Me.NavBarGroupControlContainer1.Appearance.BackColor = System.Drawing.SystemColors.Control - Me.NavBarGroupControlContainer1.Appearance.Options.UseBackColor = True - Me.NavBarGroupControlContainer1.Controls.Add(Me.ImageListBoxControl1) - Me.NavBarGroupControlContainer1.Name = "NavBarGroupControlContainer1" - Me.NavBarGroupControlContainer1.Size = New System.Drawing.Size(250, 453) - Me.NavBarGroupControlContainer1.TabIndex = 0 - ' - 'ImageListBoxControl1 - ' - Me.ImageListBoxControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.ImageListBoxControl1.Location = New System.Drawing.Point(0, 0) - Me.ImageListBoxControl1.Name = "ImageListBoxControl1" - Me.ImageListBoxControl1.Size = New System.Drawing.Size(250, 453) - Me.ImageListBoxControl1.TabIndex = 0 - ' - 'LayoutControl1 - ' - Me.LayoutControl1.Controls.Add(Me.textEdit1) - Me.LayoutControl1.Controls.Add(Me.textEdit2) - Me.LayoutControl1.Controls.Add(Me.textEdit3) - Me.LayoutControl1.Controls.Add(Me.textEdit4) - Me.LayoutControl1.Controls.Add(Me.textEdit5) - Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.LayoutControl1.Location = New System.Drawing.Point(0, 146) - Me.LayoutControl1.Name = "LayoutControl1" - Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(551, 62, 650, 400) - Me.LayoutControl1.Root = Me.LayoutControlGroup1 - Me.LayoutControl1.Size = New System.Drawing.Size(970, 534) - Me.LayoutControl1.TabIndex = 6 - Me.LayoutControl1.Text = "LayoutControl1" - ' - 'textEdit1 - ' - Me.textEdit1.Location = New System.Drawing.Point(12, 28) - Me.textEdit1.Name = "textEdit1" - Me.textEdit1.Size = New System.Drawing.Size(400, 20) - Me.textEdit1.StyleController = Me.LayoutControl1 - Me.textEdit1.TabIndex = 4 - ' - 'textEdit2 - ' - Me.textEdit2.Location = New System.Drawing.Point(12, 68) - Me.textEdit2.Name = "textEdit2" - Me.textEdit2.Size = New System.Drawing.Size(400, 20) - Me.textEdit2.StyleController = Me.LayoutControl1 - Me.textEdit2.TabIndex = 5 - ' - 'textEdit3 - ' - Me.textEdit3.Location = New System.Drawing.Point(12, 108) - Me.textEdit3.Name = "textEdit3" - Me.textEdit3.Properties.Mask.EditMask = "[a-zA-Z]+" - Me.textEdit3.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx - Me.textEdit3.Size = New System.Drawing.Size(400, 20) - Me.textEdit3.StyleController = Me.LayoutControl1 - Me.textEdit3.TabIndex = 6 - ' - 'textEdit4 - ' - Me.textEdit4.Location = New System.Drawing.Point(12, 148) - Me.textEdit4.Name = "textEdit4" - Me.textEdit4.Properties.Mask.EditMask = "[a-zA-Z]+" - Me.textEdit4.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx - Me.textEdit4.Size = New System.Drawing.Size(400, 20) - Me.textEdit4.StyleController = Me.LayoutControl1 - Me.textEdit4.TabIndex = 7 - ' - 'textEdit5 - ' - Me.textEdit5.Location = New System.Drawing.Point(12, 188) - Me.textEdit5.Name = "textEdit5" - Me.textEdit5.Properties.Mask.EditMask = "00000" - Me.textEdit5.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Simple - Me.textEdit5.Size = New System.Drawing.Size(400, 20) - Me.textEdit5.StyleController = Me.LayoutControl1 - Me.textEdit5.TabIndex = 8 - ' - 'LayoutControlGroup1 - ' - Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] - Me.LayoutControlGroup1.GroupBordersVisible = False - Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup4, Me.layoutControlItem1, Me.layoutControlItem2, Me.layoutControlItem3, Me.layoutControlItem4, Me.layoutControlItem5}) - Me.LayoutControlGroup1.Name = "Root" - Me.LayoutControlGroup1.Size = New System.Drawing.Size(970, 534) - Me.LayoutControlGroup1.TextVisible = False - ' - 'LayoutControlGroup4 - ' - Me.LayoutControlGroup4.CustomizationFormText = "layoutControlGroup3" - Me.LayoutControlGroup4.GroupBordersVisible = False - Me.LayoutControlGroup4.Location = New System.Drawing.Point(0, 200) - Me.LayoutControlGroup4.Name = "LayoutControlGroup4" - Me.LayoutControlGroup4.Size = New System.Drawing.Size(950, 314) - Me.LayoutControlGroup4.Text = "layoutControlGroup3" - ' - 'layoutControlItem1 - ' - Me.layoutControlItem1.Control = Me.textEdit1 - Me.layoutControlItem1.CustomizationFormText = "Address line 1:" - Me.layoutControlItem1.Location = New System.Drawing.Point(0, 0) - Me.layoutControlItem1.MaxSize = New System.Drawing.Size(404, 0) - Me.layoutControlItem1.MinSize = New System.Drawing.Size(116, 40) - Me.layoutControlItem1.Name = "layoutControlItem1" - Me.layoutControlItem1.Size = New System.Drawing.Size(950, 40) - Me.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom - Me.layoutControlItem1.Text = "Address line 1:" - Me.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top - Me.layoutControlItem1.TextSize = New System.Drawing.Size(112, 13) - ' - 'layoutControlItem2 - ' - Me.layoutControlItem2.Control = Me.textEdit2 - Me.layoutControlItem2.CustomizationFormText = "Address line 2:" - Me.layoutControlItem2.Location = New System.Drawing.Point(0, 40) - Me.layoutControlItem2.MaxSize = New System.Drawing.Size(404, 0) - Me.layoutControlItem2.MinSize = New System.Drawing.Size(116, 40) - Me.layoutControlItem2.Name = "layoutControlItem2" - Me.layoutControlItem2.Size = New System.Drawing.Size(950, 40) - Me.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom - Me.layoutControlItem2.Text = "Address line 2:" - Me.layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top - Me.layoutControlItem2.TextSize = New System.Drawing.Size(112, 13) - ' - 'layoutControlItem3 - ' - Me.layoutControlItem3.Control = Me.textEdit3 - Me.layoutControlItem3.CustomizationFormText = "City:" - Me.layoutControlItem3.Location = New System.Drawing.Point(0, 80) - Me.layoutControlItem3.MaxSize = New System.Drawing.Size(404, 0) - Me.layoutControlItem3.MinSize = New System.Drawing.Size(116, 40) - Me.layoutControlItem3.Name = "layoutControlItem3" - Me.layoutControlItem3.Size = New System.Drawing.Size(950, 40) - Me.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom - Me.layoutControlItem3.Text = "City:" - Me.layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top - Me.layoutControlItem3.TextSize = New System.Drawing.Size(112, 13) - ' - 'layoutControlItem4 - ' - Me.layoutControlItem4.Control = Me.textEdit4 - Me.layoutControlItem4.CustomizationFormText = "State/Province/Region:" - Me.layoutControlItem4.Location = New System.Drawing.Point(0, 120) - Me.layoutControlItem4.MaxSize = New System.Drawing.Size(404, 0) - Me.layoutControlItem4.MinSize = New System.Drawing.Size(116, 40) - Me.layoutControlItem4.Name = "layoutControlItem4" - Me.layoutControlItem4.Size = New System.Drawing.Size(950, 40) - Me.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom - Me.layoutControlItem4.Text = "State/Province/Region:" - Me.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top - Me.layoutControlItem4.TextSize = New System.Drawing.Size(112, 13) - ' - 'layoutControlItem5 - ' - Me.layoutControlItem5.Control = Me.textEdit5 - Me.layoutControlItem5.CustomizationFormText = "ZIP:" - Me.layoutControlItem5.Location = New System.Drawing.Point(0, 160) - Me.layoutControlItem5.MaxSize = New System.Drawing.Size(404, 0) - Me.layoutControlItem5.MinSize = New System.Drawing.Size(116, 40) - Me.layoutControlItem5.Name = "layoutControlItem5" - Me.layoutControlItem5.Size = New System.Drawing.Size(950, 40) - Me.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom - Me.layoutControlItem5.Text = "ZIP:" - Me.layoutControlItem5.TextLocation = DevExpress.Utils.Locations.Top - Me.layoutControlItem5.TextSize = New System.Drawing.Size(112, 13) - ' - 'frmSearch - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1220, 701) - Me.Controls.Add(Me.LayoutControl1) - Me.Controls.Add(Me.NavBarControl1) - Me.Controls.Add(Me.RibbonStatusBar1) - Me.Controls.Add(Me.RibbonControl1) - Me.Name = "frmSearch" - Me.Ribbon = Me.RibbonControl1 - Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "Search" - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.NavBarControl1.ResumeLayout(False) - Me.NavBarGroupControlContainer1.ResumeLayout(False) - CType(Me.ImageListBoxControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.LayoutControl1.ResumeLayout(False) - CType(Me.textEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.textEdit2.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.textEdit3.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.textEdit4.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.textEdit5.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlGroup4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.layoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.layoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.layoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.layoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.layoutControlItem5, 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 NavBarControl1 As DevExpress.XtraNavBar.NavBarControl - Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup - Friend WithEvents NavBarGroupControlContainer1 As DevExpress.XtraNavBar.NavBarGroupControlContainer - Friend WithEvents RibbonPageCategory1 As DevExpress.XtraBars.Ribbon.RibbonPageCategory - Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents ImageListBoxControl1 As DevExpress.XtraEditors.ImageListBoxControl - Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl - Friend WithEvents textEdit1 As DevExpress.XtraEditors.TextEdit - Friend WithEvents textEdit2 As DevExpress.XtraEditors.TextEdit - Friend WithEvents textEdit3 As DevExpress.XtraEditors.TextEdit - Friend WithEvents textEdit4 As DevExpress.XtraEditors.TextEdit - Friend WithEvents textEdit5 As DevExpress.XtraEditors.TextEdit - Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents LayoutControlGroup4 As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents layoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents layoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents layoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents layoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents layoutControlItem5 As DevExpress.XtraLayout.LayoutControlItem -End Class diff --git a/GUIs.ClientSuite/frmSearch.resx b/GUIs.ClientSuite/frmSearch.resx deleted file mode 100644 index c43b3af1..00000000 --- a/GUIs.ClientSuite/frmSearch.resx +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAmdEVYdFRpdGxlAEZpbmQ7QmFycztSaWJib247U3Rh - bmRhcmQ7U2VhcmNou2WcCAAAAHBJREFUOE+1jtENgDAIRLugaziIU7kdckYIVKhE68dLw931oBGRsmw7 - CRUduCELZjoIQzac6UJfsPZBOzOnL3/AnIIupDx5IN0+wF2RbrgY+ragul3QK/4rgMmv4DxmfsENmELk - A3jfC2zwDaFYh9oB/j2jilUn/gYAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAmdEVYdFRpdGxlAEZpbmQ7QmFycztSaWJib247U3Rh - bmRhcmQ7U2VhcmNou2WcCAAAALlJREFUWEft0FEOAiEMhOG9oNfwIJ7K22FqICnjD5aIbDQ8fA9MprXu - kVI6FYYrYbgShupyuydBnZeedgiGKro42vMwVNHF0Z6HYaEL1WiPYFjkBVe/zJMeec6WHsGw8EsafI/s - A374AFnUEu763R6GJg/2/n1U9ytgaPzwh753gHRbxg6Q4en096qHycUZn17hl6gexpcn+7MDGnM9+4B9 - wD5g6IC3Zs1VD0NDZNZc9TgDhithuE46Hq7c+XFU2QSKAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEV4cG9ydDtTYXZlRtSeMQAAAH5J - REFUOE+9zjEOgCAMQFHO6wEcSTyDA0dgdHTibLU1tjZNBdTo8CIC/SEAwCvu5h2ymIelIEC0pq+Hz4oX - sJc03pOz3wOsO1DTDHT5NMBPFWNOWtT/TwKAJNIboCFrj3gB6ypAog6sZrAVmND5ghq6qMgwcQcsvnyQ - 4TGnsAGFnInIUes/lQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEV4cG9ydDtTYXZlRtSeMQAAAURJ - REFUWEfdlsFpw0AQRd2KKzH45FpSgI8B1+CDStAxdaSPgMtQ5guv2Pn6Y63kZQU+PMLM7Mx/BGx8GIZh - V2SzJbLZEtlsyaxx//o5Gb/GkIF+Iu+/gt/i5onzXAHs0SNbStQQAA/OcwUQS6BEgOfyLee5AqglIx2P - 5oDn8i3nuQKoJSMdj+aA5/It57kCqCUjHY/mgOfyLee5AqglIx2P5orPFVjD7BbnuQKopZpwniuAWqoJ - 57kCqKWacJ4rAC2cDfTe4WjcjE0CfOwl175TfOOvzUcJmjURQOgkkfVHWglMEkxLASlRWyAPi3ASewiA - SWIvATBKLAlccLgUCijhtiSwhrUC40dSCfzR4VLWCEzfB0oA/3b1y3iJUgH3ZaQENpMfzgjDwUzgHfj4 - kzAcyENbUQFGGA7koa2oACMMv/bd4R8cYf1FvaRMggAAAABJRU5ErkJggg== - - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmSearch.vb b/GUIs.ClientSuite/frmSearch.vb deleted file mode 100644 index 7aaac623..00000000 --- a/GUIs.ClientSuite/frmSearch.vb +++ /dev/null @@ -1,32 +0,0 @@ -Imports DevExpress.XtraBars.Docking -Imports DevExpress.XtraEditors.Controls -Imports DevExpress.XtraGrid - -Public Class frmSearch - Private Sub frmSearch_Load(sender As Object, e As EventArgs) Handles Me.Load - - Dim oList As New List(Of String) From {"Marvin", "Marlon", "Annette", "Jan", "Jonathan", "Vladimir", "Armin"} - - For Each oMember In oList - Dim oItem As New ImageListBoxItem(oMember, oMember) - - ImageListBoxControl1.Items.Add(oItem) - Next - End Sub - - Public Overrides Function GetInitialPanels() As List(Of PanelInfo) - Dim oList = MyBase.GetInitialPanels() - Dim oPanel = New DocumentPanel() - Dim oData As DataTable - - My.Channel.CreateDatabaseRequest("Get Users", False) - oData = My.Channel.ReturnDatatable("SELECT * FROM VWIDB_USER").Table - My.Channel.CloseDatabaseRequest() - - oList.Add(New PanelInfo(oPanel, DockingStyle.Bottom, oData) With { - .CanBeClosed = False - }) - - Return oList - End Function -End Class \ No newline at end of file diff --git a/GUIs.ClientSuite/frmSplash.designer.vb b/GUIs.ClientSuite/frmSplash.designer.vb deleted file mode 100644 index 09ee2189..00000000 --- a/GUIs.ClientSuite/frmSplash.designer.vb +++ /dev/null @@ -1,150 +0,0 @@ - _ -Partial Class frmSplash - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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 - Friend WithEvents lblVersion As System.Windows.Forms.Label - Friend WithEvents lblCopyright As System.Windows.Forms.Label - - '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. - _ - Private Sub InitializeComponent() - Me.lblVersion = New System.Windows.Forms.Label() - Me.lblCopyright = New System.Windows.Forms.Label() - Me.lblStatus = New System.Windows.Forms.Label() - Me.pbStatus = New System.Windows.Forms.ProgressBar() - Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.lblProductName = New System.Windows.Forms.Label() - Me.TableLayoutPanel1.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'lblVersion - ' - Me.lblVersion.BackColor = System.Drawing.Color.Transparent - Me.lblVersion.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblVersion.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblVersion.Location = New System.Drawing.Point(3, 0) - Me.lblVersion.Name = "lblVersion" - Me.lblVersion.Size = New System.Drawing.Size(290, 21) - Me.lblVersion.TabIndex = 1 - Me.lblVersion.Text = "Version {0}.{1:00}" - Me.lblVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblCopyright - ' - Me.lblCopyright.BackColor = System.Drawing.Color.Transparent - Me.lblCopyright.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblCopyright.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblCopyright.Location = New System.Drawing.Point(3, 21) - Me.lblCopyright.Name = "lblCopyright" - Me.lblCopyright.Size = New System.Drawing.Size(290, 21) - Me.lblCopyright.TabIndex = 2 - Me.lblCopyright.Text = "Copyright" - Me.lblCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblStatus - ' - Me.lblStatus.AutoSize = True - Me.lblStatus.BackColor = System.Drawing.SystemColors.Control - Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblStatus.Location = New System.Drawing.Point(4, 376) - Me.lblStatus.Name = "lblStatus" - Me.lblStatus.Size = New System.Drawing.Size(105, 15) - Me.lblStatus.TabIndex = 1 - Me.lblStatus.Text = "Status Monitoring:" - Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'pbStatus - ' - Me.pbStatus.Dock = System.Windows.Forms.DockStyle.Bottom - Me.pbStatus.Location = New System.Drawing.Point(0, 396) - Me.pbStatus.Maximum = 125 - Me.pbStatus.Name = "pbStatus" - Me.pbStatus.Size = New System.Drawing.Size(621, 23) - Me.pbStatus.TabIndex = 0 - ' - 'TableLayoutPanel1 - ' - Me.TableLayoutPanel1.ColumnCount = 1 - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle()) - Me.TableLayoutPanel1.Controls.Add(Me.lblCopyright, 0, 1) - Me.TableLayoutPanel1.Controls.Add(Me.lblVersion, 0, 0) - Me.TableLayoutPanel1.Location = New System.Drawing.Point(313, 188) - Me.TableLayoutPanel1.Name = "TableLayoutPanel1" - Me.TableLayoutPanel1.RowCount = 2 - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) - Me.TableLayoutPanel1.Size = New System.Drawing.Size(296, 42) - Me.TableLayoutPanel1.TabIndex = 2 - ' - 'PictureBox1 - ' - Me.PictureBox1.Image = Global.DigitalData.GUIs.ClientSuite.My.Resources.Resources.iconfinder_Gowalla_324477 - Me.PictureBox1.Location = New System.Drawing.Point(0, -1) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(520, 374) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.PictureBox1.TabIndex = 3 - Me.PictureBox1.TabStop = False - ' - 'lblProductName - ' - Me.lblProductName.AutoSize = True - Me.lblProductName.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblProductName.Location = New System.Drawing.Point(316, 156) - Me.lblProductName.Name = "lblProductName" - Me.lblProductName.Size = New System.Drawing.Size(48, 17) - Me.lblProductName.TabIndex = 4 - Me.lblProductName.Text = "Label1" - ' - 'frmSplash - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.ClientSize = New System.Drawing.Size(621, 419) - Me.ControlBox = False - Me.Controls.Add(Me.lblProductName) - Me.Controls.Add(Me.TableLayoutPanel1) - Me.Controls.Add(Me.lblStatus) - Me.Controls.Add(Me.pbStatus) - Me.Controls.Add(Me.PictureBox1) - Me.DoubleBuffered = True - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "frmSplash" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.TransparencyKey = System.Drawing.Color.White - Me.TableLayoutPanel1.ResumeLayout(False) - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents lblStatus As System.Windows.Forms.Label - Friend WithEvents pbStatus As System.Windows.Forms.ProgressBar - Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel - Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox - Friend WithEvents lblProductName As Label -End Class diff --git a/GUIs.ClientSuite/frmSplash.resx b/GUIs.ClientSuite/frmSplash.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.ClientSuite/frmSplash.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.ClientSuite/frmSplash.vb b/GUIs.ClientSuite/frmSplash.vb deleted file mode 100644 index d353e0fb..00000000 --- a/GUIs.ClientSuite/frmSplash.vb +++ /dev/null @@ -1,132 +0,0 @@ -Imports System.ComponentModel -Imports System.ServiceModel -Imports System.Threading -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference - -Public NotInheritable Class frmSplash - Private _Worker As New BackgroundWorker() - Private _ChannelFactory As ChannelFactory(Of IEDMIServiceChannel) - Private _Channel As IEDMIServiceChannel - Private _Logger As Logger - - Private _CurrentRetry As Integer = 0 - - Private Const SLEEP_TIME = 600 - Private Const INIT_STEPS = 4 - Private Const MAX_RETRIES = 10 - Private Const OPEN_TIMEOUT = 10 - - Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - lblProductName.Text = My.Application.Info.ProductName - lblCopyright.Text = My.Application.Info.Copyright - lblVersion.Text = String.Format("Version {0}", My.Application.Info.Version.ToString) - - BringToFront() - - Dim oService As New ClassService(My.LogConfig) - Dim oConnectionURLExists As Boolean = My.SysConfig.ServiceConnection <> String.Empty - - 'Dim oInit As New ClassInit() - 'Dim oConnectionURLExists = oInit.TestConnectionURLExists() - - If Not oConnectionURLExists Then - Dim oResult = frmConfigService.ShowDialog() - - If oResult = DialogResult.Cancel Then - MsgBox("Es wurde keine Dienst-Verbindungsurl hinterlegt. Die Anwendung wird beendet.") - Application.Exit() - Else - StartWorker() - End If - Else - StartWorker() - End If - End Sub - - Private Function SetProgress(_step As Integer) - Return _step * (100 / INIT_STEPS) - End Function - -#Region "Worker" - Private Enum WorkerResult - AllGood - ServiceOffline - End Enum - - - Private Sub StartWorker() - AddHandler _Worker.DoWork, AddressOf bw_DoWork - AddHandler _Worker.ProgressChanged, AddressOf bw_ProgressChanged - AddHandler _Worker.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted - - _Worker.WorkerReportsProgress = True - _Worker.RunWorkerAsync() - End Sub - - Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) - Dim oService As New ClassService(My.LogConfig) - - _Worker.ReportProgress(SetProgress(1), "Connecting to service..") - - Dim oConnectionSuccessful = False - - e.Result = WorkerResult.AllGood - - _ChannelFactory = oService.GetChannelFactory() - _Channel = _ChannelFactory.CreateChannel() - - 'Dim oServiceOnline = Await oService.TestConnectionAsync() - Dim oServiceState = oService.TestConnection() - - If oServiceState <> ClassService.ConnectionTestResult.Successful Then - e.Result = WorkerResult.ServiceOffline - Return - End If - - Thread.Sleep(SLEEP_TIME) - - ' TODO: Initialize Usersettings and populate My.Application.User - - _Worker.ReportProgress(SetProgress(2), "Initializing User Settings..") - Thread.Sleep(SLEEP_TIME) - - _Worker.ReportProgress(SetProgress(3), "Connecting to mainframe..") - Thread.Sleep(SLEEP_TIME) - - _Worker.ReportProgress(SetProgress(4), "Setting up neural network..") - Thread.Sleep(SLEEP_TIME) - End Sub - - Private Sub bw_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) - pbStatus.Value = e.ProgressPercentage - lblStatus.Text = e.UserState.ToString() - End Sub - - Private Sub bw_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) - ' Bei Fehler MsgBox anzeigen und Programm beenden - If e.Error IsNot Nothing Then - MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Unhandled Error") - Application.Exit() - ElseIf e.Result <> WorkerResult.AllGood Then - Dim oErrorMessage - - Select Case e.Result - Case WorkerResult.ServiceOffline - oErrorMessage = "Service is offline!" - Case Else - oErrorMessage = "Unknown Error" - End Select - - MsgBox($"Application could not be started{vbNewLine}Reason: {oErrorMessage}", MsgBoxStyle.Critical, "Critical Error") - Application.Exit() - End If - - My.ChannelFactory = _ChannelFactory - My.Channel = _Channel - - ' Wenn kein Fehler, Splashscreen schließen - Me.Close() - End Sub -#End Region -End Class diff --git a/GUIs.ClientSuite/packages.config b/GUIs.ClientSuite/packages.config deleted file mode 100644 index d4621204..00000000 --- a/GUIs.ClientSuite/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj b/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj index 7f3084f7..a64fb03f 100644 --- a/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj +++ b/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj @@ -57,10 +57,38 @@ False + + False + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + False ..\Modules.EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll + + False + ..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + False + ..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll + + + False + ..\..\DDModules\Windows\bin\Debug\DigitalData.Modules.Windows.dll + + + False + ..\..\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll + ..\packages\NLog.4.7.10\lib\net45\NLog.dll @@ -134,21 +162,21 @@ frmMatch.vb - + frmMatch.vb - + frmMatch.vb - + frmTreeView.vb - - frmTreeView.vb - - - frmTreeView.vb - + + frmTreeView.vb + + + frmTreeView.vb + VbMyResourcesResXFileCodeGenerator @@ -159,12 +187,12 @@ frmMatchLoading.vb - - frmMatchLoading.vb - - - frmMatchLoading.vb - + + frmMatchLoading.vb + + + frmMatchLoading.vb + @@ -184,38 +212,6 @@ {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049} Common - - {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} - Base - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {7c3b0c7e-59fe-4e1a-a655-27ae119f9444} - Patterns - - - {81cac44f-3711-4c8f-ae98-e02a7448782a} - ZooFlow - - - {5efaef9b-90b9-4f05-9f70-f79ad77fff86} - Windows - \ No newline at end of file diff --git a/GUIs.Common/Common.vbproj b/GUIs.Common/Common.vbproj index 22ca91c1..6231f18d 100644 --- a/GUIs.Common/Common.vbproj +++ b/GUIs.Common/Common.vbproj @@ -63,6 +63,46 @@ False + + False + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + False + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll + + + False + ..\..\DDModules\Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll + + + False + ..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + False + ..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll + + + False + ..\..\DDModules\Windows\bin\Debug\DigitalData.Modules.Windows.dll + + + False + ..\..\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll + D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll @@ -133,10 +173,10 @@ - + frmDocumentResultList.vb - + Form @@ -158,10 +198,16 @@ Form - + + frmSQLConfig.vb + + + Form + + frmSQLEditor.vb - + Form @@ -179,12 +225,6 @@ - - NNMsgBoxEx.vb - - - Form - True @@ -221,13 +261,13 @@ frmDialog.vb - + frmDocumentResultList.vb - + frmDocumentResultList.vb - + frmDocumentResultList.vb Designer @@ -243,7 +283,10 @@ frmNotification_Startup.vb - + + frmSQLConfig.vb + + frmSQLEditor.vb @@ -252,9 +295,6 @@ frmWorkflow_Adhoc_start.vb - - NNMsgBoxEx.vb - VbMyResourcesResXFileCodeGenerator @@ -289,46 +329,6 @@ {3DCD6D1A-C830-4241-B7E4-27430E7EA483} LookupControl - - {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} - Base - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - {7c3b0c7e-59fe-4e1a-a655-27ae119f9444} - Patterns - - - {81cac44f-3711-4c8f-ae98-e02a7448782a} - ZooFlow - - - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86} - Windows - diff --git a/GUIs.Common/frmDocumentResultList.Designer.vb b/GUIs.Common/DocumentResultList/frmDocumentResultList.Designer.vb similarity index 100% rename from GUIs.Common/frmDocumentResultList.Designer.vb rename to GUIs.Common/DocumentResultList/frmDocumentResultList.Designer.vb diff --git a/GUIs.Common/frmDocumentResultList.en.resx b/GUIs.Common/DocumentResultList/frmDocumentResultList.en.resx similarity index 100% rename from GUIs.Common/frmDocumentResultList.en.resx rename to GUIs.Common/DocumentResultList/frmDocumentResultList.en.resx diff --git a/GUIs.Common/frmDocumentResultList.fr.resx b/GUIs.Common/DocumentResultList/frmDocumentResultList.fr.resx similarity index 100% rename from GUIs.Common/frmDocumentResultList.fr.resx rename to GUIs.Common/DocumentResultList/frmDocumentResultList.fr.resx diff --git a/GUIs.Common/frmDocumentResultList.resx b/GUIs.Common/DocumentResultList/frmDocumentResultList.resx similarity index 100% rename from GUIs.Common/frmDocumentResultList.resx rename to GUIs.Common/DocumentResultList/frmDocumentResultList.resx diff --git a/GUIs.Common/frmDocumentResultList.vb b/GUIs.Common/DocumentResultList/frmDocumentResultList.vb similarity index 99% rename from GUIs.Common/frmDocumentResultList.vb rename to GUIs.Common/DocumentResultList/frmDocumentResultList.vb index df1c7287..cdd2ee02 100644 --- a/GUIs.Common/frmDocumentResultList.vb +++ b/GUIs.Common/DocumentResultList/frmDocumentResultList.vb @@ -127,7 +127,7 @@ Public Class frmDocumentResultList Private Function GetOperationMode() As OperationMode Dim oOperationMode As OperationMode - If Environment.Service.Client.IsOnline AndAlso Environment.Service.Address <> String.Empty Then + If Environment.Service IsNot Nothing AndAlso Environment.Service.Client.IsOnline AndAlso Environment.Service.Address <> String.Empty Then oOperationMode = OperationMode.WithAppServer Else oOperationMode = OperationMode.NoAppServer diff --git a/GUIs.Common/My Project/AssemblyInfo.vb b/GUIs.Common/My Project/AssemblyInfo.vb index 39d4a6e5..ed4c58c0 100644 --- a/GUIs.Common/My Project/AssemblyInfo.vb +++ b/GUIs.Common/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/GUIs.Common/NNMsgBoxEx.Designer.vb b/GUIs.Common/NNMsgBoxEx.Designer.vb deleted file mode 100644 index b909dcd0..00000000 --- a/GUIs.Common/NNMsgBoxEx.Designer.vb +++ /dev/null @@ -1,135 +0,0 @@ - -Partial Class NNMsgBoxEx - Inherits DevExpress.XtraEditors.XtraForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Me.chkBx = New System.Windows.Forms.CheckBox() - Me.btn1 = New System.Windows.Forms.Button() - Me.btn2 = New System.Windows.Forms.Button() - Me.messageLbl = New System.Windows.Forms.Label() - Me.btn3 = New System.Windows.Forms.Button() - Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl() - CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelControl1.SuspendLayout() - Me.SuspendLayout() - ' - 'chkBx - ' - Me.chkBx.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.chkBx.AutoSize = True - Me.chkBx.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkBx.Location = New System.Drawing.Point(12, 76) - Me.chkBx.Name = "chkBx" - Me.chkBx.Size = New System.Drawing.Size(152, 20) - Me.chkBx.TabIndex = 22 - Me.chkBx.Text = "Don't show this again" - Me.chkBx.UseVisualStyleBackColor = True - Me.chkBx.Visible = False - ' - 'btn1 - ' - Me.btn1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btn1.AutoSize = True - Me.btn1.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.btn1.Location = New System.Drawing.Point(161, 12) - Me.btn1.Name = "btn1" - Me.btn1.Size = New System.Drawing.Size(100, 23) - Me.btn1.TabIndex = 5 - Me.btn1.Text = "Button1" - Me.btn1.UseVisualStyleBackColor = True - Me.btn1.Visible = False - ' - 'btn2 - ' - Me.btn2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btn2.AutoSize = True - Me.btn2.Location = New System.Drawing.Point(267, 12) - Me.btn2.Name = "btn2" - Me.btn2.Size = New System.Drawing.Size(100, 23) - Me.btn2.TabIndex = 6 - Me.btn2.Text = "Button2" - Me.btn2.UseVisualStyleBackColor = True - Me.btn2.Visible = False - ' - 'messageLbl - ' - Me.messageLbl.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.messageLbl.Location = New System.Drawing.Point(58, 10) - Me.messageLbl.Name = "messageLbl" - Me.messageLbl.Size = New System.Drawing.Size(415, 63) - Me.messageLbl.TabIndex = 19 - Me.messageLbl.Text = "[Message]" - ' - 'btn3 - ' - Me.btn3.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btn3.AutoSize = True - Me.btn3.Location = New System.Drawing.Point(373, 12) - Me.btn3.Name = "btn3" - Me.btn3.Size = New System.Drawing.Size(100, 23) - Me.btn3.TabIndex = 7 - Me.btn3.Text = "Button3" - Me.btn3.UseVisualStyleBackColor = True - Me.btn3.Visible = False - ' - 'PanelControl1 - ' - Me.PanelControl1.Controls.Add(Me.btn1) - Me.PanelControl1.Controls.Add(Me.btn3) - Me.PanelControl1.Controls.Add(Me.btn2) - Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Bottom - Me.PanelControl1.Location = New System.Drawing.Point(0, 102) - Me.PanelControl1.Name = "PanelControl1" - Me.PanelControl1.Size = New System.Drawing.Size(485, 47) - Me.PanelControl1.TabIndex = 23 - ' - 'NNMsgBoxEx - ' - Me.Appearance.BackColor = System.Drawing.SystemColors.ControlLightLight - Me.Appearance.Options.UseBackColor = True - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None - Me.CancelButton = Me.btn1 - Me.ClientSize = New System.Drawing.Size(485, 149) - Me.Controls.Add(Me.PanelControl1) - Me.Controls.Add(Me.chkBx) - Me.Controls.Add(Me.messageLbl) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "NNMsgBoxEx" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "[Title]" - CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.PanelControl1.ResumeLayout(False) - Me.PanelControl1.PerformLayout() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Private chkBx As System.Windows.Forms.CheckBox - Private WithEvents btn1 As System.Windows.Forms.Button - Private WithEvents btn2 As System.Windows.Forms.Button - Private messageLbl As System.Windows.Forms.Label - Private WithEvents btn3 As System.Windows.Forms.Button - Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl -End Class diff --git a/GUIs.Common/NNMsgBoxEx.resx b/GUIs.Common/NNMsgBoxEx.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.Common/NNMsgBoxEx.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.Common/NNMsgBoxEx.vb b/GUIs.Common/NNMsgBoxEx.vb deleted file mode 100644 index 4d4c4662..00000000 --- a/GUIs.Common/NNMsgBoxEx.vb +++ /dev/null @@ -1,196 +0,0 @@ -Imports System.Drawing -Imports System.Windows.Forms - -Public Class NNMsgBoxEx - Public Sub New(message As String, title As String) - Me.New(message, title, MessageBoxIcon.None) - End Sub - - Public Sub New(message As String, title As String, icon As MessageBoxIcon) - Me.New(message, title, getMessageBoxIcon(icon)) - End Sub - - Public Sub New(message As String, title As String, icon As Icon) - InitializeComponent() - messageLbl.Text = message - Text = title - m_sysIcon = icon - If m_sysIcon Is Nothing Then messageLbl.Location = New System.Drawing.Point(FORM_X_MARGIN, FORM_Y_MARGIN) - SetButtons("OK") - End Sub - - Private Shared Function getMessageBoxIcon(icon As MessageBoxIcon) As Icon - Dim oIcon As Icon = Nothing - - Select Case icon - Case MessageBoxIcon.Asterisk - oIcon = SystemIcons.Asterisk - Case MessageBoxIcon.[Error] - oIcon = SystemIcons.[Error] - Case MessageBoxIcon.Exclamation - oIcon = SystemIcons.Exclamation - Case MessageBoxIcon.Question - oIcon = SystemIcons.Question - End Select - - If oIcon IsNot Nothing Then - Return DevExpress.Utils.Drawing.Helpers.StockIconHelper.GetWindows8AssociatedIcon(oIcon) - Else - Return Nothing - End If - End Function - - Private m_minWidth As Integer - Private m_minHeight As Integer - - Public Sub SetMinSize(width As Integer, height As Integer) - m_minWidth = width - m_minHeight = height - End Sub - - Public Sub SetButtons(ParamArray names As String()) - Dim drs As DialogResult() = New DialogResult(names.Length - 1) {} - - For i As Integer = 0 To names.Length - 1 - drs(i) = DialogResult.None - Next - - SetButtons(names, drs) - End Sub - - Public Sub SetButtons(names As String(), results As DialogResult()) - SetButtons(names, results, 1) - End Sub - - Public Sub SetButtons(names As String(), results As DialogResult(), def As Integer) - If names Is Nothing Then Throw New ArgumentNullException("btnText", "Button Text is null") - Dim count As Integer = names.Length - If count < 1 OrElse count > 3 Then Throw New ArgumentException("Invalid number of buttons. Must be between 1 and 3.") - m_minButtonRowWidth = setButtonParams(btn1, names(0), If(def = 1, 1, 2), results(0)) - - If count > 1 Then - m_minButtonRowWidth += setButtonParams(btn2, names(1), If(def = 2, 1, 3), results(1)) + BUTTON_SPACE - End If - - If count > 2 Then - m_minButtonRowWidth += setButtonParams(btn3, names(2), If(def = 3, 1, 4), results(2)) + BUTTON_SPACE - End If - End Sub - - Private m_minButtonRowWidth As Integer - - Private Shared Function setButtonParams(btn As Button, text As String, tab As Integer, dr As DialogResult) As Integer - btn.Text = text - btn.Visible = True - btn.DialogResult = dr - btn.TabIndex = tab - Return btn.Size.Width - End Function - - Public Sub SetCheckbox(text As String) - SetCheckbox(text, False) - End Sub - - Public Sub SetCheckbox(text As String, chcked As Boolean) - chkBx.Visible = True - chkBx.Text = text - chkBx.Checked = chcked - m_minButtonRowWidth += chkBx.Size.Width + CHECKBOX_SPACE - End Sub - - Private Sub DialogBox_Load(sender As Object, e As EventArgs) - If Not btn1.Visible Then SetButtons(New String() {"OK"}, New DialogResult() {DialogResult.OK}) - m_minButtonRowWidth += 2 * FORM_X_MARGIN - setDialogSize() - setButtonRowLocations() - End Sub - - Const FORM_Y_MARGIN As Integer = 10 - Const FORM_X_MARGIN As Integer = 16 - Const BUTTON_SPACE As Integer = 5 - Const CHECKBOX_SPACE As Integer = 15 - Const TEXT_Y_MARGIN As Integer = 30 - - Private Sub setDialogSize() - Dim requiredWidth As Integer = messageLbl.Location.X + messageLbl.Size.Width + FORM_X_MARGIN - requiredWidth = If(requiredWidth > m_minButtonRowWidth, requiredWidth, m_minButtonRowWidth) - Dim requiredHeight As Integer = messageLbl.Location.Y + messageLbl.Size.Height - btn2.Location.Y + ClientSize.Height + TEXT_Y_MARGIN - Dim minSetWidth As Integer = If(ClientSize.Width > m_minWidth, ClientSize.Width, m_minWidth) - Dim minSetHeight As Integer = If(ClientSize.Height > m_minHeight, ClientSize.Height, m_minHeight) - Dim s As Size = New Size() - s.Width = If(requiredWidth > minSetWidth, requiredWidth, minSetWidth) - s.Height = If(requiredHeight > minSetHeight, requiredHeight, minSetHeight) - ClientSize = s - End Sub - - Private Sub setButtonRowLocations() - Dim formWidth As Integer = ClientRectangle.Width - Dim x As Integer = formWidth - FORM_X_MARGIN - Dim y As Integer = btn1.Location.Y - - If btn3.Visible Then - x -= btn3.Size.Width - btn3.Location = New Point(x, y) - x -= BUTTON_SPACE - End If - - If btn2.Visible Then - x -= btn2.Size.Width - btn2.Location = New Point(x, y) - x -= BUTTON_SPACE - End If - - x -= btn1.Size.Width - btn1.Location = New Point(x, y) - If chkBx.Visible Then chkBx.Location = New Point(FORM_X_MARGIN, chkBx.Location.Y) - End Sub - - Private m_sysIcon As Icon - - Protected Overrides Sub OnPaint(e As PaintEventArgs) - If m_sysIcon IsNot Nothing Then - Dim g As Graphics = e.Graphics - g.DrawIconUnstretched(m_sysIcon, New Rectangle(FORM_X_MARGIN, FORM_Y_MARGIN, m_sysIcon.Width, m_sysIcon.Height)) - End If - - MyBase.OnPaint(e) - End Sub - - Public ReadOnly Property CheckboxChecked As Boolean - Get - Return chkBx.Checked - End Get - End Property - - Private m_result As DialogBoxResult - - Public ReadOnly Property Result As DialogBoxResult - Get - Return m_result - End Get - End Property - - Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn1.Click, btn2.Click, btn3.Click - If sender.Equals(btn1) Then - m_result = DialogBoxResult.Button1 - ElseIf sender.Equals(btn2) Then - m_result = DialogBoxResult.Button2 - ElseIf sender.Equals(btn3) Then - m_result = DialogBoxResult.Button3 - End If - - If (CType(sender, Button)).DialogResult = DialogResult.None Then - Close() - End If - End Sub - - Enum DialogBoxResult - Button1 - Button2 - Button3 - End Enum - - Private Sub NNMsgBoxEx_Load(sender As Object, e As EventArgs) Handles MyBase.Load - - End Sub -End Class diff --git a/GUIs.Common/frmSQLEditor.Designer.vb b/GUIs.Common/SQLEditor/frmSQLEditor.Designer.vb similarity index 100% rename from GUIs.Common/frmSQLEditor.Designer.vb rename to GUIs.Common/SQLEditor/frmSQLEditor.Designer.vb diff --git a/GUIs.Common/frmSQLEditor.resx b/GUIs.Common/SQLEditor/frmSQLEditor.resx similarity index 100% rename from GUIs.Common/frmSQLEditor.resx rename to GUIs.Common/SQLEditor/frmSQLEditor.resx diff --git a/GUIs.Common/frmSQLEditor.vb b/GUIs.Common/SQLEditor/frmSQLEditor.vb similarity index 100% rename from GUIs.Common/frmSQLEditor.vb rename to GUIs.Common/SQLEditor/frmSQLEditor.vb diff --git a/SQLConfig/frmSQLConfig.Designer.vb b/GUIs.Common/frmSQLConfig.Designer.vb similarity index 100% rename from SQLConfig/frmSQLConfig.Designer.vb rename to GUIs.Common/frmSQLConfig.Designer.vb diff --git a/SQLConfig/frmSQLConfig.resx b/GUIs.Common/frmSQLConfig.resx similarity index 100% rename from SQLConfig/frmSQLConfig.resx rename to GUIs.Common/frmSQLConfig.resx diff --git a/SQLConfig/frmSQLConfig.vb b/GUIs.Common/frmSQLConfig.vb similarity index 97% rename from SQLConfig/frmSQLConfig.vb rename to GUIs.Common/frmSQLConfig.vb index 74149683..026d1f2d 100644 --- a/SQLConfig/frmSQLConfig.vb +++ b/GUIs.Common/frmSQLConfig.vb @@ -1,8 +1,6 @@ -Imports System.ComponentModel -Imports System.Data.SqlClient +Imports System.Data.SqlClient +Imports System.Windows.Forms Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Encryption -Imports DigitalData.Modules.Filesystem Imports DigitalData.Modules.Logging Public Class frmSQLConfig diff --git a/GUIs.GlobalIndexer/GlobalIndexer.vbproj b/GUIs.GlobalIndexer/GlobalIndexer.vbproj index ba1813c4..60aa8c82 100644 --- a/GUIs.GlobalIndexer/GlobalIndexer.vbproj +++ b/GUIs.GlobalIndexer/GlobalIndexer.vbproj @@ -57,6 +57,10 @@ False + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\NLog.4.7.10\lib\net45\NLog.dll @@ -132,14 +136,6 @@ {3dcd6d1a-c830-4241-b7e4-27430e7ea483} LookupControl - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - \ No newline at end of file diff --git a/GUIs.Monitor/ChartType_Line.ico b/GUIs.Monitor/ChartType_Line.ico deleted file mode 100644 index 86311e77..00000000 Binary files a/GUIs.Monitor/ChartType_Line.ico and /dev/null differ diff --git a/GUIs.Monitor/Config.vb b/GUIs.Monitor/Config.vb deleted file mode 100644 index f4768d0f..00000000 --- a/GUIs.Monitor/Config.vb +++ /dev/null @@ -1,8 +0,0 @@ -Imports DigitalData.Modules.Config.ConfigAttributes - -Public Class Config - - Public Property ConnectionString As String = String.Empty - Public Property IDB_Praefix As String = "IDB" - Public Property SearchKeySQL As String = $"SELECT T.ATTR_ID, T.ATTR_TITLE FROM {IDB_Praefix}.dbo.VWIDB_BE_ATTRIBUTE T, TBDD_MONITORING_ATTRIBUTES T1 WHERE T.ATTR_ID = T1.ATTRIBUTE_ID" -End Class diff --git a/GUIs.Monitor/Constants.vb b/GUIs.Monitor/Constants.vb deleted file mode 100644 index f007516c..00000000 --- a/GUIs.Monitor/Constants.vb +++ /dev/null @@ -1,9 +0,0 @@ -Public Class Constants - Public Const STATE_SUCCESS As String = "SUCCESS" - Public Const STATE_FAILURE As String = "FAILURE" - Public Const STATE_WARNING As String = "WARNING" - Public Const STATE_WAITING As String = "WAITING" - Public Const STATE_HIGHLIGHT As String = "HIGHLIGHT" - Public Const STATE_DEFAULT As String = "DEFAULT" - Public Const STATE_USER As String = "USER" -End Class diff --git a/GUIs.Monitor/Monitor.vbproj b/GUIs.Monitor/Monitor.vbproj deleted file mode 100644 index dfee285b..00000000 --- a/GUIs.Monitor/Monitor.vbproj +++ /dev/null @@ -1,213 +0,0 @@ - - - Debug - x86 - 8.0.30703 - 2.0 - {E24E8D40-0361-4C07-8FAE-3621DE316E70} - WinExe - DigitalData.GUIs.Monitor - DigitalData.GUIs.Monitor - v4.6.1 - Monitor.Program - 512 - On - Binary - Off - On - - - - AnyCPU - true - full - false - bin\Debug\ - true - true - prompt - - - AnyCPU - pdbonly - true - bin\Release\ - false - true - prompt - - - WindowsForms - - - DigitalData.GUIs.Monitor.My.MyApplication - - - ChartType_Line.ico - - - - - - - - - - - - - - - - - - - - - - - - - False - ..\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll - - - False - D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmMonitor.vb - - - Form - - - True - Application.myapp - True - - - - frmMonitor.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.vb - - - True - Settings.settings - True - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - - - {d20a6bf2-c7c6-4a7a-b34d-fa27d775a049} - Common - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {65efb268-c0e0-40c1-8981-9f70dee5c74a} - SQLConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Monitor.vbproj.bak b/GUIs.Monitor/Monitor.vbproj.bak deleted file mode 100644 index 4c99f529..00000000 --- a/GUIs.Monitor/Monitor.vbproj.bak +++ /dev/null @@ -1,214 +0,0 @@ - - - Debug - x86 - 8.0.30703 - 2.0 - {E24E8D40-0361-4C07-8FAE-3621DE316E70} - WinExe - DigitalData.GUIs.Monitor - DigitalData.GUIs.Monitor - v4.6.1 - Monitor.Program - 512 - On - Binary - Off - On - - - - AnyCPU - true - full - false - bin\Debug\ - true - true - prompt - - - AnyCPU - pdbonly - true - bin\Release\ - false - true - prompt - - - WindowsForms - - - DigitalData.GUIs.Monitor.My.MyApplication - - - ChartType_Line.ico - - - - - - - - - - - - - - - - - - - - - - False - ..\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll - - - False - D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmMonitor.vb - - - Form - - - True - Application.myapp - True - - - - frmMonitor.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.vb - - - True - Settings.settings - True - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - - - {3e7bc8a9-91ef-49b8-8110-2c01f664c24a} - SQLEditor - - - {d20a6bf2-c7c6-4a7a-b34d-fa27d775a049} - Common - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {65efb268-c0e0-40c1-8981-9f70dee5c74a} - SQLConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/My Project/Application.Designer.vb b/GUIs.Monitor/My Project/Application.Designer.vb deleted file mode 100644 index a6150f2a..00000000 --- a/GUIs.Monitor/My Project/Application.Designer.vb +++ /dev/null @@ -1,38 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -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 - - _ - 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 - - _ - Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.DigitalData.GUIs.Monitor.frmMonitor - End Sub - End Class -End Namespace diff --git a/GUIs.Monitor/My Project/Application.myapp b/GUIs.Monitor/My Project/Application.myapp deleted file mode 100644 index fb6ccec4..00000000 --- a/GUIs.Monitor/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - true - frmMonitor - false - 0 - true - 0 - true - \ No newline at end of file diff --git a/GUIs.Monitor/My Project/AssemblyInfo.vb b/GUIs.Monitor/My Project/AssemblyInfo.vb deleted file mode 100644 index 864a5e89..00000000 --- a/GUIs.Monitor/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,36 +0,0 @@ -Imports System.Reflection -Imports System.Runtime.CompilerServices -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - - - - - - - - - -' Setting ComVisible to false makes the types in this assembly not visible -' to COM components. If you need to access a type in this assembly from -' COM, set the ComVisible attribute to true on that type. - - -' The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' [assembly: AssemblyVersion("1.0.*")] - - diff --git a/GUIs.Monitor/My Project/Resources.Designer.vb b/GUIs.Monitor/My Project/Resources.Designer.vb deleted file mode 100644 index fd58df11..00000000 --- a/GUIs.Monitor/My Project/Resources.Designer.vb +++ /dev/null @@ -1,133 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.GUIs.Monitor.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property bo_dashboard() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("bo_dashboard", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property charttype_line() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("charttype_line", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property enablesearch() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("enablesearch", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property export() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("export", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property gettingstarted() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("gettingstarted", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property inserttreeview() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("inserttreeview", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. - ''' - Friend ReadOnly Property managedatasource() As DevExpress.Utils.Svg.SvgImage - Get - Dim obj As Object = ResourceManager.GetObject("managedatasource", resourceCulture) - Return CType(obj,DevExpress.Utils.Svg.SvgImage) - End Get - End Property - End Module -End Namespace diff --git a/GUIs.Monitor/My Project/Resources.resx b/GUIs.Monitor/My Project/Resources.resx deleted file mode 100644 index 7658f667..00000000 --- a/GUIs.Monitor/My Project/Resources.resx +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\export.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\managedatasource.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\charttype_line.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\enablesearch.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\gettingstarted.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\bo_dashboard.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\inserttreeview1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - \ No newline at end of file diff --git a/GUIs.Monitor/My Project/Resources.resx.bak b/GUIs.Monitor/My Project/Resources.resx.bak deleted file mode 100644 index 55da587a..00000000 --- a/GUIs.Monitor/My Project/Resources.resx.bak +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\export.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\managedatasource.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\charttype_line.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\enablesearch.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\gettingstarted.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\bo_dashboard.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\inserttreeview1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - \ No newline at end of file diff --git a/GUIs.Monitor/My Project/Settings.Designer.vb b/GUIs.Monitor/My Project/Settings.Designer.vb deleted file mode 100644 index 008b7edb..00000000 --- a/GUIs.Monitor/My Project/Settings.Designer.vb +++ /dev/null @@ -1,71 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - - - _ -Partial Friend NotInheritable Class Settings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As Settings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()),Settings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As Settings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property -End Class - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.GUIs.Monitor.Settings - Get - Return Global.DigitalData.GUIs.Monitor.Settings.Default - End Get - End Property - End Module -End Namespace diff --git a/GUIs.Monitor/My Project/Settings.settings b/GUIs.Monitor/My Project/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/GUIs.Monitor/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/GUIs.Monitor/My Project/licenses.licx b/GUIs.Monitor/My Project/licenses.licx deleted file mode 100644 index ba8a25f1..00000000 --- a/GUIs.Monitor/My Project/licenses.licx +++ /dev/null @@ -1,8 +0,0 @@ -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraRichEdit.RichEditControl, DevExpress.XtraRichEdit.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Monitor/My Project/licenses.licx.bak b/GUIs.Monitor/My Project/licenses.licx.bak deleted file mode 100644 index 4d2000ba..00000000 --- a/GUIs.Monitor/My Project/licenses.licx.bak +++ /dev/null @@ -1,8 +0,0 @@ -DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraRichEdit.RichEditControl, DevExpress.XtraRichEdit.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Monitor/Resources/actions_refresh.svg b/GUIs.Monitor/Resources/actions_refresh.svg deleted file mode 100644 index 86a9ccb8..00000000 --- a/GUIs.Monitor/Resources/actions_refresh.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/bo_dashboard.svg b/GUIs.Monitor/Resources/bo_dashboard.svg deleted file mode 100644 index 709c4d77..00000000 --- a/GUIs.Monitor/Resources/bo_dashboard.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/charttype_line.svg b/GUIs.Monitor/Resources/charttype_line.svg deleted file mode 100644 index 8e1af17b..00000000 --- a/GUIs.Monitor/Resources/charttype_line.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/enablesearch.svg b/GUIs.Monitor/Resources/enablesearch.svg deleted file mode 100644 index 5e415948..00000000 --- a/GUIs.Monitor/Resources/enablesearch.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/export.svg b/GUIs.Monitor/Resources/export.svg deleted file mode 100644 index 92d0143a..00000000 --- a/GUIs.Monitor/Resources/export.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/gettingstarted.svg b/GUIs.Monitor/Resources/gettingstarted.svg deleted file mode 100644 index b9b88d44..00000000 --- a/GUIs.Monitor/Resources/gettingstarted.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/inserttreeview.svg b/GUIs.Monitor/Resources/inserttreeview.svg deleted file mode 100644 index 37993b43..00000000 --- a/GUIs.Monitor/Resources/inserttreeview.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/inserttreeview1.svg b/GUIs.Monitor/Resources/inserttreeview1.svg deleted file mode 100644 index 37993b43..00000000 --- a/GUIs.Monitor/Resources/inserttreeview1.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/Resources/managedatasource.svg b/GUIs.Monitor/Resources/managedatasource.svg deleted file mode 100644 index d08be544..00000000 --- a/GUIs.Monitor/Resources/managedatasource.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/TreeListManager.vb b/GUIs.Monitor/TreeListManager.vb deleted file mode 100644 index 351c7bea..00000000 --- a/GUIs.Monitor/TreeListManager.vb +++ /dev/null @@ -1,237 +0,0 @@ -Imports DevExpress.Utils -Imports DevExpress.XtraEditors.Controls -Imports DevExpress.XtraEditors.Repository -Imports DevExpress.XtraTreeList -Imports DevExpress.XtraTreeList.Columns -Imports DevExpress.XtraTreeList.Nodes -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language.Utils - -Public Class TreeListManager - Private ReadOnly SvgImages As SvgImageCollection - Private ReadOnly LogConfig As LogConfig - Private ReadOnly Property Database As MSSQLServer - Private ReadOnly Logger As Logger - - Private ReadOnly DisplayColumns As New List(Of String) From {"COLUMN1", "COLUMN2", "COLUMN3", "ADDED_WHEN", "STATE", "ICON"} - Private ReadOnly SQLColumns As New List(Of String) From {"SELECT1", "SELECT2", "SELECT3", "SELECT4"} - Private ReadOnly DocViewColumns As New List(Of String) From {"DOCVIEW1", "DOCVIEW2"} - Private ReadOnly HtmlViewColumns As New List(Of String) From {"HTML1", "HTML2"} - Private ReadOnly DataColumns As List(Of String) = SQLColumns. - Concat(DocViewColumns). - Concat(HtmlViewColumns). - ToList - - 'Private ReadOnly Items As New List(Of Tuple(Of TreeList, TreeListProperties)) - Private ReadOnly Items As New Dictionary(Of TreeList, TreeListProperties) - - Public ReadOnly Property TreeLists As List(Of TreeList) - Get - Return Items.Keys.ToList - End Get - End Property - - Public ReadOnly Property CurrentTreeListProps As TreeListProperties - Get - If CurrentTreeList IsNot Nothing Then - Return Items.Item(CurrentTreeList) - Else - Return Nothing - End If - End Get - End Property - - Public Property CurrentTreeList As TreeList - - Public Event TreeList_FocusedNodeChanged As EventHandler(Of FocusedNodeChangedEventArgs) - Public Event TreeList_CustomDrawNodeCell As EventHandler(Of CustomDrawNodeCellEventArgs) - - Public Class TreeListProperties - Public SearchValue As String - Public ViewName As String - Public CreatedAt As Date - End Class - - Private Enum NodeImage - [Default] = 0 - SQL = 1 - File = 2 - Mail = 3 - Success = 4 - Failure = 5 - Warning = 6 - Waiting = 7 - User = 8 - Highlight = 9 - End Enum - - Public Sub New(LogConfig As LogConfig, Database As MSSQLServer, SvgImageCollection As SvgImageCollection) - Me.LogConfig = LogConfig - Me.Database = Database - Logger = LogConfig.GetLogger() - SvgImages = SvgImageCollection - End Sub - - Public Sub Add(TreeList As TreeList) - Items.Add(TreeList, New TreeListProperties() With {.CreatedAt = Now}) - End Sub - - Public Sub AddRange(ParamArray TreeLists As TreeList()) - For Each oTreeList In TreeLists - Add(oTreeList) - Next - End Sub - - Public Function GetNextTreeList() As TreeList - ' Return next free Treelist - For Each oTreeList In TreeLists - If oTreeList.DataSource Is Nothing Then - Return oTreeList - End If - Next - - ' Otherwise return oldest TreeList - Return Items. - OrderBy(Function(i) i.Value.CreatedAt). - Select(Of TreeList)(Function(i) i.Key). - First() - End Function - - Public Sub LoadDataFor(TreeList As TreeList, DataSource As DataTable, ViewName As String, Value As String) - Try - AddHandler TreeList.FocusedNodeChanged, Sub(sender As Object, e As FocusedNodeChangedEventArgs) - RaiseEvent TreeList_FocusedNodeChanged(sender, e) - End Sub - - AddHandler TreeList.CustomDrawNodeCell, Sub(sender As Object, e As CustomDrawNodeCellEventArgs) - RaiseEvent TreeList_CustomDrawNodeCell(sender, e) - End Sub - - ' Load data - TreeList.DataSource = DataSource - TreeList.PopulateColumns() - - ' Show all columns in DisplayColumns List - For Each oColumn In TreeList.Columns - oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName) - If oColumn.FieldName = "ADDED_WHEN" Then - oColumn.Format.FormatType = FormatType.DateTime - oColumn.Format.FormatString = "dd.MM.yyyy HH:MM:ss" - End If - Next - - ' Initialize TreeList visuals - Init(TreeList) - - ' Expand all nodes that contain state WARNING or FAILURE - Dim oStateColumn As TreeListColumn = TreeList.Columns.Item("STATE") - For Each oNode As TreeListNode In TreeList.Nodes - ExpandNodes(oNode, Function(n) - Dim oObjectValue = n.GetValue(oStateColumn) - Dim oValue As String = NotNull(oObjectValue, String.Empty) - Return oValue IsNot Nothing AndAlso (oValue = Constants.STATE_WARNING Or oValue = Constants.STATE_FAILURE) - End Function) - Next - - ' Set currently loaded TreeList as current - CurrentTreeList = TreeList - - ' Update Timestamp and Searchdata for current TreeList - Dim oItem = Items.Item(TreeList) - oItem.CreatedAt = Now - oItem.SearchValue = Value - oItem.ViewName = ViewName - Items.Item(TreeList) = oItem - Catch ex As Exception - Logger.Error(ex) - End Try - End Sub - - Private Sub ExpandNodes(RootNode As TreeListNode, Condition As Predicate(Of TreeListNode)) - If Condition(RootNode) = True Then - RootNode.Expand() - ExpandParentNode(RootNode) - End If - - For Each oNode As TreeListNode In RootNode.Nodes - ExpandNodes(oNode, Condition) - - If Condition(oNode) = True Then - oNode.Expand() - ExpandParentNode(oNode) - End If - Next - End Sub - - Private Sub ExpandParentNode(ChildNode As TreeListNode) - If ChildNode.ParentNode IsNot Nothing Then - ChildNode.ParentNode.Expand() - ExpandParentNode(ChildNode.ParentNode) - End If - End Sub - - Private Sub Init(TreeList As TreeList) - If TreeList.Columns.Count = 0 Then - Exit Sub - End If - - TreeList.KeyFieldName = "GUID" - TreeList.ParentFieldName = "PARENT_ID" - - Dim oStateEdit As New RepositoryItemImageComboBox With { - .SmallImages = SvgImages, - .GlyphAlignment = HorzAlignment.Near - } - oStateEdit.Buttons.Clear() - oStateEdit.Items.AddRange(New List(Of ImageComboBoxItem) From { - New ImageComboBoxItem("Success", Constants.STATE_SUCCESS, NodeImage.Success), - New ImageComboBoxItem("Failure", Constants.STATE_FAILURE, NodeImage.Failure), - New ImageComboBoxItem("Warning", Constants.STATE_WARNING, NodeImage.Warning), - New ImageComboBoxItem("Waiting", Constants.STATE_WAITING, NodeImage.Waiting), - New ImageComboBoxItem("Default", Constants.STATE_DEFAULT, NodeImage.Default), - New ImageComboBoxItem("User", Constants.STATE_USER, NodeImage.User), - New ImageComboBoxItem("Highlight", Constants.STATE_HIGHLIGHT, NodeImage.Highlight) - }) - - Dim oIconEdit As New RepositoryItemImageComboBox With { - .SmallImages = SvgImages, - .GlyphAlignment = HorzAlignment.Near - } - oIconEdit.Buttons.Clear() - oIconEdit.Items.AddRange(New List(Of ImageComboBoxItem) From { - New ImageComboBoxItem("Email", "MAIL", NodeImage.Mail), - New ImageComboBoxItem("SQL", "SQL", NodeImage.SQL), - New ImageComboBoxItem("File", "FILE", NodeImage.File) - }) - - Dim oColumn1 = TreeList.Columns.Item("COLUMN1") - Dim oStateColumn = TreeList.Columns.Item("STATE") - Dim oIconColumn = TreeList.Columns.Item("ICON") - - - oStateColumn.VisibleIndex = 1 - oIconColumn.VisibleIndex = 2 - - With oColumn1 - .VisibleIndex = 0 - .MinWidth = 150 - End With - - With oStateColumn - .ColumnEdit = oStateEdit - .MaxWidth = 25 - .MinWidth = 25 - .Caption = " " - End With - - With oIconColumn - .ColumnEdit = oIconEdit - .MaxWidth = 25 - .MinWidth = 25 - .Caption = " " - End With - - End Sub - -End Class diff --git a/GUIs.Monitor/app.config b/GUIs.Monitor/app.config deleted file mode 100644 index 996e16ad..00000000 --- a/GUIs.Monitor/app.config +++ /dev/null @@ -1,79 +0,0 @@ - - - - -
- - - - - - System - - - - - - Skin/Office 2019 Colorful - - - Fire Brick - - - - - - - - - - - - - - - - - - UseSegoeUI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Monitor/frmDocumentManager.Designer.vb b/GUIs.Monitor/frmDocumentManager.Designer.vb deleted file mode 100644 index 188568b7..00000000 --- a/GUIs.Monitor/frmDocumentManager.Designer.vb +++ /dev/null @@ -1,268 +0,0 @@ - _ -Partial Class frmDocumentManager - Inherits DevExpress.XtraBars.Ribbon.RibbonForm - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - MyBase.Dispose(disposing) - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim DockingContainer1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer() - Me.DocumentManager1 = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components) - Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(Me.components) - Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.DockManager1 = New DevExpress.XtraBars.Docking.DockManager(Me.components) - Me.PanelDashboard = New DevExpress.XtraBars.Docking.DockPanel() - Me.DockPanel1_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.Document1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.Document(Me.components) - Me.DocumentGroup1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup(Me.components) - Me.PanelSearch = New DevExpress.XtraBars.Docking.DockPanel() - Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.PanelDocView = New DevExpress.XtraBars.Docking.DockPanel() - Me.DockPanel3_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.PanelSQL = New DevExpress.XtraBars.Docking.DockPanel() - Me.DockPanel4_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.hideContainerRight = New DevExpress.XtraBars.Docking.AutoHideContainer() - CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelDashboard.SuspendLayout() - CType(Me.Document1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelSearch.SuspendLayout() - Me.PanelDocView.SuspendLayout() - Me.PanelSQL.SuspendLayout() - Me.hideContainerRight.SuspendLayout() - Me.SuspendLayout() - ' - 'DocumentManager1 - ' - Me.DocumentManager1.ContainerControl = Me - Me.DocumentManager1.View = Me.TabbedView1 - Me.DocumentManager1.ViewCollection.AddRange(New DevExpress.XtraBars.Docking2010.Views.BaseView() {Me.TabbedView1}) - ' - 'TabbedView1 - ' - Me.TabbedView1.DocumentGroups.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup() {Me.DocumentGroup1}) - Me.TabbedView1.Documents.AddRange(New DevExpress.XtraBars.Docking2010.Views.BaseDocument() {Me.Document1}) - DockingContainer1.Element = Me.DocumentGroup1 - Me.TabbedView1.RootContainer.Nodes.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer() {DockingContainer1}) - Me.TabbedView1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light - ' - 'RibbonControl1 - ' - Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem}) - Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 1 - Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.Size = New System.Drawing.Size(1134, 159) - Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" - ' - 'RibbonStatusBar1 - ' - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 665) - Me.RibbonStatusBar1.Name = "RibbonStatusBar1" - Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(1134, 22) - ' - 'RibbonPage2 - ' - Me.RibbonPage2.Name = "RibbonPage2" - Me.RibbonPage2.Text = "RibbonPage2" - ' - 'DockManager1 - ' - Me.DockManager1.AutoHideContainers.AddRange(New DevExpress.XtraBars.Docking.AutoHideContainer() {Me.hideContainerRight}) - Me.DockManager1.Form = Me - Me.DockManager1.RootPanels.AddRange(New DevExpress.XtraBars.Docking.DockPanel() {Me.PanelDashboard, Me.PanelSearch, Me.PanelSQL}) - Me.DockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light - Me.DockManager1.TopZIndexControls.AddRange(New String() {"DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.StatusBar", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl"}) - ' - 'PanelDashboard - ' - Me.PanelDashboard.Controls.Add(Me.DockPanel1_Container) - Me.PanelDashboard.DockedAsTabbedDocument = True - Me.PanelDashboard.ID = New System.Guid("7a841a4a-faca-4797-87c6-8be6fc59b50d") - Me.PanelDashboard.Name = "PanelDashboard" - Me.PanelDashboard.Options.ShowCloseButton = False - Me.PanelDashboard.OriginalSize = New System.Drawing.Size(200, 200) - Me.PanelDashboard.Text = "DockPanel1" - ' - 'DockPanel1_Container - ' - Me.DockPanel1_Container.Location = New System.Drawing.Point(0, 0) - Me.DockPanel1_Container.Name = "DockPanel1_Container" - Me.DockPanel1_Container.Size = New System.Drawing.Size(903, 257) - Me.DockPanel1_Container.TabIndex = 0 - ' - 'Document1 - ' - Me.Document1.Caption = "DockPanel1" - Me.Document1.ControlName = "PanelDashboard" - Me.Document1.FloatLocation = New System.Drawing.Point(0, 0) - Me.Document1.FloatSize = New System.Drawing.Size(200, 200) - Me.Document1.Properties.AllowClose = DevExpress.Utils.DefaultBoolean.[False] - Me.Document1.Properties.AllowFloat = DevExpress.Utils.DefaultBoolean.[True] - Me.Document1.Properties.AllowFloatOnDoubleClick = DevExpress.Utils.DefaultBoolean.[True] - ' - 'DocumentGroup1 - ' - Me.DocumentGroup1.Items.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.Document() {Me.Document1}) - ' - 'PanelSearch - ' - Me.PanelSearch.Controls.Add(Me.DockPanel2_Container) - Me.PanelSearch.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left - Me.PanelSearch.ID = New System.Guid("6c1851ca-e156-402e-90f8-a83e25b0ee52") - Me.PanelSearch.Location = New System.Drawing.Point(0, 159) - Me.PanelSearch.Name = "PanelSearch" - Me.PanelSearch.Options.ShowCloseButton = False - Me.PanelSearch.OriginalSize = New System.Drawing.Size(200, 200) - Me.PanelSearch.Size = New System.Drawing.Size(200, 506) - Me.PanelSearch.Text = "Suche" - ' - 'DockPanel2_Container - ' - Me.DockPanel2_Container.Location = New System.Drawing.Point(0, 43) - Me.DockPanel2_Container.Name = "DockPanel2_Container" - Me.DockPanel2_Container.Size = New System.Drawing.Size(199, 463) - Me.DockPanel2_Container.TabIndex = 0 - ' - 'PanelDocView - ' - Me.PanelDocView.Controls.Add(Me.DockPanel3_Container) - Me.PanelDocView.Dock = DevExpress.XtraBars.Docking.DockingStyle.Right - Me.PanelDocView.ID = New System.Guid("a668ae35-02f7-4338-aeee-25839395e8cc") - Me.PanelDocView.Location = New System.Drawing.Point(0, 0) - Me.PanelDocView.Name = "PanelDocView" - Me.PanelDocView.Options.ShowCloseButton = False - Me.PanelDocView.OriginalSize = New System.Drawing.Size(200, 200) - Me.PanelDocView.SavedDock = DevExpress.XtraBars.Docking.DockingStyle.Right - Me.PanelDocView.SavedIndex = 2 - Me.PanelDocView.Size = New System.Drawing.Size(200, 506) - Me.PanelDocView.Text = "Document Viewer" - Me.PanelDocView.Visibility = DevExpress.XtraBars.Docking.DockVisibility.AutoHide - ' - 'DockPanel3_Container - ' - Me.DockPanel3_Container.Location = New System.Drawing.Point(1, 43) - Me.DockPanel3_Container.Name = "DockPanel3_Container" - Me.DockPanel3_Container.Size = New System.Drawing.Size(199, 463) - Me.DockPanel3_Container.TabIndex = 0 - ' - 'PanelSQL - ' - Me.PanelSQL.Controls.Add(Me.DockPanel4_Container) - Me.PanelSQL.Dock = DevExpress.XtraBars.Docking.DockingStyle.Bottom - Me.PanelSQL.ID = New System.Guid("0f65098f-8b5a-4efd-9b19-ba4effecffec") - Me.PanelSQL.Location = New System.Drawing.Point(200, 445) - Me.PanelSQL.Name = "PanelSQL" - Me.PanelSQL.Options.ShowCloseButton = False - Me.PanelSQL.OriginalSize = New System.Drawing.Size(200, 220) - Me.PanelSQL.Size = New System.Drawing.Size(903, 220) - Me.PanelSQL.Text = "SQL" - ' - 'DockPanel4_Container - ' - Me.DockPanel4_Container.Location = New System.Drawing.Point(0, 44) - Me.DockPanel4_Container.Name = "DockPanel4_Container" - Me.DockPanel4_Container.Size = New System.Drawing.Size(903, 176) - Me.DockPanel4_Container.TabIndex = 0 - ' - 'hideContainerRight - ' - Me.hideContainerRight.BackColor = System.Drawing.Color.FromArgb(CType(CType(248, Byte), Integer), CType(CType(248, Byte), Integer), CType(CType(248, Byte), Integer)) - Me.hideContainerRight.Controls.Add(Me.PanelDocView) - Me.hideContainerRight.Dock = System.Windows.Forms.DockStyle.Right - Me.hideContainerRight.Location = New System.Drawing.Point(1103, 159) - Me.hideContainerRight.Name = "hideContainerRight" - Me.hideContainerRight.Size = New System.Drawing.Size(31, 506) - ' - 'frmDocumentManager - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1134, 687) - Me.Controls.Add(Me.PanelSQL) - Me.Controls.Add(Me.PanelSearch) - Me.Controls.Add(Me.hideContainerRight) - Me.Controls.Add(Me.RibbonStatusBar1) - Me.Controls.Add(Me.RibbonControl1) - Me.Name = "frmDocumentManager" - Me.Ribbon = Me.RibbonControl1 - Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "frmDocumentManager" - CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).EndInit() - Me.PanelDashboard.ResumeLayout(False) - CType(Me.Document1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).EndInit() - Me.PanelSearch.ResumeLayout(False) - Me.PanelDocView.ResumeLayout(False) - Me.PanelSQL.ResumeLayout(False) - Me.hideContainerRight.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents DocumentManager1 As DevExpress.XtraBars.Docking2010.DocumentManager - Friend WithEvents TabbedView1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView - Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents PanelSQL As DevExpress.XtraBars.Docking.DockPanel - Friend WithEvents DockPanel4_Container As DevExpress.XtraBars.Docking.ControlContainer - Friend WithEvents PanelDocView As DevExpress.XtraBars.Docking.DockPanel - Friend WithEvents DockPanel3_Container As DevExpress.XtraBars.Docking.ControlContainer - Friend WithEvents PanelSearch As DevExpress.XtraBars.Docking.DockPanel - Friend WithEvents DockPanel2_Container As DevExpress.XtraBars.Docking.ControlContainer - Friend WithEvents DocumentGroup1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup - Friend WithEvents Document1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.Document - Friend WithEvents DockManager1 As DevExpress.XtraBars.Docking.DockManager - Friend WithEvents PanelDashboard As DevExpress.XtraBars.Docking.DockPanel - Friend WithEvents DockPanel1_Container As DevExpress.XtraBars.Docking.ControlContainer - Friend WithEvents hideContainerRight As DevExpress.XtraBars.Docking.AutoHideContainer -End Class diff --git a/GUIs.Monitor/frmDocumentManager.resx b/GUIs.Monitor/frmDocumentManager.resx deleted file mode 100644 index f801fe53..00000000 --- a/GUIs.Monitor/frmDocumentManager.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 181, 17 - - \ No newline at end of file diff --git a/GUIs.Monitor/frmDocumentManager.vb b/GUIs.Monitor/frmDocumentManager.vb deleted file mode 100644 index 2729c268..00000000 --- a/GUIs.Monitor/frmDocumentManager.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class frmDocumentManager - -End Class \ No newline at end of file diff --git a/GUIs.Monitor/frmMonitor.Designer.vb b/GUIs.Monitor/frmMonitor.Designer.vb deleted file mode 100644 index 58fb2a22..00000000 --- a/GUIs.Monitor/frmMonitor.Designer.vb +++ /dev/null @@ -1,735 +0,0 @@ -Imports DigitalData.GUIs.Common.Base - - -Partial Class frmMonitor - 'Inherits DevExpress.XtraBars.Ribbon.RibbonForm - Inherits DevExpress.XtraBars.Ribbon.RibbonForm - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMonitor)) - Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.ApplicationMenu1 = New DevExpress.XtraBars.Ribbon.ApplicationMenu(Me.components) - Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() - Me.buttonSearch = New DevExpress.XtraBars.BarButtonItem() - Me.btnExportGrid = New DevExpress.XtraBars.BarButtonItem() - Me.btnExportTreeview = New DevExpress.XtraBars.BarButtonItem() - Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() - Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() - Me.TextEdit1 = New DevExpress.XtraEditors.TextEdit() - Me.cmbSearchKeys = New DevExpress.XtraEditors.ComboBoxEdit() - Me.DateEdit1 = New DevExpress.XtraEditors.DateEdit() - Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() - Me.LayoutItemSearchValue_Text = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutItemSearchValue_Date = New DevExpress.XtraLayout.LayoutControlItem() - Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl() - Me.XtraTabPageFile1 = New DevExpress.XtraTab.XtraTabPage() - Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer() - Me.XtraTabPageFile2 = New DevExpress.XtraTab.XtraTabPage() - Me.DocumentViewer2 = New DigitalData.Controls.DocumentViewer.DocumentViewer() - Me.XtraTabPageHtml1 = New DevExpress.XtraTab.XtraTabPage() - Me.RichEditControl1 = New DevExpress.XtraRichEdit.RichEditControl() - Me.XtraTabPageHtml2 = New DevExpress.XtraTab.XtraTabPage() - Me.RichEditControl2 = New DevExpress.XtraRichEdit.RichEditControl() - Me.GridControl1 = New DevExpress.XtraGrid.GridControl() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.TreeListResults = New DevExpress.XtraTreeList.TreeList() - Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components) - Me.SplitContainerContent = New DevExpress.XtraEditors.SplitContainerControl() - Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl() - Me.XtraTabControl3 = New DevExpress.XtraTab.XtraTabControl() - Me.XtraTabPageSQL1 = New DevExpress.XtraTab.XtraTabPage() - Me.GridControl2 = New DevExpress.XtraGrid.GridControl() - Me.GridView2 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.XtraTabPageSQL2 = New DevExpress.XtraTab.XtraTabPage() - Me.GridControl3 = New DevExpress.XtraGrid.GridControl() - Me.GridView3 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.XtraTabPageSQL3 = New DevExpress.XtraTab.XtraTabPage() - Me.GridControl4 = New DevExpress.XtraGrid.GridControl() - Me.GridView4 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.XtraTabPageSQL4 = New DevExpress.XtraTab.XtraTabPage() - Me.SplitContainerMain = New DevExpress.XtraEditors.SplitContainerControl() - Me.XtraTabControl2 = New DevExpress.XtraTab.XtraTabControl() - Me.tabPageSearch = New DevExpress.XtraTab.XtraTabPage() - Me.tabPageDashboard = New DevExpress.XtraTab.XtraTabPage() - Me.XtraSaveFileDialog1 = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components) - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ApplicationMenu1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.LayoutControl1.SuspendLayout() - CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.cmbSearchKeys.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DateEdit1.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DateEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutItemSearchValue_Text, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutItemSearchValue_Date, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabControl1.SuspendLayout() - Me.XtraTabPageFile1.SuspendLayout() - Me.XtraTabPageFile2.SuspendLayout() - Me.XtraTabPageHtml1.SuspendLayout() - Me.XtraTabPageHtml2.SuspendLayout() - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TreeListResults, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.SplitContainerContent, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.SplitContainerContent.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerContent.Panel1.SuspendLayout() - CType(Me.SplitContainerContent.Panel2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerContent.Panel2.SuspendLayout() - Me.SplitContainerContent.SuspendLayout() - CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.SplitContainerControl3.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerControl3.Panel1.SuspendLayout() - CType(Me.SplitContainerControl3.Panel2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerControl3.Panel2.SuspendLayout() - Me.SplitContainerControl3.SuspendLayout() - CType(Me.XtraTabControl3, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabControl3.SuspendLayout() - Me.XtraTabPageSQL1.SuspendLayout() - CType(Me.GridControl2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabPageSQL2.SuspendLayout() - CType(Me.GridControl3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView3, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabPageSQL3.SuspendLayout() - CType(Me.GridControl4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView4, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabPageSQL4.SuspendLayout() - CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.SplitContainerMain.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerMain.Panel1.SuspendLayout() - CType(Me.SplitContainerMain.Panel2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerMain.Panel2.SuspendLayout() - Me.SplitContainerMain.SuspendLayout() - CType(Me.XtraTabControl2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.XtraTabControl2.SuspendLayout() - Me.tabPageSearch.SuspendLayout() - Me.SuspendLayout() - ' - 'RibbonControl1 - ' - Me.RibbonControl1.ApplicationButtonDropDownControl = Me.ApplicationMenu1 - Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.buttonSearch, Me.BarButtonItem1, Me.btnExportGrid, Me.btnExportTreeview, Me.BarStaticItem1}) - Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 7 - Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] - Me.RibbonControl1.ShowToolbarCustomizeItem = False - Me.RibbonControl1.Size = New System.Drawing.Size(1379, 158) - Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 - Me.RibbonControl1.Toolbar.ShowCustomizeItem = False - ' - 'ApplicationMenu1 - ' - Me.ApplicationMenu1.ItemLinks.Add(Me.BarButtonItem1) - Me.ApplicationMenu1.Name = "ApplicationMenu1" - Me.ApplicationMenu1.Ribbon = Me.RibbonControl1 - ' - 'BarButtonItem1 - ' - Me.BarButtonItem1.Caption = "SQL Konfiguration" - Me.BarButtonItem1.Id = 2 - Me.BarButtonItem1.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.managedatasource - Me.BarButtonItem1.Name = "BarButtonItem1" - ' - 'buttonSearch - ' - Me.buttonSearch.Caption = "Suche starten (F5)" - Me.buttonSearch.Id = 1 - Me.buttonSearch.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.gettingstarted - Me.buttonSearch.Name = "buttonSearch" - Me.buttonSearch.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.Large - ' - 'btnExportGrid - ' - Me.btnExportGrid.Caption = "Export Grid als XLSX" - Me.btnExportGrid.Enabled = False - Me.btnExportGrid.Id = 4 - Me.btnExportGrid.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.export - Me.btnExportGrid.Name = "btnExportGrid" - ' - 'btnExportTreeview - ' - Me.btnExportTreeview.Caption = "Export Treeview als XLSX" - Me.btnExportTreeview.Id = 5 - Me.btnExportTreeview.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.inserttreeview - Me.btnExportTreeview.Name = "btnExportTreeview" - ' - 'BarStaticItem1 - ' - Me.BarStaticItem1.Id = 6 - Me.BarStaticItem1.ImageOptions.Image = CType(resources.GetObject("BarStaticItem1.ImageOptions.Image"), System.Drawing.Image) - Me.BarStaticItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarStaticItem1.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarStaticItem1.Name = "BarStaticItem1" - Me.BarStaticItem1.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "Start" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.ItemLinks.Add(Me.buttonSearch) - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "Daten" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far - Me.RibbonPageGroup2.ItemLinks.Add(Me.btnExportTreeview) - Me.RibbonPageGroup2.ItemLinks.Add(Me.btnExportGrid) - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "Export" - ' - 'RibbonStatusBar1 - ' - Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItem1) - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 747) - Me.RibbonStatusBar1.Name = "RibbonStatusBar1" - Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(1379, 24) - ' - 'RibbonPage2 - ' - Me.RibbonPage2.Name = "RibbonPage2" - Me.RibbonPage2.Text = "RibbonPage2" - ' - 'LayoutControl1 - ' - Me.LayoutControl1.Controls.Add(Me.TextEdit1) - Me.LayoutControl1.Controls.Add(Me.cmbSearchKeys) - Me.LayoutControl1.Controls.Add(Me.DateEdit1) - Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.LayoutControl1.Location = New System.Drawing.Point(0, 0) - Me.LayoutControl1.Name = "LayoutControl1" - Me.LayoutControl1.Root = Me.Root - Me.LayoutControl1.Size = New System.Drawing.Size(235, 563) - Me.LayoutControl1.TabIndex = 0 - Me.LayoutControl1.Text = "LayoutControl1" - ' - 'TextEdit1 - ' - Me.TextEdit1.Location = New System.Drawing.Point(15, 77) - Me.TextEdit1.MenuManager = Me.RibbonControl1 - Me.TextEdit1.Name = "TextEdit1" - Me.TextEdit1.Size = New System.Drawing.Size(205, 20) - Me.TextEdit1.StyleController = Me.LayoutControl1 - Me.TextEdit1.TabIndex = 4 - ' - 'cmbSearchKeys - ' - Me.cmbSearchKeys.Location = New System.Drawing.Point(15, 31) - Me.cmbSearchKeys.MenuManager = Me.RibbonControl1 - Me.cmbSearchKeys.Name = "cmbSearchKeys" - Me.cmbSearchKeys.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.cmbSearchKeys.Size = New System.Drawing.Size(205, 20) - Me.cmbSearchKeys.StyleController = Me.LayoutControl1 - Me.cmbSearchKeys.TabIndex = 5 - ' - 'DateEdit1 - ' - Me.DateEdit1.EditValue = Nothing - Me.DateEdit1.Location = New System.Drawing.Point(15, 123) - Me.DateEdit1.MenuManager = Me.RibbonControl1 - Me.DateEdit1.Name = "DateEdit1" - Me.DateEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.DateEdit1.Properties.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.DateEdit1.Size = New System.Drawing.Size(205, 20) - Me.DateEdit1.StyleController = Me.LayoutControl1 - Me.DateEdit1.TabIndex = 7 - ' - 'Root - ' - Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] - Me.Root.GroupBordersVisible = False - Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutItemSearchValue_Text, Me.LayoutControlItem2, Me.LayoutItemSearchValue_Date}) - Me.Root.Name = "Root" - Me.Root.Size = New System.Drawing.Size(235, 563) - Me.Root.TextVisible = False - ' - 'LayoutItemSearchValue_Text - ' - Me.LayoutItemSearchValue_Text.Control = Me.TextEdit1 - Me.LayoutItemSearchValue_Text.Location = New System.Drawing.Point(0, 46) - Me.LayoutItemSearchValue_Text.Name = "LayoutItemSearchValue_Text" - Me.LayoutItemSearchValue_Text.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5) - Me.LayoutItemSearchValue_Text.Size = New System.Drawing.Size(215, 46) - Me.LayoutItemSearchValue_Text.Text = "Text Parameter" - Me.LayoutItemSearchValue_Text.TextLocation = DevExpress.Utils.Locations.Top - Me.LayoutItemSearchValue_Text.TextSize = New System.Drawing.Size(84, 13) - ' - 'LayoutControlItem2 - ' - Me.LayoutControlItem2.Control = Me.cmbSearchKeys - Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0) - Me.LayoutControlItem2.Name = "LayoutControlItem2" - Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5) - Me.LayoutControlItem2.Size = New System.Drawing.Size(215, 46) - Me.LayoutControlItem2.Text = "Suche nach" - Me.LayoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top - Me.LayoutControlItem2.TextSize = New System.Drawing.Size(84, 13) - ' - 'LayoutItemSearchValue_Date - ' - Me.LayoutItemSearchValue_Date.Control = Me.DateEdit1 - Me.LayoutItemSearchValue_Date.Location = New System.Drawing.Point(0, 92) - Me.LayoutItemSearchValue_Date.Name = "LayoutItemSearchValue_Date" - Me.LayoutItemSearchValue_Date.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5) - Me.LayoutItemSearchValue_Date.Size = New System.Drawing.Size(215, 451) - Me.LayoutItemSearchValue_Date.Text = "Datum Parameter" - Me.LayoutItemSearchValue_Date.TextLocation = DevExpress.Utils.Locations.Top - Me.LayoutItemSearchValue_Date.TextSize = New System.Drawing.Size(84, 13) - Me.LayoutItemSearchValue_Date.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never - ' - 'XtraTabControl1 - ' - Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.XtraTabControl1.Location = New System.Drawing.Point(0, 0) - Me.XtraTabControl1.Name = "XtraTabControl1" - Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPageFile1 - Me.XtraTabControl1.Size = New System.Drawing.Size(409, 563) - Me.XtraTabControl1.TabIndex = 1 - Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPageFile1, Me.XtraTabPageFile2, Me.XtraTabPageHtml1, Me.XtraTabPageHtml2}) - ' - 'XtraTabPageFile1 - ' - Me.XtraTabPageFile1.Controls.Add(Me.DocumentViewer1) - Me.XtraTabPageFile1.Name = "XtraTabPageFile1" - Me.XtraTabPageFile1.Size = New System.Drawing.Size(407, 540) - Me.XtraTabPageFile1.Text = "File 1" - ' - 'DocumentViewer1 - ' - Me.DocumentViewer1.Dock = System.Windows.Forms.DockStyle.Fill - Me.DocumentViewer1.FileLoaded = False - Me.DocumentViewer1.Location = New System.Drawing.Point(0, 0) - Me.DocumentViewer1.Name = "DocumentViewer1" - Me.DocumentViewer1.Size = New System.Drawing.Size(407, 540) - Me.DocumentViewer1.TabIndex = 0 - ' - 'XtraTabPageFile2 - ' - Me.XtraTabPageFile2.Controls.Add(Me.DocumentViewer2) - Me.XtraTabPageFile2.Name = "XtraTabPageFile2" - Me.XtraTabPageFile2.Size = New System.Drawing.Size(407, 536) - Me.XtraTabPageFile2.Text = "File 2" - ' - 'DocumentViewer2 - ' - Me.DocumentViewer2.Dock = System.Windows.Forms.DockStyle.Fill - Me.DocumentViewer2.FileLoaded = False - Me.DocumentViewer2.Location = New System.Drawing.Point(0, 0) - Me.DocumentViewer2.Name = "DocumentViewer2" - Me.DocumentViewer2.Size = New System.Drawing.Size(407, 536) - Me.DocumentViewer2.TabIndex = 1 - ' - 'XtraTabPageHtml1 - ' - Me.XtraTabPageHtml1.Controls.Add(Me.RichEditControl1) - Me.XtraTabPageHtml1.Name = "XtraTabPageHtml1" - Me.XtraTabPageHtml1.Size = New System.Drawing.Size(407, 536) - Me.XtraTabPageHtml1.Text = "HTML 1" - ' - 'RichEditControl1 - ' - Me.RichEditControl1.ActiveViewType = DevExpress.XtraRichEdit.RichEditViewType.Simple - Me.RichEditControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.RichEditControl1.LayoutUnit = DevExpress.XtraRichEdit.DocumentLayoutUnit.Pixel - Me.RichEditControl1.Location = New System.Drawing.Point(0, 0) - Me.RichEditControl1.MenuManager = Me.RibbonControl1 - Me.RichEditControl1.Name = "RichEditControl1" - Me.RichEditControl1.Options.HorizontalRuler.Visibility = DevExpress.XtraRichEdit.RichEditRulerVisibility.Hidden - Me.RichEditControl1.Options.VerticalRuler.Visibility = DevExpress.XtraRichEdit.RichEditRulerVisibility.Hidden - Me.RichEditControl1.Size = New System.Drawing.Size(407, 536) - Me.RichEditControl1.TabIndex = 0 - ' - 'XtraTabPageHtml2 - ' - Me.XtraTabPageHtml2.Controls.Add(Me.RichEditControl2) - Me.XtraTabPageHtml2.Name = "XtraTabPageHtml2" - Me.XtraTabPageHtml2.Size = New System.Drawing.Size(407, 536) - Me.XtraTabPageHtml2.Text = "HTML 2" - ' - 'RichEditControl2 - ' - Me.RichEditControl2.Dock = System.Windows.Forms.DockStyle.Fill - Me.RichEditControl2.Location = New System.Drawing.Point(0, 0) - Me.RichEditControl2.MenuManager = Me.RibbonControl1 - Me.RichEditControl2.Name = "RichEditControl2" - Me.RichEditControl2.Size = New System.Drawing.Size(407, 536) - Me.RichEditControl2.TabIndex = 1 - ' - 'GridControl1 - ' - Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridControl1.Location = New System.Drawing.Point(0, 0) - Me.GridControl1.MainView = Me.GridView1 - Me.GridControl1.MenuManager = Me.RibbonControl1 - Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(711, 345) - Me.GridControl1.TabIndex = 0 - Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) - ' - 'GridView1 - ' - Me.GridView1.GridControl = Me.GridControl1 - Me.GridView1.Name = "GridView1" - ' - 'TreeListResults - ' - Me.TreeListResults.Dock = System.Windows.Forms.DockStyle.Fill - Me.TreeListResults.Location = New System.Drawing.Point(0, 0) - Me.TreeListResults.MenuManager = Me.RibbonControl1 - Me.TreeListResults.Name = "TreeListResults" - Me.TreeListResults.Size = New System.Drawing.Size(713, 181) - Me.TreeListResults.TabIndex = 4 - ' - 'SvgImageCollection1 - ' - Me.SvgImageCollection1.Add("default", "image://svgimages/outlook inspired/about.svg") - Me.SvgImageCollection1.Add("sql", "image://svgimages/icon builder/actions_database.svg") - Me.SvgImageCollection1.Add("file", "image://svgimages/pdf viewer/documentpdf.svg") - Me.SvgImageCollection1.Add("mail", "image://svgimages/icon builder/actions_envelopeclose.svg") - Me.SvgImageCollection1.Add("success", "image://svgimages/icon builder/actions_checkcircled.svg") - Me.SvgImageCollection1.Add("failure", "image://svgimages/icon builder/actions_deletecircled.svg") - Me.SvgImageCollection1.Add("warning", "image://svgimages/business objects/bo_attention.svg") - Me.SvgImageCollection1.Add("waiting", "image://svgimages/business objects/bo_audit_changehistory.svg") - Me.SvgImageCollection1.Add("actions_user", "image://svgimages/icon builder/actions_user.svg") - Me.SvgImageCollection1.Add("highimportance", "image://svgimages/outlook inspired/highimportance.svg") - ' - 'SplitContainerContent - ' - Me.SplitContainerContent.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel1 - Me.SplitContainerContent.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerContent.Location = New System.Drawing.Point(0, 0) - Me.SplitContainerContent.Name = "SplitContainerContent" - ' - 'SplitContainerContent.Panel1 - ' - Me.SplitContainerContent.Panel1.Controls.Add(Me.LayoutControl1) - Me.SplitContainerContent.Panel1.Text = "Panel1" - ' - 'SplitContainerContent.Panel2 - ' - Me.SplitContainerContent.Panel2.Controls.Add(Me.SplitContainerControl3) - Me.SplitContainerContent.Panel2.Text = "Panel2" - Me.SplitContainerContent.Size = New System.Drawing.Size(958, 563) - Me.SplitContainerContent.SplitterPosition = 235 - Me.SplitContainerContent.TabIndex = 9 - ' - 'SplitContainerControl3 - ' - Me.SplitContainerControl3.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 - Me.SplitContainerControl3.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerControl3.Horizontal = False - Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 0) - Me.SplitContainerControl3.Name = "SplitContainerControl3" - ' - 'SplitContainerControl3.Panel1 - ' - Me.SplitContainerControl3.Panel1.Controls.Add(Me.TreeListResults) - Me.SplitContainerControl3.Panel1.Text = "Panel1" - ' - 'SplitContainerControl3.Panel2 - ' - Me.SplitContainerControl3.Panel2.Controls.Add(Me.XtraTabControl3) - Me.SplitContainerControl3.Panel2.Text = "Panel2" - Me.SplitContainerControl3.Size = New System.Drawing.Size(713, 563) - Me.SplitContainerControl3.SplitterPosition = 181 - Me.SplitContainerControl3.TabIndex = 5 - ' - 'XtraTabControl3 - ' - Me.XtraTabControl3.Dock = System.Windows.Forms.DockStyle.Fill - Me.XtraTabControl3.Location = New System.Drawing.Point(0, 0) - Me.XtraTabControl3.Name = "XtraTabControl3" - Me.XtraTabControl3.SelectedTabPage = Me.XtraTabPageSQL1 - Me.XtraTabControl3.Size = New System.Drawing.Size(713, 372) - Me.XtraTabControl3.TabIndex = 0 - Me.XtraTabControl3.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPageSQL1, Me.XtraTabPageSQL2, Me.XtraTabPageSQL3, Me.XtraTabPageSQL4}) - ' - 'XtraTabPageSQL1 - ' - Me.XtraTabPageSQL1.Controls.Add(Me.GridControl2) - Me.XtraTabPageSQL1.Name = "XtraTabPageSQL1" - Me.XtraTabPageSQL1.Size = New System.Drawing.Size(711, 349) - Me.XtraTabPageSQL1.Text = "SQL 1" - ' - 'GridControl2 - ' - Me.GridControl2.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridControl2.Location = New System.Drawing.Point(0, 0) - Me.GridControl2.MainView = Me.GridView2 - Me.GridControl2.MenuManager = Me.RibbonControl1 - Me.GridControl2.Name = "GridControl2" - Me.GridControl2.Size = New System.Drawing.Size(711, 349) - Me.GridControl2.TabIndex = 1 - Me.GridControl2.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView2}) - ' - 'GridView2 - ' - Me.GridView2.GridControl = Me.GridControl2 - Me.GridView2.Name = "GridView2" - ' - 'XtraTabPageSQL2 - ' - Me.XtraTabPageSQL2.Controls.Add(Me.GridControl3) - Me.XtraTabPageSQL2.Name = "XtraTabPageSQL2" - Me.XtraTabPageSQL2.Size = New System.Drawing.Size(711, 345) - Me.XtraTabPageSQL2.Text = "SQL 2" - ' - 'GridControl3 - ' - Me.GridControl3.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridControl3.Location = New System.Drawing.Point(0, 0) - Me.GridControl3.MainView = Me.GridView3 - Me.GridControl3.MenuManager = Me.RibbonControl1 - Me.GridControl3.Name = "GridControl3" - Me.GridControl3.Size = New System.Drawing.Size(711, 345) - Me.GridControl3.TabIndex = 1 - Me.GridControl3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView3}) - ' - 'GridView3 - ' - Me.GridView3.GridControl = Me.GridControl3 - Me.GridView3.Name = "GridView3" - ' - 'XtraTabPageSQL3 - ' - Me.XtraTabPageSQL3.Controls.Add(Me.GridControl4) - Me.XtraTabPageSQL3.Name = "XtraTabPageSQL3" - Me.XtraTabPageSQL3.Size = New System.Drawing.Size(711, 345) - Me.XtraTabPageSQL3.Text = "SQL 3" - ' - 'GridControl4 - ' - Me.GridControl4.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridControl4.Location = New System.Drawing.Point(0, 0) - Me.GridControl4.MainView = Me.GridView4 - Me.GridControl4.MenuManager = Me.RibbonControl1 - Me.GridControl4.Name = "GridControl4" - Me.GridControl4.Size = New System.Drawing.Size(711, 345) - Me.GridControl4.TabIndex = 1 - Me.GridControl4.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView4}) - ' - 'GridView4 - ' - Me.GridView4.GridControl = Me.GridControl4 - Me.GridView4.Name = "GridView4" - ' - 'XtraTabPageSQL4 - ' - Me.XtraTabPageSQL4.Controls.Add(Me.GridControl1) - Me.XtraTabPageSQL4.Name = "XtraTabPageSQL4" - Me.XtraTabPageSQL4.Size = New System.Drawing.Size(711, 345) - Me.XtraTabPageSQL4.Text = "SQL 4" - ' - 'SplitContainerMain - ' - Me.SplitContainerMain.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 - Me.SplitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerMain.Location = New System.Drawing.Point(0, 0) - Me.SplitContainerMain.Name = "SplitContainerMain" - ' - 'SplitContainerMain.Panel1 - ' - Me.SplitContainerMain.Panel1.Controls.Add(Me.SplitContainerContent) - Me.SplitContainerMain.Panel1.Text = "Panel1" - ' - 'SplitContainerMain.Panel2 - ' - Me.SplitContainerMain.Panel2.Controls.Add(Me.XtraTabControl1) - Me.SplitContainerMain.Panel2.Text = "Panel2" - Me.SplitContainerMain.Size = New System.Drawing.Size(1377, 563) - Me.SplitContainerMain.SplitterPosition = 958 - Me.SplitContainerMain.TabIndex = 10 - ' - 'XtraTabControl2 - ' - Me.XtraTabControl2.Dock = System.Windows.Forms.DockStyle.Fill - Me.XtraTabControl2.Location = New System.Drawing.Point(0, 158) - Me.XtraTabControl2.Name = "XtraTabControl2" - Me.XtraTabControl2.SelectedTabPage = Me.tabPageSearch - Me.XtraTabControl2.Size = New System.Drawing.Size(1379, 589) - Me.XtraTabControl2.TabIndex = 11 - Me.XtraTabControl2.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.tabPageSearch, Me.tabPageDashboard}) - ' - 'tabPageSearch - ' - Me.tabPageSearch.Controls.Add(Me.SplitContainerMain) - Me.tabPageSearch.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.enablesearch - Me.tabPageSearch.ImageOptions.SvgImageSize = New System.Drawing.Size(16, 16) - Me.tabPageSearch.Name = "tabPageSearch" - Me.tabPageSearch.Size = New System.Drawing.Size(1377, 563) - Me.tabPageSearch.Text = "Suche" - ' - 'tabPageDashboard - ' - Me.tabPageDashboard.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.bo_dashboard - Me.tabPageDashboard.ImageOptions.SvgImageSize = New System.Drawing.Size(16, 16) - Me.tabPageDashboard.Name = "tabPageDashboard" - Me.tabPageDashboard.Size = New System.Drawing.Size(1377, 561) - Me.tabPageDashboard.Text = "Dashboard" - ' - 'XtraSaveFileDialog1 - ' - Me.XtraSaveFileDialog1.FileName = "XtraSaveFileDialog1" - ' - 'frmMonitor - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1379, 771) - Me.Controls.Add(Me.XtraTabControl2) - Me.Controls.Add(Me.RibbonStatusBar1) - Me.Controls.Add(Me.RibbonControl1) - Me.IconOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.charttype_line - Me.Name = "frmMonitor" - Me.Ribbon = Me.RibbonControl1 - Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "Monitor" - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ApplicationMenu1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.LayoutControl1.ResumeLayout(False) - CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.cmbSearchKeys.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DateEdit1.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DateEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutItemSearchValue_Text, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutItemSearchValue_Date, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabControl1.ResumeLayout(False) - Me.XtraTabPageFile1.ResumeLayout(False) - Me.XtraTabPageFile2.ResumeLayout(False) - Me.XtraTabPageHtml1.ResumeLayout(False) - Me.XtraTabPageHtml2.ResumeLayout(False) - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TreeListResults, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.SplitContainerContent.Panel1, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerContent.Panel1.ResumeLayout(False) - CType(Me.SplitContainerContent.Panel2, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerContent.Panel2.ResumeLayout(False) - CType(Me.SplitContainerContent, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerContent.ResumeLayout(False) - CType(Me.SplitContainerControl3.Panel1, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerControl3.Panel1.ResumeLayout(False) - CType(Me.SplitContainerControl3.Panel2, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerControl3.Panel2.ResumeLayout(False) - CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerControl3.ResumeLayout(False) - CType(Me.XtraTabControl3, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabControl3.ResumeLayout(False) - Me.XtraTabPageSQL1.ResumeLayout(False) - CType(Me.GridControl2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabPageSQL2.ResumeLayout(False) - CType(Me.GridControl3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView3, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabPageSQL3.ResumeLayout(False) - CType(Me.GridControl4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView4, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabPageSQL4.ResumeLayout(False) - CType(Me.SplitContainerMain.Panel1, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerMain.Panel1.ResumeLayout(False) - CType(Me.SplitContainerMain.Panel2, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerMain.Panel2.ResumeLayout(False) - CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerMain.ResumeLayout(False) - CType(Me.XtraTabControl2, System.ComponentModel.ISupportInitialize).EndInit() - Me.XtraTabControl2.ResumeLayout(False) - Me.tabPageSearch.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar - Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl - Friend WithEvents TextEdit1 As DevExpress.XtraEditors.TextEdit - Friend WithEvents cmbSearchKeys As DevExpress.XtraEditors.ComboBoxEdit - Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup - Friend WithEvents LayoutItemSearchValue_Text As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents buttonSearch As DevExpress.XtraBars.BarButtonItem - Friend WithEvents TreeListResults As DevExpress.XtraTreeList.TreeList - Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents XtraTabControl1 As DevExpress.XtraTab.XtraTabControl - Friend WithEvents XtraTabPageFile1 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents XtraTabPageFile2 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents XtraTabPageHtml1 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents XtraTabPageHtml2 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents SplitContainerContent As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents SplitContainerControl3 As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents XtraTabControl3 As DevExpress.XtraTab.XtraTabControl - Friend WithEvents XtraTabPageSQL1 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents GridControl2 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents XtraTabPageSQL2 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents GridControl3 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents XtraTabPageSQL3 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents GridControl4 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView4 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents XtraTabPageSQL4 As DevExpress.XtraTab.XtraTabPage - Friend WithEvents SplitContainerMain As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents XtraTabControl2 As DevExpress.XtraTab.XtraTabControl - Friend WithEvents tabPageSearch As DevExpress.XtraTab.XtraTabPage - Friend WithEvents tabPageDashboard As DevExpress.XtraTab.XtraTabPage - Friend WithEvents DocumentViewer1 As Controls.DocumentViewer.DocumentViewer - Friend WithEvents DocumentViewer2 As Controls.DocumentViewer.DocumentViewer - Friend WithEvents RichEditControl1 As DevExpress.XtraRichEdit.RichEditControl - Friend WithEvents RichEditControl2 As DevExpress.XtraRichEdit.RichEditControl - Friend WithEvents DateEdit1 As DevExpress.XtraEditors.DateEdit - Friend WithEvents LayoutItemSearchValue_Date As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection - Friend WithEvents ApplicationMenu1 As DevExpress.XtraBars.Ribbon.ApplicationMenu - Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents btnExportGrid As DevExpress.XtraBars.BarButtonItem - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents XtraSaveFileDialog1 As DevExpress.XtraEditors.XtraSaveFileDialog - Friend WithEvents btnExportTreeview As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem -End Class diff --git a/GUIs.Monitor/frmMonitor.resx b/GUIs.Monitor/frmMonitor.resx deleted file mode 100644 index 0f39436a..00000000 --- a/GUIs.Monitor/frmMonitor.resx +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 183, 17 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAx0RVh0VGl0 - bGUAQWJvdXQ7VURnGwAAANVJREFUOE+l080JwkAQhuGcFMVSFISA2IRN2YCe/AEhKSMH8aYtCCpiFYqi - xvcLRnaXNSHk8Bycmf1MdCcYjRNXiCVOeOGGI1YYwJo3PzShg2+kBSK0YAU0sIHvgM8WbfwC5vANFomR - BXShd/UN5V/g68lQzalTrCJWwN4pmsqe4Kzm3SmaygIedQNSNeu8wkXNiVM0lQVEaupvfBpFU1GAbmyY - D8y+xSq0G9ZVXsM36LODdZVFC7LAv1sp6mmZOsjOmQG5HrQbWmH9NlccoEfuw5hNgg/Z80GQgwIqzwAA - AABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAx0RVh0VGl0 - bGUAQWJvdXQ7VURnGwAAAcVJREFUWEfF1r1KQ0EQhuHcRFQQLERQwSsRLC3EzkqEgJUgVka8BsHCUhCE - CKJY2Sh4CVrYWAoG/xAUf47vhJNwdmbYZIM5Fk+xk5n5lhNNUsmy7F+5xTK5xTK5xTKZwlz9LGYMazjB - HZ7xiFscoYZheLMtOs8UvCFI8D6+kHXxgV0MwezSeabgDC3iFV5YzANmEezTeaagBtbhLe+VPLEldHbq - PFMoNMugtzSVXKLzJHSeKeSNE3iDt7Af8nZUYfJMQZrQgLdIa/d7r2k7MHmmQNMkfvKhblIuIP8dVZ0X - HARNm4Whv7as84KDoOlSDcWkPAFxqPOCg6BJPt28YU/qBa51XnAQzlBM6gWaOi84CGcoZiAXGORbcKPz - goOg6UoNxaReoKHzgoOgaVsNxaReoKbzgoOgaUYNxaRc4BMjOi84CJrEaT7UTcoF9mDyTEGaMA356PQW - 9eMJozB5piBNOfl55S1LJd8r82jt1Xmm0G7MbcFb2isJX0Vnp84zhWJzbgXv8AJiXrCAYJ/OMwU9kJvC - MXr5mv7GAeSHrNml80zBGyqQP846LtBEO/Qe59jAOLzZFp1nCmVzi2Vyi2Vyi+XJKr8GCFc7LgN6FwAA - AABJRU5ErkJggg== - - - - 17, 17 - - - 335, 17 - - \ No newline at end of file diff --git a/GUIs.Monitor/frmMonitor.vb b/GUIs.Monitor/frmMonitor.vb deleted file mode 100644 index 0f2d59b4..00000000 --- a/GUIs.Monitor/frmMonitor.vb +++ /dev/null @@ -1,601 +0,0 @@ -Imports DevExpress.XtraGrid -Imports DevExpress.XtraGrid.Views.Grid -Imports DevExpress.XtraTreeList.Nodes -Imports DigitalData.GUIs.Common -Imports DigitalData.Modules.Config -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language.Utils -Imports DigitalData.Controls.SQLConfig -Imports DevExpress.XtraTab -Imports DigitalData.Controls.DocumentViewer -Imports DevExpress.XtraEditors -Imports DevExpress.XtraRichEdit -Imports DevExpress.XtraTreeList.Columns -Imports DevExpress.XtraEditors.Repository -Imports DevExpress.Utils -Imports DevExpress.XtraEditors.Controls - -Public Class frmMonitor - Public Property LogConfig As LogConfig - Public Property Logger As Logger - Public Property FormHelper As FormHelper - Public Property ConfigManager As ConfigManager(Of Config) - Public Property Database As MSSQLServer - - Private ReadOnly SearchKeys As New List(Of SearchKey) - - Private ReadOnly SQLColumns As New List(Of String) From {"SELECT1", "SELECT2", "SELECT3", "SELECT4"} - Private ReadOnly DocViewColumns As New List(Of String) From {"DOCVIEW1", "DOCVIEW2"} - Private ReadOnly HtmlViewColumns As New List(Of String) From {"HTML1", "HTML2"} - Private ReadOnly DataColumns As List(Of String) = SQLColumns. - Concat(DocViewColumns). - Concat(HtmlViewColumns). - ToList - - Private ReadOnly DisplayColumns As New List(Of String) From {"COLUMN1", "COLUMN2", "COLUMN3", "ADDED_WHEN", "STATE", "ICON"} - - Private SQLResultGrids As List(Of GridControl) - Private SQLResultTabs As List(Of XtraTabPage) - Private ActiveSQLResultGrid As GridControl - - Private FileResultViewers As List(Of DocumentViewer) - Private FileResultTabs As List(Of XtraTabPage) - - Private HtmlResultViewers As List(Of RichEditControl) - Private HtmlResultTabs As List(Of XtraTabPage) - - Private Const STATE_SUCCESS As String = "SUCCESS" - Private Const STATE_FAILURE As String = "FAILURE" - Private Const STATE_WARNING As String = "WARNING" - Private Const STATE_WAITING As String = "WAITING" - Private Const STATE_HIGHLIGHT As String = "HIGHLIGHT" - - - Private Enum NodeImage - [Default] = 0 - SQL = 1 - File = 2 - Mail = 3 - Success = 4 - Failure = 5 - Warning = 6 - Waiting = 7 - User = 8 - Highlight = 9 - End Enum - - Private ReadOnly StateIcons As New Dictionary(Of String, NodeImage) From { - {STATE_SUCCESS, NodeImage.Success}, - {STATE_FAILURE, NodeImage.Failure} - } - - Private GridBuilder As GridBuilder - - Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Try - LogConfig = New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing, "Digital Data", "Monitor") - Logger = LogConfig.GetLogger() - FormHelper = New FormHelper(LogConfig, Me) - - ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.UserAppDataPath, Application.StartupPath) - - If ConfigManager.Config.ConnectionString = String.Empty Then - Dim oSQLConfig As New frmSQLConfig(LogConfig) - If oSQLConfig.ShowDialog() = DialogResult.OK Then - ConfigManager.Config.ConnectionString = oSQLConfig.ConnectionString - ConfigManager.Save() - Application.Restart() - Else - FormHelper.ShowErrorMessage(New ApplicationException("No Database configured. Application will close!"), "frmStart_Load") - Application.Exit() - - End If - End If - If ConfigManager.Config.IDB_Praefix <> "" Then - If ConfigManager.Config.SearchKeySQL.Contains("@IDB_PRAEFIX") Then - Dim oREPLACE = ConfigManager.Config.SearchKeySQL.Replace("@IDB_PRAEFIX", ConfigManager.Config.IDB_Praefix) - ConfigManager.Config.SearchKeySQL = oREPLACE - ConfigManager.Save() - End If - Console.WriteLine(ConfigManager.Config.SearchKeySQL) - - End If - Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString) - Database = New MSSQLServer(LogConfig, oConnectionString) - GridBuilder = New GridBuilder(New List(Of GridView) From {GridView1, GridView2, GridView3, GridView4}) - GridBuilder. - WithDefaults(). - WithDefaults(TreeListResults). - WithReadOnlyOptions(). - WithReadOnlyOptions(TreeListResults) - - SQLResultGrids = New List(Of GridControl) From {GridControl1, GridControl2, GridControl3, GridControl4} - SQLResultTabs = New List(Of XtraTabPage) From {XtraTabPageSQL1, XtraTabPageSQL2, XtraTabPageSQL3, XtraTabPageSQL4} - - FileResultViewers = New List(Of DocumentViewer) From {DocumentViewer1, DocumentViewer2} - FileResultTabs = New List(Of XtraTabPage) From {XtraTabPageFile1, XtraTabPageFile2} - - HtmlResultViewers = New List(Of RichEditControl) From {RichEditControl1, RichEditControl2} - HtmlResultTabs = New List(Of XtraTabPage) From {XtraTabPageHtml1, XtraTabPageHtml2} - - LoadSearchKeys() - - Dim oLicense = LoadGDPicture() - - For Each oGrid In SQLResultGrids - AddHandler oGrid.Enter, Sub() - ActiveSQLResultGrid = oGrid - btnExportGrid.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - End Sub - - AddHandler oGrid.Leave, Sub() - ActiveSQLResultGrid = Nothing - btnExportGrid.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - End Sub - Next - - AddHandler TreeListResults.Enter, Sub() btnExportTreeview.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - AddHandler TreeListResults.Leave, Sub() btnExportTreeview.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - - For Each oViewer As DocumentViewer In FileResultViewers - oViewer.Init(LogConfig, oLicense) - Next - SplitContainerControl3.Collapsed = True - SplitContainerMain.Collapsed = True - Catch ex As Exception - FormHelper.ShowErrorMessage(ex, "frmStart_Load") - End Try - End Sub - - Private Function LoadGDPicture() As String - Dim oSQL = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'" - Return Database.GetScalarValue(oSQL)?.ToString - End Function - - Private Sub buttonSearch_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonSearch.ItemClick - If cmbSearchKeys.EditValue Is Nothing Then - Exit Sub - End If - Dim oAttributeId As Integer = cmbSearchKeys.EditValue - Dim oAttributeValue As String = TextEdit1.EditValue.ToString - - LoadData(oAttributeId, oAttributeValue) - End Sub - - Private Function LoadData(pAttribute As Integer, pValue As String) As Boolean - Try - TreeListResults.ShowLoadingPanel() - SplitContainerContent.Enabled = False - - Dim oSQL As String = $"EXEC [{ConfigManager.Config.IDB_Praefix}].[dbo].[PRDD_MONITORING_GET_TREEVIEW_RESULT] '{pAttribute}','{pValue}',1" - Dim oTable As DataTable = Database.GetDatatable(oSQL) - Dim oStateColumn As TreeListColumn = TreeListResults.Columns.Item("STATE") - - TreeListResults.DataSource = oTable - TreeListResults.PopulateColumns() - - InitTreeList() - - ' Show all columns in DisplayColumns List - For Each oColumn In TreeListResults.Columns - oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName) - If oColumn.FieldName = "ADDED_WHEN" Then - oColumn.Format.FormatType = FormatType.DateTime - oColumn.Format.FormatString = "dd.MM.yyyy HH:mm:ss" - End If - - Next - - For Each oNode As TreeListNode In TreeListResults.Nodes - ExpandNodes(oNode, Function(n) - Dim oObjectValue = n.GetValue(oStateColumn)?.ToString - Dim oValue As String = NotNull(oObjectValue, String.Empty) - Return oValue IsNot Nothing AndAlso (oValue = STATE_WARNING Or oValue = STATE_FAILURE) - End Function) - Next - Return True - Catch ex As Exception - FormHelper.ShowErrorMessage(ex, "LoadData") - Return False - Finally - SplitContainerContent.Enabled = False - TreeListResults.HideLoadingPanel() - End Try - End Function - - Private Sub LoadSearchKeys() - Try - Dim oSQL = ConfigManager.Config.SearchKeySQL - Dim oTable = Database.GetDatatable(oSQL) - - For Each oRow As DataRow In oTable.Rows - SearchKeys.Add(New SearchKey With { - .Id = CInt(oRow.Item(0)), - .Title = oRow.Item(1).ToString, - .TypeName = "Varchar"'oRow.Item(2).ToString - }) - Next - - cmbSearchKeys.Properties.Items.Clear() - cmbSearchKeys.Properties.Items.AddRange(SearchKeys) - Catch ex As Exception - FormHelper.ShowErrorMessage(ex, "LoadSearchKeys") - End Try - End Sub - - Private Sub InitTreeList() - TreeListResults.KeyFieldName = "GUID" - TreeListResults.ParentFieldName = "PARENT_ID" - - Dim oStateEdit As New RepositoryItemImageComboBox With { - .SmallImages = SvgImageCollection1, - .GlyphAlignment = HorzAlignment.Near - } - oStateEdit.Buttons.Clear() - oStateEdit.Items.AddRange(New List(Of ImageComboBoxItem) From { - New ImageComboBoxItem("Success", "SUCCESS", NodeImage.Success), - New ImageComboBoxItem("Failure", "FAILURE", NodeImage.Failure), - New ImageComboBoxItem("Warning", "WARNING", NodeImage.Warning), - New ImageComboBoxItem("Waiting", "WAITING", NodeImage.Waiting), - New ImageComboBoxItem("Default", "DEFAULT", NodeImage.Default), - New ImageComboBoxItem("User", "USER", NodeImage.User), - New ImageComboBoxItem("Highlight", "HIGHLIGHT", NodeImage.Highlight) - }) - - Dim oIconEdit As New RepositoryItemImageComboBox With { - .SmallImages = SvgImageCollection1, - .GlyphAlignment = HorzAlignment.Near - } - oStateEdit.Buttons.Clear() - oStateEdit.Items.AddRange(New List(Of ImageComboBoxItem) From { - New ImageComboBoxItem("Email", "MAIL", NodeImage.Mail), - New ImageComboBoxItem("SQL", "SQL", NodeImage.SQL), - New ImageComboBoxItem("File", "FILE", NodeImage.File) - }) - - Dim oColumn1 = TreeListResults.Columns.Item("COLUMN1") - Dim oStateColumn = TreeListResults.Columns.Item("STATE") - Dim oIconColumn = TreeListResults.Columns.Item("ICON") - - oColumn1.VisibleIndex = 0 - oStateColumn.VisibleIndex = 1 - oIconColumn.VisibleIndex = 2 - - With oStateColumn - .ColumnEdit = oStateEdit - .MaxWidth = 25 - .MinWidth = 25 - .Caption = " " - .ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.Success) - End With - - With oIconColumn - .ColumnEdit = oStateEdit - .MaxWidth = 25 - .MinWidth = 25 - .Caption = " " - .ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.SQL) - End With - - End Sub - - Private Sub cmbSearchKeys_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearchKeys.SelectedValueChanged - Dim oItem As SearchKey = CType(cmbSearchKeys.SelectedItem, SearchKey) - - Select Case oItem.TypeName - Case "VARCHAR" - LayoutItemSearchValue_Date.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never - LayoutItemSearchValue_Text.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always - TextEdit1.EditValue = String.Empty - Case "DATE" - LayoutItemSearchValue_Date.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always - LayoutItemSearchValue_Text.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never - - Case Else - LayoutItemSearchValue_Date.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never - LayoutItemSearchValue_Text.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always - BarStaticItem1.Caption = "oItem.TypeName=" + oItem.TypeName - - End Select - End Sub - - Private Sub TreeListResults_FocusedNodeChanged(sender As Object, e As DevExpress.XtraTreeList.FocusedNodeChangedEventArgs) Handles TreeListResults.FocusedNodeChanged - If e.Node Is Nothing Then - Exit Sub - End If - - Dim oValues As Dictionary(Of String, String) = GetValuesFromNode(e.Node, DataColumns) - - Dim oSQLCommands = oValues. - Where(Function(v) v.Key.StartsWith("SELECT")). - Where(Function(v) v.Value IsNot Nothing). - ToDictionary(Function(v) v.Key, Function(v) v.Value) - - Dim oFilePaths = oValues. - Where(Function(v) v.Key.StartsWith("DOCVIEW")). - Where(Function(v) v.Value IsNot Nothing). - ToDictionary(Function(v) v.Key, Function(v) v.Value) - - Dim oHtmlDocuments = oValues. - Where(Function(v) v.Key.StartsWith("HTML")). - Where(Function(v) v.Value IsNot Nothing). - ToDictionary(Function(v) v.Key, Function(v) v.Value) - - Dim oAllTabs = SQLResultTabs. - Concat(FileResultTabs). - Concat(HtmlResultTabs) - For Each oTabPage In oAllTabs - oTabPage.PageVisible = False - Next - - SplitContainerControl3.Collapsed = oSQLCommands.Count = 0 - SplitContainerMain.Collapsed = (oFilePaths.Count + oHtmlDocuments.Count) = 0 - - For Each oSQLCommand As KeyValuePair(Of String, String) In oSQLCommands - Try - Dim oExtracted = ExtractTitle(oSQLCommand.Value) - Dim oCommand = oExtracted.Item1 - Dim oTitle = oExtracted.Item2 - - Dim oTable As DataTable = Database.GetDatatable(oCommand) - - If oTable Is Nothing Then - Continue For - End If - - Dim oGridIndex = Integer.Parse(oSQLCommand.Key.Last()) - 1 - Dim oGridControl As GridControl = SQLResultGrids.Item(oGridIndex) - - FillResultGrid(oGridControl, oTable, oTitle) - Catch ex As Exception - Logger.Error(ex) - Continue For - End Try - Next - - For Each oFile As KeyValuePair(Of String, String) In oFilePaths - Try - Dim oExtracted = ExtractTitle(oFile.Value) - Dim oPath = oExtracted.Item1 - Dim oTitle = oExtracted.Item2 - - If oPath Is Nothing Then - Continue For - End If - - If Not IO.File.Exists(oPath) Then - Continue For - End If - - Dim oViewerIndex = Integer.Parse(oFile.Key.Last()) - 1 - Dim oViewer As DocumentViewer = FileResultViewers.Item(oViewerIndex) - - FillResultViewer(oViewer, oPath, oTitle) - Catch ex As Exception - Logger.Error(ex) - Continue For - End Try - Next - - For Each oFile As KeyValuePair(Of String, String) In oHtmlDocuments - Try - Dim oExtracted = ExtractTitle(oFile.Value) - Dim oHtml = oExtracted.Item1 - Dim oTitle = oExtracted.Item2 - - If oHtml Is Nothing Then - Continue For - End If - - Dim oViewerIndex = Integer.Parse(oFile.Key.Last()) - 1 - Dim oViewer As RichEditControl = HtmlResultViewers.Item(oViewerIndex) - - FillResultHtmlViewer(oViewer, oHtml, oTitle) - Catch ex As Exception - Logger.Error(ex) - Continue For - End Try - Next - End Sub - - Private Function ExtractTitle(Value As String) As Tuple(Of String, String) - If Value.Contains("|"c) Then - Dim oSplit = Value.Split("|"c).ToList - Dim oValue = oSplit.First() - Dim oTitle = oSplit.Item(1) - - Return New Tuple(Of String, String)(oValue, oTitle) - End If - - Return New Tuple(Of String, String)(Value, Nothing) - End Function - - Private Sub ExpandNodes(RootNode As TreeListNode, Condition As Predicate(Of TreeListNode)) - For Each oNode As TreeListNode In RootNode.Nodes - ExpandNodes(oNode, Condition) - - If Condition(oNode) = True Then - oNode.Expand() - ExpandParentNode(oNode) - End If - Next - End Sub - - Private Sub ExpandParentNode(ChildNode As TreeListNode) - If ChildNode.ParentNode IsNot Nothing Then - ChildNode.ParentNode.Expand() - ExpandParentNode(ChildNode.ParentNode) - End If - End Sub - - Private Sub FillResultHtmlViewer(RichEditControl As RichEditControl, Html As String, Title As String) - RichEditControl.HtmlText = Html - - Dim oTabPage = DirectCast(RichEditControl.Parent, XtraTabPage) - oTabPage.PageVisible = True - oTabPage.Text = NotNull(Title, oTabPage.Text) - - XtraTabControl1.SelectedTabPage = oTabPage - End Sub - - Private Sub FillResultViewer(DocumentViewer As DocumentViewer, Path As String, Title As String) - DocumentViewer.LoadFile(Path) - - Dim oTabPage = DirectCast(DocumentViewer.Parent, XtraTabPage) - oTabPage.PageVisible = True - oTabPage.Text = NotNull(Title, oTabPage.Text) - - XtraTabControl1.SelectedTabPage = oTabPage - End Sub - - Private Sub FillResultGrid(GridControl As GridControl, Table As DataTable, Title As String) - GridControl.DataSource = Table - - Dim oTabPage = DirectCast(GridControl.Parent, XtraTabPage) - oTabPage.PageVisible = True - oTabPage.Text = NotNull(Title, oTabPage.Text) - - XtraTabControl3.SelectedTabPage = oTabPage - End Sub - - Private Function GetValuesFromNode(Node As TreeListNode, ColumnNames As List(Of String)) As Dictionary(Of String, String) - Dim oValues As New Dictionary(Of String, String) - - For Each oColumnName In ColumnNames - Dim oValue = MaybeGetValueForColumn(Node, oColumnName) - oValues.Add(oColumnName, oValue) - Next - - Return oValues - End Function - - Private Function MaybeGetValueForColumn(Node As TreeListNode, FieldName As String) As String - Dim oColumn = TreeListResults.Columns.Item(FieldName) - - If oColumn Is Nothing Then - Return Nothing - End If - - Dim oValue = Node.GetValue(oColumn)?.ToString - - If oValue Is String.Empty Then - Return Nothing - Else - Return oValue - End If - End Function - - Private Sub TreeListResults_CustomDrawNodeCell(sender As Object, e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs) Handles TreeListResults.CustomDrawNodeCell - Dim oColumn = TreeListResults.Columns.Item("STATE") - Dim oState = NotNull(e.Node.GetValue(oColumn), Nothing) - - If oState Is Nothing Then - Exit Sub - End If - - Dim oColor As Color = Nothing - - Select Case oState.ToString - Case STATE_SUCCESS - oColor = Color.LightGreen - Case STATE_FAILURE - oColor = Color.LightCoral - Case STATE_WARNING - oColor = Color.Yellow - Case STATE_WAITING - oColor = Color.LightSkyBlue - End Select - - e.Appearance.BackColor = oColor - e.Appearance.Options.UseBackColor = True - e.Handled = False - End Sub - - Private Sub TreeListResults_GetStateImage(sender As Object, e As DevExpress.XtraTreeList.GetStateImageEventArgs) Handles TreeListResults.GetStateImage - 'Dim oValues As Dictionary(Of String, String) = GetValuesFromNode(e.Node, DataColumns) - 'Dim oSQLCommands = oValues. - ' Where(Function(v) v.Key.StartsWith("SELECT")). - ' Where(Function(v) v.Value IsNot Nothing). - ' Count() - - 'Dim oFilePaths = oValues. - ' Where(Function(v) v.Key.StartsWith("DOCVIEW")). - ' Where(Function(v) v.Value IsNot Nothing). - ' Count() - - 'Dim oHtmlDocuments = oValues. - ' Where(Function(v) v.Key.StartsWith("HTML")). - ' Where(Function(v) v.Value IsNot Nothing). - ' Count() - - 'Dim oIconColumn = TreeListResults.Columns.Item("ICON") - 'Dim oIcon = NotNull(e.Node.GetValue(oIconColumn), Nothing) - 'Dim oStateColumn = TreeListResults.Columns.Item("STATE") - 'Dim oState = NotNull(e.Node.GetValue(oStateColumn), Nothing) - - 'If oSQLCommands > 0 Then - ' e.NodeImageIndex = NodeImage.SQL - 'ElseIf oFilePaths > 0 Then - ' e.NodeImageIndex = NodeImage.File - 'ElseIf oHtmlDocuments > 0 Then - ' e.NodeImageIndex = NodeImage.Mail - 'Else - ' If oState IsNot Nothing AndAlso StateIcons.ContainsKey(oState) Then - ' Dim oIconIndex = StateIcons.Item(oState) - ' e.NodeImageIndex = oIconIndex - ' Else - ' e.NodeImageIndex = NodeImage.Default - ' End If - 'End If - End Sub - - Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick - Dim oSQLConfig As New DigitalData.Controls.SQLConfig.frmSQLConfig(LogConfig) - If oSQLConfig.ShowDialog() = DialogResult.OK Then - ConfigManager.Config.ConnectionString = oSQLConfig.ConnectionString - ConfigManager.Save() - - Database = New MSSQLServer(LogConfig, oSQLConfig.ConnectionString) - - LoadSearchKeys() - End If - End Sub - - Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportGrid.ItemClick - If ActiveSQLResultGrid IsNot Nothing Then - XtraSaveFileDialog1.Filter = "Excel Files (*.xlsx)|*.xlsx" - - If XtraSaveFileDialog1.ShowDialog() = DialogResult.OK Then - ActiveSQLResultGrid.ExportToXlsx(XtraSaveFileDialog1.FileName) - End If - End If - End Sub - - Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportTreeview.ItemClick - XtraSaveFileDialog1.Filter = "Excel Files (*.xlsx)|*.xlsx" - - If XtraSaveFileDialog1.ShowDialog() = DialogResult.OK Then - TreeListResults.ExportToXlsx(XtraSaveFileDialog1.FileName) - End If - End Sub - - Private Sub TextEdit1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextEdit1.KeyDown - If e.KeyCode = Keys.Enter Or e.KeyCode = Keys.F5 Then - Dim oAttributeId As Integer = cmbSearchKeys.EditValue - Dim oAttributeValue As String = TextEdit1.EditValue.ToString - - LoadData(oAttributeId, oAttributeValue) - End If - End Sub -End Class - -Friend Class SearchKey - Public Id As Integer - Public Title As String - Public TypeName As String - - Public Overrides Function ToString() As String - Return Title - End Function -End Class diff --git a/GUIs.Monitor/packages.config b/GUIs.Monitor/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/GUIs.Monitor/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/App.config b/GUIs.Test.EDMDesigner/App.config deleted file mode 100644 index 1fe0fd64..00000000 --- a/GUIs.Test.EDMDesigner/App.config +++ /dev/null @@ -1,50 +0,0 @@ - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/ClassCurrentUser.vb b/GUIs.Test.EDMDesigner/ClassCurrentUser.vb deleted file mode 100644 index b8cf1bd1..00000000 --- a/GUIs.Test.EDMDesigner/ClassCurrentUser.vb +++ /dev/null @@ -1,15 +0,0 @@ -Imports DigitalData.Modules.Database - -Public Class ClassCurrentUser - Public Username As String - Public Language As String - - Private DBFirebird As Firebird - - Public Sub New(DBFirebird As Firebird) - 'Username = Environment.UserName - - 'Dim sql As String = $"SELECT FNGET_USER_ACCESS('edm','{Username}') FROM rdb$database" - 'Dim result = DBFirebird.GetScalarValue(sql) - End Sub -End Class diff --git a/GUIs.Test.EDMDesigner/ClassInit.vb b/GUIs.Test.EDMDesigner/ClassInit.vb deleted file mode 100644 index 4377c72f..00000000 --- a/GUIs.Test.EDMDesigner/ClassInit.vb +++ /dev/null @@ -1,24 +0,0 @@ -Imports System.IO -Imports Modules.Database -Public Class ClassInit - Public Shared Function Init_user() - Try - USER_USERNAME = Environment.UserName - Dim sql = String.Format("select FNGET_USER_ACCESS('edm','{0}') from rdb$database", USER_USERNAME) - 'Dim result = Firebird.ExecuteScalar(sql, LOGGERFilePath) - - 'sql = String.Format("SELECT * FROM VW_TBEDM_USER WHERE UPPER(LOGIN_NAME) = UPPER('{0}')", USER_USERNAME) - 'DT_USER = ClassDBFirebird.ReturnDatatable(sql, LOGGERFilePath) - 'If Not IsNothing(result) Then - ' If Not IsNothing(DT_USER) Then - ' USER_LANGUAGE = DT_USER.Rows(0).Item("LANGUAGE") - ' End If - ' Return result - 'Else - ' Return False - 'End If - Catch ex As Exception - - End Try - End Function -End Class diff --git a/GUIs.Test.EDMDesigner/EDMDesigner.vbproj b/GUIs.Test.EDMDesigner/EDMDesigner.vbproj deleted file mode 100644 index 202f6b76..00000000 --- a/GUIs.Test.EDMDesigner/EDMDesigner.vbproj +++ /dev/null @@ -1,211 +0,0 @@ - - - - - Debug - AnyCPU - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741} - WinExe - EDMDesigner.My.MyApplication - EDMDesigner - EDMDesigner - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - EDMDesigner.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - EDMDesigner.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - - ..\packages\NLog.4.5.11\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FrmConnection.vb - - - Form - - - Form - - - FrmMain.vb - Form - - - FrmNewTable.vb - - - Form - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - FrmConnection.vb - - - FrmMain.vb - - - FrmNewTable.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - Designer - - - Always - - - Designer - - - - - - - - - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {4c86df8f-a280-40d4-85b0-10b1bf66c15c} - Windream - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/EDMDesigner.vbproj.bak b/GUIs.Test.EDMDesigner/EDMDesigner.vbproj.bak deleted file mode 100644 index deed0716..00000000 --- a/GUIs.Test.EDMDesigner/EDMDesigner.vbproj.bak +++ /dev/null @@ -1,210 +0,0 @@ - - - - - Debug - AnyCPU - {5284F4E5-A6C1-4BCF-896F-3ABEA985B741} - WinExe - EDMDesigner.My.MyApplication - EDMDesigner - EDMDesigner - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - EDMDesigner.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - EDMDesigner.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - - ..\packages\NLog.4.5.11\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FrmConnection.vb - - - Form - - - Form - - - FrmMain.vb - Form - - - FrmNewTable.vb - - - Form - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - FrmConnection.vb - - - FrmMain.vb - - - FrmNewTable.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - Designer - - - Always - - - Designer - - - - - - - - - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {4c86df8f-a280-40d4-85b0-10b1bf66c15c} - Windream - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/FrmConnection.Designer.vb b/GUIs.Test.EDMDesigner/FrmConnection.Designer.vb deleted file mode 100644 index 4b5bddd3..00000000 --- a/GUIs.Test.EDMDesigner/FrmConnection.Designer.vb +++ /dev/null @@ -1,171 +0,0 @@ - _ -Partial Class FrmConnection - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Me.FbDatasourceTextBox = New System.Windows.Forms.TextBox() - Me.FbDatabaseLocationTextBox = New System.Windows.Forms.TextBox() - Me.FbUserTextBox = New System.Windows.Forms.TextBox() - Me.FbPasswordTextBox = New System.Windows.Forms.TextBox() - Me.btnConnect = New System.Windows.Forms.Button() - Me.lblPW = New System.Windows.Forms.Label() - Me.Label3 = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label1 = New System.Windows.Forms.Label() - Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() - Me.lblConnectionStatus = New System.Windows.Forms.ToolStripStatusLabel() - Me.BehaviorManager1 = New DevExpress.Utils.Behaviors.BehaviorManager(Me.components) - Me.StatusStrip1.SuspendLayout() - CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'FbDatasourceTextBox - ' - Me.FbDatasourceTextBox.Location = New System.Drawing.Point(15, 64) - Me.FbDatasourceTextBox.Name = "FbDatasourceTextBox" - Me.FbDatasourceTextBox.Size = New System.Drawing.Size(227, 20) - Me.FbDatasourceTextBox.TabIndex = 2 - Me.FbDatasourceTextBox.Text = "172.24.12.41" - ' - 'FbDatabaseLocationTextBox - ' - Me.FbDatabaseLocationTextBox.Location = New System.Drawing.Point(15, 25) - Me.FbDatabaseLocationTextBox.Name = "FbDatabaseLocationTextBox" - Me.FbDatabaseLocationTextBox.Size = New System.Drawing.Size(682, 20) - Me.FbDatabaseLocationTextBox.TabIndex = 1 - Me.FbDatabaseLocationTextBox.Text = "172.24.12.41:E:\DB\Firebird\Databases\DD_EDM.FDB" - ' - 'FbUserTextBox - ' - Me.FbUserTextBox.Location = New System.Drawing.Point(248, 64) - Me.FbUserTextBox.Name = "FbUserTextBox" - Me.FbUserTextBox.Size = New System.Drawing.Size(140, 20) - Me.FbUserTextBox.TabIndex = 3 - Me.FbUserTextBox.Text = "EDM_GUI" - ' - 'FbPasswordTextBox - ' - Me.FbPasswordTextBox.Location = New System.Drawing.Point(394, 64) - Me.FbPasswordTextBox.Name = "FbPasswordTextBox" - Me.FbPasswordTextBox.Size = New System.Drawing.Size(86, 20) - Me.FbPasswordTextBox.TabIndex = 4 - Me.FbPasswordTextBox.Text = "dd" - ' - 'btnConnect - ' - Me.btnConnect.Location = New System.Drawing.Point(486, 62) - Me.btnConnect.Name = "btnConnect" - Me.btnConnect.Size = New System.Drawing.Size(211, 23) - Me.btnConnect.TabIndex = 5 - Me.btnConnect.Text = "Connect" - Me.btnConnect.UseVisualStyleBackColor = True - ' - 'lblPW - ' - Me.lblPW.AutoSize = True - Me.lblPW.Location = New System.Drawing.Point(391, 48) - Me.lblPW.Name = "lblPW" - Me.lblPW.Size = New System.Drawing.Size(28, 13) - Me.lblPW.TabIndex = 34 - Me.lblPW.Text = "PW:" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(245, 48) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(43, 13) - Me.Label3.TabIndex = 33 - Me.Label3.Text = "UserID:" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(12, 48) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(62, 13) - Me.Label2.TabIndex = 32 - Me.Label2.Text = "Datasource" - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 9) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(75, 13) - Me.Label1.TabIndex = 31 - Me.Label1.Text = "FDB-Location:" - ' - 'StatusStrip1 - ' - Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lblConnectionStatus}) - Me.StatusStrip1.Location = New System.Drawing.Point(0, 196) - Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(710, 22) - Me.StatusStrip1.TabIndex = 40 - Me.StatusStrip1.Text = "StatusStrip1" - ' - 'lblConnectionStatus - ' - Me.lblConnectionStatus.Name = "lblConnectionStatus" - Me.lblConnectionStatus.Size = New System.Drawing.Size(114, 17) - Me.lblConnectionStatus.Text = "lblConnectionStatus" - ' - 'FrmConnection - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(710, 218) - Me.Controls.Add(Me.StatusStrip1) - Me.Controls.Add(Me.FbDatasourceTextBox) - Me.Controls.Add(Me.FbDatabaseLocationTextBox) - Me.Controls.Add(Me.FbUserTextBox) - Me.Controls.Add(Me.FbPasswordTextBox) - Me.Controls.Add(Me.btnConnect) - Me.Controls.Add(Me.lblPW) - Me.Controls.Add(Me.Label3) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.Label1) - Me.Name = "FrmConnection" - Me.Text = "FrmConnection" - Me.StatusStrip1.ResumeLayout(False) - Me.StatusStrip1.PerformLayout() - CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents FbDatasourceTextBox As TextBox - Friend WithEvents FbDatabaseLocationTextBox As TextBox - Friend WithEvents FbUserTextBox As TextBox - Friend WithEvents FbPasswordTextBox As TextBox - Friend WithEvents btnConnect As Button - Friend WithEvents lblPW As Label - Friend WithEvents Label3 As Label - Friend WithEvents Label2 As Label - Friend WithEvents Label1 As Label - Friend WithEvents StatusStrip1 As StatusStrip - Friend WithEvents lblConnectionStatus As ToolStripStatusLabel - Friend WithEvents BehaviorManager1 As DevExpress.Utils.Behaviors.BehaviorManager -End Class diff --git a/GUIs.Test.EDMDesigner/FrmConnection.resx b/GUIs.Test.EDMDesigner/FrmConnection.resx deleted file mode 100644 index a9f75ee1..00000000 --- a/GUIs.Test.EDMDesigner/FrmConnection.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 134, 17 - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/FrmConnection.vb b/GUIs.Test.EDMDesigner/FrmConnection.vb deleted file mode 100644 index ec5c7a63..00000000 --- a/GUIs.Test.EDMDesigner/FrmConnection.vb +++ /dev/null @@ -1,42 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging - -Public Class FrmConnection - Public Property LogConfig As LogConfig - - Private _logger As NLog.Logger - - Private Sub FrmConnection_Load(sender As Object, e As EventArgs) Handles MyBase.Load - _logger = LogConfig.GetLogger() - - FbDatabaseLocationTextBox.DataBindings.Add("Text", My.Settings, "fbDatabaseLocation") - FbDatasourceTextBox.DataBindings.Add("Text", My.Settings, "fbDatasource") - FbUserTextBox.DataBindings.Add("Text", My.Settings, "fbUser") - FbPasswordTextBox.DataBindings.Add("Text", My.Settings, "fbPassword") - End Sub - - Private Sub BtnConnect_Click(sender As Object, e As EventArgs) Handles btnConnect.Click - Dim dbTest As Firebird - - Try - dbTest = New Firebird(LogConfig, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) - - - My.Settings.Save() - - MsgBox("Connection successful!", MsgBoxStyle.Information, "Database Connection") - - lblConnectionStatus.Text = "Connection established!" - lblConnectionStatus.BackColor = Color.GreenYellow - - DialogResult = DialogResult.OK - Catch ex As Exception - MsgBox("Connection failed!", MsgBoxStyle.Information, "Database Connection") - - lblConnectionStatus.Text = "No connection established" - lblConnectionStatus.BackColor = Color.Red - - DialogResult = DialogResult.None - End Try - End Sub -End Class \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/FrmMain.vb b/GUIs.Test.EDMDesigner/FrmMain.vb deleted file mode 100644 index d1b8f5e1..00000000 --- a/GUIs.Test.EDMDesigner/FrmMain.vb +++ /dev/null @@ -1,170 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging -Imports System.IO - -Public Class FrmMain - Private _selectedTable As Integer - Private _selectedTableName As String - - Private _logger As Logger - Private _logConfig As LogConfig - Private _firebird As Firebird - - Private Sub CreateTableNodesFromDatatable(DataTable As DataTable, DatabaseName As String) - treeViewMain.Nodes.Clear() - - ' Node der Datenbank erstellen - Dim oDbNode As New TreeNode With { - .Text = DatabaseName, - .Name = "DATABASE" - } - - ' Übernode für Tabellen erstellen - Dim oTablesNode As New TreeNode With { - .Text = "Tabellen", - .Name = "TABLES" - } - - ' Nodes für Tabellen erstellen - Dim oTableNodeList As New List(Of TreeNode) - - For Each row As DataRow In DataTable.Rows - Dim oNode As New TreeNode With { - .Text = row.Item("TABLE"), - .Name = row.Item("TABLE"), - .Tag = row.Item("TABLE_ID") - } - - oTableNodeList.Add(oNode) - Next - - ' Nodes zusammenfügen - oTablesNode.Nodes.AddRange(oTableNodeList.ToArray) - oDbNode.Nodes.Add(oTablesNode) - - ' Nodes einhängen - treeViewMain.Nodes.Add(oDbNode) - treeViewMain.ExpandAll() - End Sub - - Private Function LoadTables() - Return _firebird.GetDatatable("SELECT DISTINCT T.TABLE_ID,T.""TABLE"" from VWEDM_TABLE_COLUMN T") - End Function - - Private Function DatabaseSettingsExist() - Return My.Settings.fbDatabaseLocation <> String.Empty And My.Settings.fbDatasource <> String.Empty And My.Settings.fbUser <> String.Empty And My.Settings.fbPassword <> String.Empty - End Function - - Private Sub Init() - Try - _firebird = New Firebird(_logConfig, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) - - ' Get info about the logged in user - 'CurrentUser = New ClassCurrentUser(DBFirebird) - - Dim dt As DataTable = LoadTables() - CreateTableNodesFromDatatable(dt, _firebird.DatabaseName) - Catch ex As Exception - MsgBox(ex.Message) - End Try - End Sub - - Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load - _logConfig = New LogConfig(LogConfig.PathType.CurrentDirectory) - _logger = _logConfig.GetLogger() '_logConfig.LogFactory.GetCurrentClassLogger(GetType(Logger)) - - _logger.NewBlock("STARTUP") - _logger.Info("INFO") - _logger.Warn("WARN") - _logger.NewBlock("ERROR") - - - Try - Throw New Exception("ERROR") - Catch ex As Exception - _logger.Error(ex) - End Try - - ' Check for existing database credentials - While Not DatabaseSettingsExist() - Dim form As New FrmConnection With { - .LogConfig = _logConfig - } - Dim result As DialogResult = form.ShowDialog() - - If result = DialogResult.OK Then - Exit While - End If - End While - - Init() - End Sub - - Private Sub TreeViewMain_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles treeViewMain.NodeMouseClick - If e.Button = MouseButtons.Right Then - _selectedTable = -1 - _selectedTableName = Nothing - - ' Wenn kein Node geklickt wurde, aussteigen - If e.Node Is Nothing OrElse e.Node.Parent Is Nothing Then - Exit Sub - End If - - Dim parentName As String = e.Node.Parent.Name - - ' Das Kontextmenü für den angeklickten Node öffnen - Select Case parentName - Case "TABLES" - _selectedTable = e.Node.Tag - _selectedTableName = e.Node.Name - contextMenuTable.Show(MousePosition) - Case "DATABASE" - contextMenuDatabase.Show(MousePosition) - End Select - - treeViewMain.SelectedNode = e.Node - End If - End Sub - - - Private Sub TabelleBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TabelleBearbeitenToolStripMenuItem.Click - Dim oDataTable = New DataTable() - Dim oConnection = _firebird.GetConnection() - Dim oDataAdapter = New FirebirdSql.Data.FirebirdClient.FbDataAdapter($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {_selectedTable}", oConnection) - - Try - oDataAdapter.Fill(oDataTable) - gridControlTableProperties.DataSource = oDataTable - Catch ex As Exception - _logger.Error(ex) - MsgBox($"Error while loading columns for table {_selectedTable}") - Finally - oConnection.Close() - End Try - - oDataTable = New DataTable() - oConnection = _firebird.GetConnection() - oDataAdapter = New FirebirdSql.Data.FirebirdClient.FbDataAdapter($"SELECT * FROM VW_{_selectedTableName}", oConnection) - - Try - oDataAdapter.Fill(oDataTable) - gridControlTableData.DataSource = oDataTable - Catch ex As Exception - _logger.Error(ex) - MsgBox($"Error while loading data for table {_selectedTable}") - Finally - oConnection.Close() - End Try - - 'Dim dt As DataTable = _firebird.GetDatatable($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {_selectedTable}") - 'gridControlTableProperties.DataSource = dt - End Sub - - Private Sub NeueTabelleToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueTabelleToolStripMenuItem.Click - Dim oForm As New FrmNewTable(_logConfig) - oForm.ShowDialog() - - Dim oTables As DataTable = LoadTables() - CreateTableNodesFromDatatable(oTables, _firebird.DatabaseName) - End Sub -End Class diff --git a/GUIs.Test.EDMDesigner/FrmNewTable.Designer.vb b/GUIs.Test.EDMDesigner/FrmNewTable.Designer.vb deleted file mode 100644 index b3a45ae2..00000000 --- a/GUIs.Test.EDMDesigner/FrmNewTable.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ - _ -Partial Class FrmNewTable - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.btnOK = New System.Windows.Forms.Button() - Me.txtTablename = New System.Windows.Forms.TextBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.SuspendLayout() - ' - 'btnOK - ' - Me.btnOK.Location = New System.Drawing.Point(311, 51) - Me.btnOK.Name = "btnOK" - Me.btnOK.Size = New System.Drawing.Size(75, 23) - Me.btnOK.TabIndex = 0 - Me.btnOK.Text = "OK" - Me.btnOK.UseVisualStyleBackColor = True - ' - 'txtTablename - ' - Me.txtTablename.Location = New System.Drawing.Point(12, 25) - Me.txtTablename.Name = "txtTablename" - Me.txtTablename.Size = New System.Drawing.Size(374, 20) - Me.txtTablename.TabIndex = 1 - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 9) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(77, 13) - Me.Label1.TabIndex = 2 - Me.Label1.Text = "Tabellenname:" - ' - 'FrmNewTable - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(398, 98) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.txtTablename) - Me.Controls.Add(Me.btnOK) - Me.Name = "FrmNewTable" - Me.Text = "Neue Tabelle" - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents btnOK As Button - Friend WithEvents txtTablename As TextBox - Friend WithEvents Label1 As Label -End Class diff --git a/GUIs.Test.EDMDesigner/FrmNewTable.resx b/GUIs.Test.EDMDesigner/FrmNewTable.resx deleted file mode 100644 index 1af7de15..00000000 --- a/GUIs.Test.EDMDesigner/FrmNewTable.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/FrmNewTable.vb b/GUIs.Test.EDMDesigner/FrmNewTable.vb deleted file mode 100644 index 4812049f..00000000 --- a/GUIs.Test.EDMDesigner/FrmNewTable.vb +++ /dev/null @@ -1,51 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging - - -Public Class FrmNewTable - Private _logConfig As LogConfig - Private _logger As Logger - Private _db As Firebird - - Public Sub New(LogConfig As LogConfig) - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() - - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _logConfig = LogConfig - _logger = _logConfig.GetLogger() - End Sub - - Private Sub FrmNewTable_Load(sender As Object, e As EventArgs) Handles Me.Load - Try - _db = New Firebird(_logConfig, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) - Catch ex As Exception - MsgBox("Connection to DB failed!", MsgBoxStyle.Critical) - _logger.Error(ex) - End Try - End Sub - - Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click - Dim oTableName As String = txtTablename.Text - - If oTableName.Trim() = String.Empty Then - MsgBox("Table name cannot be empty!", MsgBoxStyle.Exclamation) - Exit Sub - End If - - Dim oExistingTableId = _db.GetScalarValue($"SELECT GUID FROM TBEDM_TABLE WHERE DESCRIPTION = '{oTableName}'") - - If oExistingTableId IsNot Nothing Then - MsgBox("Table already exists!", MsgBoxStyle.Exclamation) - Exit Sub - End If - - Dim oResult = _db.GetScalarValue($"SELECT FNCREATE_TABLE('{oTableName}','{Environment.UserName}') FROM rdb$database;") - - If oResult >= 0 Then - Close() - Else - MsgBox("An error occurred while creating the table. Check the log", MsgBoxStyle.Critical) - End If - End Sub -End Class \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/ModuleRuntimeVariables.vb b/GUIs.Test.EDMDesigner/ModuleRuntimeVariables.vb deleted file mode 100644 index 52caf268..00000000 --- a/GUIs.Test.EDMDesigner/ModuleRuntimeVariables.vb +++ /dev/null @@ -1,9 +0,0 @@ -Module ModuleRuntimeVariables - Public LOGGERFilePath As String - Public DT_USER As DataTable - Public USER_USERNAME As String - Public USER_LANGUAGE As String = "de-DE" - - - Public CurrentUser As ClassCurrentUser -End Module diff --git a/GUIs.Test.EDMDesigner/My Project/Application.Designer.vb b/GUIs.Test.EDMDesigner/My Project/Application.Designer.vb deleted file mode 100644 index a76004e6..00000000 --- a/GUIs.Test.EDMDesigner/My Project/Application.Designer.vb +++ /dev/null @@ -1,38 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - 'NOTE: This file is auto-generated; do not modify it directly. To make changes, - ' or if you encounter build errors in this file, go to the Project Designer - ' (go to Project Properties or double-click the My Project node in - ' Solution Explorer), and make changes on the Application tab. - ' - Partial Friend Class MyApplication - - _ - 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 - - _ - Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.EDMDesigner.FrmMain - End Sub - End Class -End Namespace diff --git a/GUIs.Test.EDMDesigner/My Project/Application.myapp b/GUIs.Test.EDMDesigner/My Project/Application.myapp deleted file mode 100644 index 1243847f..00000000 --- a/GUIs.Test.EDMDesigner/My Project/Application.myapp +++ /dev/null @@ -1,11 +0,0 @@ - - - true - Form1 - false - 0 - true - 0 - 0 - true - diff --git a/GUIs.Test.EDMDesigner/My Project/AssemblyInfo.vb b/GUIs.Test.EDMDesigner/My Project/AssemblyInfo.vb deleted file mode 100644 index d8e372d0..00000000 --- a/GUIs.Test.EDMDesigner/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/GUIs.Test.EDMDesigner/My Project/DataSources/EDMDesigner.My.MySettings.datasource b/GUIs.Test.EDMDesigner/My Project/DataSources/EDMDesigner.My.MySettings.datasource deleted file mode 100644 index 0b2f5839..00000000 --- a/GUIs.Test.EDMDesigner/My Project/DataSources/EDMDesigner.My.MySettings.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - EDMDesigner.My.MySettings, My Project.Resources.Designer.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/My Project/Resources.Designer.vb b/GUIs.Test.EDMDesigner/My Project/Resources.Designer.vb deleted file mode 100644 index c4873fec..00000000 --- a/GUIs.Test.EDMDesigner/My Project/Resources.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EDMDesigner.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property database_link() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("database_link", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - End Module -End Namespace diff --git a/GUIs.Test.EDMDesigner/My Project/Resources.resx b/GUIs.Test.EDMDesigner/My Project/Resources.resx deleted file mode 100644 index 3ec55bff..00000000 --- a/GUIs.Test.EDMDesigner/My Project/Resources.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\database_link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/My Project/Settings.Designer.vb b/GUIs.Test.EDMDesigner/My Project/Settings.Designer.vb deleted file mode 100644 index e79b20fa..00000000 --- a/GUIs.Test.EDMDesigner/My Project/Settings.Designer.vb +++ /dev/null @@ -1,121 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - - _ - Public Property fbDatasource() As String - Get - Return CType(Me("fbDatasource"),String) - End Get - Set - Me("fbDatasource") = value - End Set - End Property - - _ - Public Property fbUser() As String - Get - Return CType(Me("fbUser"),String) - End Get - Set - Me("fbUser") = value - End Set - End Property - - _ - Public Property fbPassword() As String - Get - Return CType(Me("fbPassword"),String) - End Get - Set - Me("fbPassword") = value - End Set - End Property - - _ - Public Property fbDatabaseLocation() As String - Get - Return CType(Me("fbDatabaseLocation"),String) - End Get - Set - Me("fbDatabaseLocation") = value - End Set - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.EDMDesigner.My.MySettings - Get - Return Global.EDMDesigner.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/GUIs.Test.EDMDesigner/My Project/Settings.settings b/GUIs.Test.EDMDesigner/My Project/Settings.settings deleted file mode 100644 index 6ed66239..00000000 --- a/GUIs.Test.EDMDesigner/My Project/Settings.settings +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/My Project/licenses.licx b/GUIs.Test.EDMDesigner/My Project/licenses.licx deleted file mode 100644 index e69de29b..00000000 diff --git a/GUIs.Test.EDMDesigner/My Project/licenses.licx.bak b/GUIs.Test.EDMDesigner/My Project/licenses.licx.bak deleted file mode 100644 index ac169473..00000000 --- a/GUIs.Test.EDMDesigner/My Project/licenses.licx.bak +++ /dev/null @@ -1,6 +0,0 @@ -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.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.XtraWizard.WizardControl, DevExpress.XtraWizard.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.XtraBars.Docking.DockManager, 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 diff --git a/GUIs.Test.EDMDesigner/Resources/database_link.png b/GUIs.Test.EDMDesigner/Resources/database_link.png deleted file mode 100644 index 4c8204af..00000000 Binary files a/GUIs.Test.EDMDesigner/Resources/database_link.png and /dev/null differ diff --git a/GUIs.Test.EDMDesigner/frmMain.Designer.vb b/GUIs.Test.EDMDesigner/frmMain.Designer.vb deleted file mode 100644 index a8fef387..00000000 --- a/GUIs.Test.EDMDesigner/frmMain.Designer.vb +++ /dev/null @@ -1,331 +0,0 @@ - -Partial Class FrmMain - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim DockingContainer3 As DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer() - Me.DocumentGroup1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup(Me.components) - Me.Document1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.Document(Me.components) - Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() - Me.ToolStripStatusLabelConState = New System.Windows.Forms.ToolStripStatusLabel() - Me.treeViewMain = New System.Windows.Forms.TreeView() - Me.gridControlTableProperties = New DevExpress.XtraGrid.GridControl() - Me.gridViewTableProperties = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.MySettingsBindingSource = New System.Windows.Forms.BindingSource(Me.components) - Me.contextMenuTable = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.TabelleBearbeitenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TabelleLöschenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() - Me.DockManager1 = New DevExpress.XtraBars.Docking.DockManager(Me.components) - Me.panelTableDetail = New DevExpress.XtraBars.Docking.DockPanel() - Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() - Me.gridControlTableData = New DevExpress.XtraGrid.GridControl() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.panelDatabase = New DevExpress.XtraBars.Docking.DockPanel() - Me.DockPanel1_Container = New DevExpress.XtraBars.Docking.ControlContainer() - Me.DocumentManager1 = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components) - Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(Me.components) - Me.contextMenuDatabase = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.NeueTabelleToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.Document1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.StatusStrip1.SuspendLayout() - CType(Me.gridControlTableProperties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.gridViewTableProperties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.MySettingsBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() - Me.contextMenuTable.SuspendLayout() - CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.panelTableDetail.SuspendLayout() - Me.DockPanel2_Container.SuspendLayout() - CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainer1.Panel1.SuspendLayout() - Me.SplitContainer1.Panel2.SuspendLayout() - Me.SplitContainer1.SuspendLayout() - CType(Me.gridControlTableData, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.panelDatabase.SuspendLayout() - Me.DockPanel1_Container.SuspendLayout() - CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.contextMenuDatabase.SuspendLayout() - Me.SuspendLayout() - ' - 'DocumentGroup1 - ' - Me.DocumentGroup1.Items.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.Document() {Me.Document1}) - ' - 'Document1 - ' - Me.Document1.Caption = "DockPanel2" - Me.Document1.ControlName = "panelTableDetail" - Me.Document1.FloatLocation = New System.Drawing.Point(-1910, 9) - Me.Document1.FloatSize = New System.Drawing.Size(200, 200) - Me.Document1.Properties.AllowClose = DevExpress.Utils.DefaultBoolean.[False] - Me.Document1.Properties.AllowFloat = DevExpress.Utils.DefaultBoolean.[True] - Me.Document1.Properties.AllowFloatOnDoubleClick = DevExpress.Utils.DefaultBoolean.[True] - ' - 'StatusStrip1 - ' - Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabelConState}) - Me.StatusStrip1.Location = New System.Drawing.Point(0, 509) - Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(955, 22) - Me.StatusStrip1.TabIndex = 0 - Me.StatusStrip1.Text = "StatusStrip1" - ' - 'ToolStripStatusLabelConState - ' - Me.ToolStripStatusLabelConState.Image = Global.EDMDesigner.My.Resources.Resources.database_link - Me.ToolStripStatusLabelConState.Name = "ToolStripStatusLabelConState" - Me.ToolStripStatusLabelConState.Size = New System.Drawing.Size(166, 17) - Me.ToolStripStatusLabelConState.Text = "No Connection established" - ' - 'treeViewMain - ' - Me.treeViewMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.treeViewMain.Location = New System.Drawing.Point(0, 0) - Me.treeViewMain.Name = "treeViewMain" - Me.treeViewMain.Size = New System.Drawing.Size(191, 458) - Me.treeViewMain.TabIndex = 0 - ' - 'gridControlTableProperties - ' - Me.gridControlTableProperties.Dock = System.Windows.Forms.DockStyle.Fill - Me.gridControlTableProperties.Location = New System.Drawing.Point(0, 0) - Me.gridControlTableProperties.MainView = Me.gridViewTableProperties - Me.gridControlTableProperties.Name = "gridControlTableProperties" - Me.gridControlTableProperties.Size = New System.Drawing.Size(749, 228) - Me.gridControlTableProperties.TabIndex = 0 - Me.gridControlTableProperties.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.gridViewTableProperties}) - ' - 'gridViewTableProperties - ' - Me.gridViewTableProperties.GridControl = Me.gridControlTableProperties - Me.gridViewTableProperties.Name = "gridViewTableProperties" - ' - 'MySettingsBindingSource - ' - Me.MySettingsBindingSource.DataSource = GetType(System.Configuration.ApplicationSettingsBase) - ' - 'contextMenuTable - ' - Me.contextMenuTable.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TabelleBearbeitenToolStripMenuItem, Me.TabelleLöschenToolStripMenuItem}) - Me.contextMenuTable.Name = "contextMenuTable" - Me.contextMenuTable.Size = New System.Drawing.Size(177, 48) - ' - 'TabelleBearbeitenToolStripMenuItem - ' - Me.TabelleBearbeitenToolStripMenuItem.Name = "TabelleBearbeitenToolStripMenuItem" - Me.TabelleBearbeitenToolStripMenuItem.Size = New System.Drawing.Size(178, 22) - Me.TabelleBearbeitenToolStripMenuItem.Text = "Tabelle bearbeiten.." - ' - 'TabelleLöschenToolStripMenuItem - ' - Me.TabelleLöschenToolStripMenuItem.Name = "TabelleLöschenToolStripMenuItem" - Me.TabelleLöschenToolStripMenuItem.Size = New System.Drawing.Size(178, 22) - Me.TabelleLöschenToolStripMenuItem.Text = "Tabelle löschen.." - ' - 'MenuStrip1 - ' - Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) - Me.MenuStrip1.Name = "MenuStrip1" - Me.MenuStrip1.Size = New System.Drawing.Size(955, 24) - Me.MenuStrip1.TabIndex = 1 - Me.MenuStrip1.Text = "MenuStrip1" - ' - 'DockManager1 - ' - Me.DockManager1.Form = Me - Me.DockManager1.RootPanels.AddRange(New DevExpress.XtraBars.Docking.DockPanel() {Me.panelTableDetail, Me.panelDatabase}) - Me.DockManager1.TopZIndexControls.AddRange(New String() {"DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.StatusBar", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl"}) - ' - 'panelTableDetail - ' - Me.panelTableDetail.Controls.Add(Me.DockPanel2_Container) - Me.panelTableDetail.Dock = DevExpress.XtraBars.Docking.DockingStyle.Float - Me.panelTableDetail.DockedAsTabbedDocument = True - Me.panelTableDetail.FloatLocation = New System.Drawing.Point(-1910, 9) - Me.panelTableDetail.ID = New System.Guid("01f09f00-3eb4-4caa-b31c-cbe38c6e45b3") - Me.panelTableDetail.Location = New System.Drawing.Point(0, 0) - Me.panelTableDetail.Name = "panelTableDetail" - Me.panelTableDetail.Options.ShowCloseButton = False - Me.panelTableDetail.OriginalSize = New System.Drawing.Size(200, 200) - Me.panelTableDetail.SavedSizeFactor = 1.0R - Me.panelTableDetail.Size = New System.Drawing.Size(749, 457) - Me.panelTableDetail.Text = "DockPanel2" - ' - 'DockPanel2_Container - ' - Me.DockPanel2_Container.Controls.Add(Me.SplitContainer1) - Me.DockPanel2_Container.Location = New System.Drawing.Point(0, 0) - Me.DockPanel2_Container.Name = "DockPanel2_Container" - Me.DockPanel2_Container.Size = New System.Drawing.Size(749, 457) - Me.DockPanel2_Container.TabIndex = 0 - ' - 'SplitContainer1 - ' - Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) - Me.SplitContainer1.Name = "SplitContainer1" - Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal - ' - 'SplitContainer1.Panel1 - ' - Me.SplitContainer1.Panel1.Controls.Add(Me.gridControlTableProperties) - ' - 'SplitContainer1.Panel2 - ' - Me.SplitContainer1.Panel2.Controls.Add(Me.gridControlTableData) - Me.SplitContainer1.Size = New System.Drawing.Size(749, 457) - Me.SplitContainer1.SplitterDistance = 228 - Me.SplitContainer1.TabIndex = 1 - ' - 'gridControlTableData - ' - Me.gridControlTableData.Dock = System.Windows.Forms.DockStyle.Fill - Me.gridControlTableData.Location = New System.Drawing.Point(0, 0) - Me.gridControlTableData.MainView = Me.GridView1 - Me.gridControlTableData.Name = "gridControlTableData" - Me.gridControlTableData.Size = New System.Drawing.Size(749, 225) - Me.gridControlTableData.TabIndex = 0 - Me.gridControlTableData.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) - ' - 'GridView1 - ' - Me.GridView1.GridControl = Me.gridControlTableData - Me.GridView1.Name = "GridView1" - ' - 'panelDatabase - ' - Me.panelDatabase.Controls.Add(Me.DockPanel1_Container) - Me.panelDatabase.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left - Me.panelDatabase.ID = New System.Guid("f88fafa6-e45c-4fbf-9675-b590ab7ad0b3") - Me.panelDatabase.Location = New System.Drawing.Point(0, 24) - Me.panelDatabase.Name = "panelDatabase" - Me.panelDatabase.Options.ShowCloseButton = False - Me.panelDatabase.OriginalSize = New System.Drawing.Size(200, 200) - Me.panelDatabase.SavedSizeFactor = 0R - Me.panelDatabase.Size = New System.Drawing.Size(200, 485) - Me.panelDatabase.Text = "Datenbank" - ' - 'DockPanel1_Container - ' - Me.DockPanel1_Container.Controls.Add(Me.treeViewMain) - Me.DockPanel1_Container.Location = New System.Drawing.Point(4, 23) - Me.DockPanel1_Container.Name = "DockPanel1_Container" - Me.DockPanel1_Container.Size = New System.Drawing.Size(191, 458) - Me.DockPanel1_Container.TabIndex = 0 - ' - 'DocumentManager1 - ' - Me.DocumentManager1.ContainerControl = Me - Me.DocumentManager1.View = Me.TabbedView1 - Me.DocumentManager1.ViewCollection.AddRange(New DevExpress.XtraBars.Docking2010.Views.BaseView() {Me.TabbedView1}) - ' - 'TabbedView1 - ' - Me.TabbedView1.DocumentGroups.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup() {Me.DocumentGroup1}) - Me.TabbedView1.Documents.AddRange(New DevExpress.XtraBars.Docking2010.Views.BaseDocument() {Me.Document1}) - DockingContainer3.Element = Me.DocumentGroup1 - Me.TabbedView1.RootContainer.Nodes.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer() {DockingContainer3}) - Me.TabbedView1.WindowsDialogProperties.NameColumnWidth = 5 - Me.TabbedView1.WindowsDialogProperties.PathColumnWidth = 5 - Me.TabbedView1.WindowsDialogProperties.Size = New System.Drawing.Size(400, 300) - ' - 'contextMenuDatabase - ' - Me.contextMenuDatabase.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeueTabelleToolStripMenuItem}) - Me.contextMenuDatabase.Name = "contextMenuDatabase" - Me.contextMenuDatabase.Size = New System.Drawing.Size(149, 26) - ' - 'NeueTabelleToolStripMenuItem - ' - Me.NeueTabelleToolStripMenuItem.Name = "NeueTabelleToolStripMenuItem" - Me.NeueTabelleToolStripMenuItem.Size = New System.Drawing.Size(148, 22) - Me.NeueTabelleToolStripMenuItem.Text = "Neue Tabelle.." - ' - 'FrmMain - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(955, 531) - Me.Controls.Add(Me.panelDatabase) - Me.Controls.Add(Me.StatusStrip1) - Me.Controls.Add(Me.MenuStrip1) - Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.MainMenuStrip = Me.MenuStrip1 - Me.Name = "FrmMain" - Me.Text = "EDM Designer" - CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.Document1, System.ComponentModel.ISupportInitialize).EndInit() - Me.StatusStrip1.ResumeLayout(False) - Me.StatusStrip1.PerformLayout() - CType(Me.gridControlTableProperties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.gridViewTableProperties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.MySettingsBindingSource, System.ComponentModel.ISupportInitialize).EndInit() - Me.contextMenuTable.ResumeLayout(False) - CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).EndInit() - Me.panelTableDetail.ResumeLayout(False) - Me.DockPanel2_Container.ResumeLayout(False) - Me.SplitContainer1.Panel1.ResumeLayout(False) - Me.SplitContainer1.Panel2.ResumeLayout(False) - CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainer1.ResumeLayout(False) - CType(Me.gridControlTableData, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() - Me.panelDatabase.ResumeLayout(False) - Me.DockPanel1_Container.ResumeLayout(False) - CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).EndInit() - Me.contextMenuDatabase.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents StatusStrip1 As StatusStrip - Friend WithEvents treeViewMain As TreeView - Friend WithEvents ToolStripStatusLabelConState As ToolStripStatusLabel - Friend WithEvents gridControlTableProperties As DevExpress.XtraGrid.GridControl - Friend WithEvents gridViewTableProperties As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents contextMenuTable As ContextMenuStrip - Friend WithEvents TabelleBearbeitenToolStripMenuItem As ToolStripMenuItem - Friend WithEvents TabelleLöschenToolStripMenuItem As ToolStripMenuItem - Friend WithEvents MySettingsBindingSource As BindingSource - Friend WithEvents MenuStrip1 As MenuStrip - Friend WithEvents DockManager1 As DevExpress.XtraBars.Docking.DockManager - Friend WithEvents panelDatabase As DevExpress.XtraBars.Docking.DockPanel - Friend WithEvents DockPanel1_Container As DevExpress.XtraBars.Docking.ControlContainer - Friend WithEvents panelTableDetail As DevExpress.XtraBars.Docking.DockPanel - Friend WithEvents DockPanel2_Container As DevExpress.XtraBars.Docking.ControlContainer - Friend WithEvents DocumentManager1 As DevExpress.XtraBars.Docking2010.DocumentManager - Friend WithEvents TabbedView1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView - Friend WithEvents DocumentGroup1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup - Friend WithEvents Document1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.Document - Friend WithEvents contextMenuDatabase As ContextMenuStrip - Friend WithEvents NeueTabelleToolStripMenuItem As ToolStripMenuItem - Friend WithEvents SplitContainer1 As SplitContainer - Friend WithEvents gridControlTableData As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView -End Class diff --git a/GUIs.Test.EDMDesigner/frmMain.resx b/GUIs.Test.EDMDesigner/frmMain.resx deleted file mode 100644 index 48da4873..00000000 --- a/GUIs.Test.EDMDesigner/frmMain.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 422, 17 - - - 134, 17 - - - 613, 17 - - - 287, 17 - - - 728, 17 - - - 892, 17 - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/nlog.config b/GUIs.Test.EDMDesigner/nlog.config deleted file mode 100644 index 78d910a1..00000000 --- a/GUIs.Test.EDMDesigner/nlog.config +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMDesigner/packages.config b/GUIs.Test.EDMDesigner/packages.config deleted file mode 100644 index 81ef80e4..00000000 --- a/GUIs.Test.EDMDesigner/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.EDMIBenchmark/GUIs.Test.EDMIBenchmark.vbproj b/GUIs.Test.EDMIBenchmark/GUIs.Test.EDMIBenchmark.vbproj index 1a5cd31f..5232700a 100644 --- a/GUIs.Test.EDMIBenchmark/GUIs.Test.EDMIBenchmark.vbproj +++ b/GUIs.Test.EDMIBenchmark/GUIs.Test.EDMIBenchmark.vbproj @@ -62,6 +62,14 @@ ..\Controls.LookupGrid\obj\Debug\DigitalData.Controls.LookupGrid.dll + + False + ..\..\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll @@ -161,18 +169,6 @@ {d20a6bf2-c7c6-4a7a-b34d-fa27d775a049} Common - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {81cac44f-3711-4c8f-ae98-e02a7448782a} - ZooFlow - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/App.config b/GUIs.Test.GUI_EDMI/App.config deleted file mode 100644 index 48ca3356..00000000 --- a/GUIs.Test.GUI_EDMI/App.config +++ /dev/null @@ -1,60 +0,0 @@ - - - - -
- - -
- -
- - - - - - - - - 172.24.12.41 - - - 172.24.12.41:E:\DB\Firebird\Databases\EDMI_TEMPLATE\EDMI_MASTER.FDB - - - sysdba - - - dd - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/GUI_EDMI.vbproj b/GUIs.Test.GUI_EDMI/GUI_EDMI.vbproj deleted file mode 100644 index 5b28b7b2..00000000 --- a/GUIs.Test.GUI_EDMI/GUI_EDMI.vbproj +++ /dev/null @@ -1,247 +0,0 @@ - - - - - Debug - AnyCPU - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0} - WinExe - GUI_EDMI.My.MyApplication - GUI_EDMI - GUI_EDMI - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - GUI_EDMI.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - GUI_EDMI.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - TOOL_ohne_slogan.ico - - - - - - - - - - - - - ..\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll - - - ..\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll - - - ..\Message\bin\Debug\DigitalData.Modules.Messaging.dll - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - ..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll - - - - ..\packages\Microsoft.EntityFrameworkCore.2.0.3\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - - - ..\packages\Microsoft.EntityFrameworkCore.Relational.2.0.3\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll - - - ..\packages\Microsoft.Extensions.Caching.Abstractions.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - - - ..\packages\Microsoft.Extensions.Caching.Memory.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - - ..\packages\Microsoft.Extensions.DependencyInjection.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.dll - - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - - ..\packages\Microsoft.Extensions.Logging.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - - - ..\packages\Microsoft.Extensions.Options.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Options.dll - - - ..\packages\Microsoft.Extensions.Primitives.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - - - ..\packages\Remotion.Linq.2.1.1\lib\net45\Remotion.Linq.dll - - - - ..\packages\System.Collections.Immutable.1.4.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - ..\packages\System.ComponentModel.Annotations.4.4.0\lib\net461\System.ComponentModel.Annotations.dll - - - - - - - ..\packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - - - - ..\packages\System.Interactive.Async.3.1.1\lib\net46\System.Interactive.Async.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - - - - - - - - - - - - - - - - - - - frmEmailAccount.vb - - - Form - - - Form - - - frmMain.vb - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - True - True - MyDataset.xsd - - - - - frmEmailAccount.vb - - - frmMain.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - MyDataset.xsd - - - Designer - MSDataSetGenerator - MyDataset.Designer.vb - - - MyDataset.xsd - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/GUI_EDMI.vbproj.bak b/GUIs.Test.GUI_EDMI/GUI_EDMI.vbproj.bak deleted file mode 100644 index eaeb5584..00000000 --- a/GUIs.Test.GUI_EDMI/GUI_EDMI.vbproj.bak +++ /dev/null @@ -1,246 +0,0 @@ - - - - - Debug - AnyCPU - {88EDAD5B-1B98-43E4-B068-1251E7AF01A0} - WinExe - GUI_EDMI.My.MyApplication - GUI_EDMI - GUI_EDMI - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - GUI_EDMI.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - GUI_EDMI.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - TOOL_ohne_slogan.ico - - - - - - - - - - - - ..\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll - - - ..\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll - - - ..\Message\bin\Debug\DigitalData.Modules.Messaging.dll - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll - - - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - ..\packages\FirebirdSql.EntityFrameworkCore.Firebird.6.4.0\lib\netstandard2.0\FirebirdSql.EntityFrameworkCore.Firebird.dll - - - - ..\packages\Microsoft.EntityFrameworkCore.2.0.3\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll - - - ..\packages\Microsoft.EntityFrameworkCore.Relational.2.0.3\lib\netstandard2.0\Microsoft.EntityFrameworkCore.Relational.dll - - - ..\packages\Microsoft.Extensions.Caching.Abstractions.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Caching.Abstractions.dll - - - ..\packages\Microsoft.Extensions.Caching.Memory.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll - - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - - ..\packages\Microsoft.Extensions.DependencyInjection.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.dll - - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - - ..\packages\Microsoft.Extensions.Logging.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - - - ..\packages\Microsoft.Extensions.Options.2.0.2\lib\netstandard2.0\Microsoft.Extensions.Options.dll - - - ..\packages\Microsoft.Extensions.Primitives.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - - - ..\packages\Remotion.Linq.2.1.1\lib\net45\Remotion.Linq.dll - - - - ..\packages\System.Collections.Immutable.1.4.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - ..\packages\System.ComponentModel.Annotations.4.4.0\lib\net461\System.ComponentModel.Annotations.dll - - - - - - - ..\packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - - - - ..\packages\System.Interactive.Async.3.1.1\lib\net46\System.Interactive.Async.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - - - - - - - - - - - - - - - - - - - frmEmailAccount.vb - - - Form - - - Form - - - frmMain.vb - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - True - True - MyDataset.xsd - - - - - frmEmailAccount.vb - - - frmMain.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - MyDataset.xsd - - - Designer - MSDataSetGenerator - MyDataset.Designer.vb - - - MyDataset.xsd - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/My Project/Application.Designer.vb b/GUIs.Test.GUI_EDMI/My Project/Application.Designer.vb deleted file mode 100644 index 35678923..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/Application.Designer.vb +++ /dev/null @@ -1,38 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -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 - - _ - 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 - - _ - Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.GUI_EDMI.frmMain - End Sub - End Class -End Namespace diff --git a/GUIs.Test.GUI_EDMI/My Project/Application.myapp b/GUIs.Test.GUI_EDMI/My Project/Application.myapp deleted file mode 100644 index 739ea6fe..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - true - frmMain - false - 0 - true - 0 - true - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/My Project/AssemblyInfo.vb b/GUIs.Test.GUI_EDMI/My Project/AssemblyInfo.vb deleted file mode 100644 index 957c671c..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/GUIs.Test.GUI_EDMI/My Project/Resources.Designer.vb b/GUIs.Test.GUI_EDMI/My Project/Resources.Designer.vb deleted file mode 100644 index 7fc75ee3..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/Resources.Designer.vb +++ /dev/null @@ -1,93 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("GUI_EDMI.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property email_go() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("email_go", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property key_16xLG() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("key_16xLG", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - - ''' - ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. - ''' - Friend ReadOnly Property save_16xMD() As System.Drawing.Bitmap - Get - Dim obj As Object = ResourceManager.GetObject("save_16xMD", resourceCulture) - Return CType(obj,System.Drawing.Bitmap) - End Get - End Property - End Module -End Namespace diff --git a/GUIs.Test.GUI_EDMI/My Project/Resources.resx b/GUIs.Test.GUI_EDMI/My Project/Resources.resx deleted file mode 100644 index 514eb216..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/Resources.resx +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\key_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\save_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\email_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/My Project/Settings.Designer.vb b/GUIs.Test.GUI_EDMI/My Project/Settings.Designer.vb deleted file mode 100644 index 17f2f48e..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/Settings.Designer.vb +++ /dev/null @@ -1,121 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - - _ - Public ReadOnly Property FB_DATASOURCE() As String - Get - Return CType(Me("FB_DATASOURCE"),String) - End Get - End Property - - _ - Public ReadOnly Property FB_DATABASE() As String - Get - Return CType(Me("FB_DATABASE"),String) - End Get - End Property - - _ - Public ReadOnly Property FB_USER() As String - Get - Return CType(Me("FB_USER"),String) - End Get - End Property - - _ - Public ReadOnly Property FB_PW() As String - Get - Return CType(Me("FB_PW"),String) - End Get - End Property - - _ - Public Property EmailTestAdress() As String - Get - Return CType(Me("EmailTestAdress"),String) - End Get - Set - Me("EmailTestAdress") = value - End Set - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.GUI_EDMI.My.MySettings - Get - Return Global.GUI_EDMI.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/GUIs.Test.GUI_EDMI/My Project/Settings.settings b/GUIs.Test.GUI_EDMI/My Project/Settings.settings deleted file mode 100644 index 6707f7a0..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/Settings.settings +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 172.24.12.41 - - - 172.24.12.41:E:\DB\Firebird\Databases\EDMI_TEMPLATE\EDMI_MASTER.FDB - - - sysdba - - - dd - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/My Project/licenses.licx b/GUIs.Test.GUI_EDMI/My Project/licenses.licx deleted file mode 100644 index e69de29b..00000000 diff --git a/GUIs.Test.GUI_EDMI/My Project/licenses.licx.bak b/GUIs.Test.GUI_EDMI/My Project/licenses.licx.bak deleted file mode 100644 index 773d16c2..00000000 --- a/GUIs.Test.GUI_EDMI/My Project/licenses.licx.bak +++ /dev/null @@ -1 +0,0 @@ -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.Test.GUI_EDMI/MyDataset.Designer.vb b/GUIs.Test.GUI_EDMI/MyDataset.Designer.vb deleted file mode 100644 index b8c554d0..00000000 --- a/GUIs.Test.GUI_EDMI/MyDataset.Designer.vb +++ /dev/null @@ -1,242 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict Off -Option Explicit On - - - -''' -'''Represents a strongly typed in-memory cache of data. -''' - _ -Partial Public Class MyDataset - Inherits Global.System.Data.DataSet - - Private _schemaSerializationMode As Global.System.Data.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema - - _ - Public Sub New() - MyBase.New - Me.BeginInit - Me.InitClass - Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged - AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler - AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler - Me.EndInit - End Sub - - _ - Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext) - MyBase.New(info, context, false) - If (Me.IsBinarySerialized(info, context) = true) Then - Me.InitVars(false) - Dim schemaChangedHandler1 As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged - AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 - AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 - Return - End If - Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) - If (Me.DetermineSchemaSerializationMode(info, context) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then - Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet() - ds.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema))) - Me.DataSetName = ds.DataSetName - Me.Prefix = ds.Prefix - Me.Namespace = ds.Namespace - Me.Locale = ds.Locale - Me.CaseSensitive = ds.CaseSensitive - Me.EnforceConstraints = ds.EnforceConstraints - Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add) - Me.InitVars - Else - Me.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema))) - End If - Me.GetSerializationData(info, context) - Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged - AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler - AddHandler Me.Relations.CollectionChanged, schemaChangedHandler - End Sub - - _ - Public Overrides Property SchemaSerializationMode() As Global.System.Data.SchemaSerializationMode - Get - Return Me._schemaSerializationMode - End Get - Set - Me._schemaSerializationMode = value - End Set - End Property - - _ - Public Shadows ReadOnly Property Tables() As Global.System.Data.DataTableCollection - Get - Return MyBase.Tables - End Get - End Property - - _ - Public Shadows ReadOnly Property Relations() As Global.System.Data.DataRelationCollection - Get - Return MyBase.Relations - End Get - End Property - - _ - Protected Overrides Sub InitializeDerivedDataSet() - Me.BeginInit - Me.InitClass - Me.EndInit - End Sub - - _ - Public Overrides Function Clone() As Global.System.Data.DataSet - Dim cln As MyDataset = CType(MyBase.Clone,MyDataset) - cln.InitVars - cln.SchemaSerializationMode = Me.SchemaSerializationMode - Return cln - End Function - - _ - Protected Overrides Function ShouldSerializeTables() As Boolean - Return false - End Function - - _ - Protected Overrides Function ShouldSerializeRelations() As Boolean - Return false - End Function - - _ - Protected Overrides Sub ReadXmlSerializable(ByVal reader As Global.System.Xml.XmlReader) - If (Me.DetermineSchemaSerializationMode(reader) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then - Me.Reset - Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet() - ds.ReadXml(reader) - Me.DataSetName = ds.DataSetName - Me.Prefix = ds.Prefix - Me.Namespace = ds.Namespace - Me.Locale = ds.Locale - Me.CaseSensitive = ds.CaseSensitive - Me.EnforceConstraints = ds.EnforceConstraints - Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add) - Me.InitVars - Else - Me.ReadXml(reader) - Me.InitVars - End If - End Sub - - _ - Protected Overrides Function GetSchemaSerializable() As Global.System.Xml.Schema.XmlSchema - Dim stream As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream() - Me.WriteXmlSchema(New Global.System.Xml.XmlTextWriter(stream, Nothing)) - stream.Position = 0 - Return Global.System.Xml.Schema.XmlSchema.Read(New Global.System.Xml.XmlTextReader(stream), Nothing) - End Function - - _ - Friend Overloads Sub InitVars() - Me.InitVars(true) - End Sub - - _ - Friend Overloads Sub InitVars(ByVal initTable As Boolean) - End Sub - - _ - Private Sub InitClass() - Me.DataSetName = "MyDataset" - Me.Prefix = "" - Me.Namespace = "http://tempuri.org/MyDataset.xsd" - Me.EnforceConstraints = true - Me.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema - End Sub - - _ - Private Sub SchemaChanged(ByVal sender As Object, ByVal e As Global.System.ComponentModel.CollectionChangeEventArgs) - If (e.Action = Global.System.ComponentModel.CollectionChangeAction.Remove) Then - Me.InitVars - End If - End Sub - - _ - Public Shared Function GetTypedDataSetSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType - Dim ds As MyDataset = New MyDataset() - Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType() - Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence() - Dim any As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny() - any.Namespace = ds.Namespace - sequence.Items.Add(any) - type.Particle = sequence - Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable - If xs.Contains(dsSchema.TargetNamespace) Then - Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream() - Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream() - Try - Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing - dsSchema.Write(s1) - Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator - Do While schemas.MoveNext - schema = CType(schemas.Current,Global.System.Xml.Schema.XmlSchema) - s2.SetLength(0) - schema.Write(s2) - If (s1.Length = s2.Length) Then - s1.Position = 0 - s2.Position = 0 - - Do While ((s1.Position <> s1.Length) _ - AndAlso (s1.ReadByte = s2.ReadByte)) - - - Loop - If (s1.Position = s1.Length) Then - Return type - End If - End If - - Loop - Finally - If (Not (s1) Is Nothing) Then - s1.Close - End If - If (Not (s2) Is Nothing) Then - s2.Close - End If - End Try - End If - xs.Add(dsSchema) - Return type - End Function -End Class diff --git a/GUIs.Test.GUI_EDMI/MyDataset.xsc b/GUIs.Test.GUI_EDMI/MyDataset.xsc deleted file mode 100644 index 05b01991..00000000 --- a/GUIs.Test.GUI_EDMI/MyDataset.xsc +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/MyDataset.xsd b/GUIs.Test.GUI_EDMI/MyDataset.xsd deleted file mode 100644 index a27cf704..00000000 --- a/GUIs.Test.GUI_EDMI/MyDataset.xsd +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/MyDataset.xss b/GUIs.Test.GUI_EDMI/MyDataset.xss deleted file mode 100644 index 8ed002c5..00000000 --- a/GUIs.Test.GUI_EDMI/MyDataset.xss +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/Resources/email_go.png b/GUIs.Test.GUI_EDMI/Resources/email_go.png deleted file mode 100644 index 4a6c5d39..00000000 Binary files a/GUIs.Test.GUI_EDMI/Resources/email_go.png and /dev/null differ diff --git a/GUIs.Test.GUI_EDMI/Resources/key_16xLG.png b/GUIs.Test.GUI_EDMI/Resources/key_16xLG.png deleted file mode 100644 index 03dd1a00..00000000 Binary files a/GUIs.Test.GUI_EDMI/Resources/key_16xLG.png and /dev/null differ diff --git a/GUIs.Test.GUI_EDMI/Resources/save_16xMD.png b/GUIs.Test.GUI_EDMI/Resources/save_16xMD.png deleted file mode 100644 index c9ceec3b..00000000 Binary files a/GUIs.Test.GUI_EDMI/Resources/save_16xMD.png and /dev/null differ diff --git a/GUIs.Test.GUI_EDMI/TOOL_ohne_slogan.ico b/GUIs.Test.GUI_EDMI/TOOL_ohne_slogan.ico deleted file mode 100644 index a48812dd..00000000 Binary files a/GUIs.Test.GUI_EDMI/TOOL_ohne_slogan.ico and /dev/null differ diff --git a/GUIs.Test.GUI_EDMI/clsEncryption.vb b/GUIs.Test.GUI_EDMI/clsEncryption.vb deleted file mode 100644 index d6adca68..00000000 --- a/GUIs.Test.GUI_EDMI/clsEncryption.vb +++ /dev/null @@ -1,72 +0,0 @@ -Imports System.Security.Cryptography -Public Class clsEncryption - Private TripleDes As New TripleDESCryptoServiceProvider - Sub New(ByVal key As String) - ' Initialize the crypto provider. - TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8) - TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8) - End Sub - - Private Function TruncateHash( - ByVal key As String, - ByVal length As Integer) As Byte() - - Dim sha1 As New SHA1CryptoServiceProvider - - ' Hash the key. - Dim keyBytes() As Byte = - System.Text.Encoding.Unicode.GetBytes(key) - Dim hash() As Byte = sha1.ComputeHash(keyBytes) - - ' Truncate or pad the hash. - ReDim Preserve hash(length - 1) - Return hash - End Function - Public Function EncryptData( - ByVal plaintext As String) As String - - ' Convert the plaintext string to a byte array. - Dim plaintextBytes() As Byte = - System.Text.Encoding.Unicode.GetBytes("!Didalog35452Heuchelheim=" & plaintext) - - ' Create the stream. - Dim ms As New System.IO.MemoryStream - ' Create the encoder to write to the stream. - Dim encStream As New CryptoStream(ms, - TripleDes.CreateEncryptor(), - System.Security.Cryptography.CryptoStreamMode.Write) - - ' Use the crypto stream to write the byte array to the stream. - encStream.Write(plaintextBytes, 0, plaintextBytes.Length) - encStream.FlushFinalBlock() - - ' Convert the encrypted stream to a printable string. - Return Convert.ToBase64String(ms.ToArray) - End Function - 'Entschlüsselt die Zeichenfolge - Public Function DecryptData( - ByVal encryptedtext As String) As String - Try - ' Convert the encrypted text string to a byte array. - Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext) - - ' Create the stream. - Dim ms As New System.IO.MemoryStream - ' Create the decoder to write to the stream. - Dim decStream As New CryptoStream(ms, - TripleDes.CreateDecryptor(), - System.Security.Cryptography.CryptoStreamMode.Write) - - ' Use the crypto stream to write the byte array to the stream. - decStream.Write(encryptedBytes, 0, encryptedBytes.Length) - decStream.FlushFinalBlock() - Dim result = System.Text.Encoding.Unicode.GetString(ms.ToArray) - result = result.Replace("!Didalog35452Heuchelheim=", "") - ' Convert the plaintext stream to a string. - Return result - Catch ex As Exception - Return Nothing - End Try - - End Function -End Class diff --git a/GUIs.Test.GUI_EDMI/frmEmailAccount.Designer.vb b/GUIs.Test.GUI_EDMI/frmEmailAccount.Designer.vb deleted file mode 100644 index 55cbf7d3..00000000 --- a/GUIs.Test.GUI_EDMI/frmEmailAccount.Designer.vb +++ /dev/null @@ -1,712 +0,0 @@ - _ -Partial Class frmEmailAccount - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim GUIDLabel3 As System.Windows.Forms.Label - Dim AUTH_TYPELabel As System.Windows.Forms.Label - Dim Label5 As System.Windows.Forms.Label - Dim NAMELabel As System.Windows.Forms.Label - Dim EMAIL_FROMLabel As System.Windows.Forms.Label - Dim EMAIL_SMTPLabel As System.Windows.Forms.Label - Dim EMAIL_USERLabel As System.Windows.Forms.Label - Dim EMAIL_PWLabel As System.Windows.Forms.Label - Dim PORTLabel As System.Windows.Forms.Label - Dim ADDED_WHOLabel As System.Windows.Forms.Label - Dim ADDED_WHENLabel As System.Windows.Forms.Label - Dim CHANGED_WHOLabel As System.Windows.Forms.Label - Dim CHANGED_WHENLabel As System.Windows.Forms.Label - Dim Label2 As System.Windows.Forms.Label - Dim Label3 As System.Windows.Forms.Label - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEmailAccount)) - Dim Label4 As System.Windows.Forms.Label - Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() - Me.TabControl1 = New System.Windows.Forms.TabControl() - Me.TabPage1 = New System.Windows.Forms.TabPage() - Me.cmbPOP_IMAP = New System.Windows.Forms.ComboBox() - Me.txtSERVER_OUT = New System.Windows.Forms.TextBox() - Me.txtTestmail = New System.Windows.Forms.TextBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.btnsendtestmail = New System.Windows.Forms.Button() - Me.txtPORT_IN = New System.Windows.Forms.TextBox() - Me.ACTIVECheckBox = New System.Windows.Forms.CheckBox() - Me.ADDED_WHOTextBox = New System.Windows.Forms.TextBox() - Me.ADDED_WHENTextBox = New System.Windows.Forms.TextBox() - Me.CHANGED_WHOTextBox = New System.Windows.Forms.TextBox() - Me.CHANGED_WHENTextBox = New System.Windows.Forms.TextBox() - Me.cmbAUTH_TYPE = New System.Windows.Forms.ComboBox() - Me.txtnewpasswort = New System.Windows.Forms.TextBox() - Me.Button4 = New System.Windows.Forms.Button() - Me.txtPROFILE_NAME = New System.Windows.Forms.TextBox() - Me.txtEMAIL_FROM = New System.Windows.Forms.TextBox() - Me.txtSERVER_IN = New System.Windows.Forms.TextBox() - Me.txtEMAIL_USER = New System.Windows.Forms.TextBox() - Me.txtEMAIL_PW = New System.Windows.Forms.TextBox() - Me.txtGUID = New System.Windows.Forms.TextBox() - Me.GridControl1 = New DevExpress.XtraGrid.GridControl() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.BindingNavigator1 = New System.Windows.Forms.BindingNavigator(Me.components) - Me.BindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton() - Me.BindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel() - Me.BindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton() - Me.BindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton() - Me.BindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton() - Me.BindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator() - Me.BindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox() - Me.BindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator() - Me.BindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton() - Me.BindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton() - Me.BindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator() - Me.tsbtnSaveEmailAccount = New System.Windows.Forms.ToolStripButton() - Me.TabPage2 = New System.Windows.Forms.TabPage() - Me.BindingSourceForm = New System.Windows.Forms.BindingSource(Me.components) - Me.BindingSourceGrid = New System.Windows.Forms.BindingSource(Me.components) - Me.txtPORT_OUT = New System.Windows.Forms.TextBox() - GUIDLabel3 = New System.Windows.Forms.Label() - AUTH_TYPELabel = New System.Windows.Forms.Label() - Label5 = New System.Windows.Forms.Label() - NAMELabel = New System.Windows.Forms.Label() - EMAIL_FROMLabel = New System.Windows.Forms.Label() - EMAIL_SMTPLabel = New System.Windows.Forms.Label() - EMAIL_USERLabel = New System.Windows.Forms.Label() - EMAIL_PWLabel = New System.Windows.Forms.Label() - PORTLabel = New System.Windows.Forms.Label() - ADDED_WHOLabel = New System.Windows.Forms.Label() - ADDED_WHENLabel = New System.Windows.Forms.Label() - CHANGED_WHOLabel = New System.Windows.Forms.Label() - CHANGED_WHENLabel = New System.Windows.Forms.Label() - Label2 = New System.Windows.Forms.Label() - Label3 = New System.Windows.Forms.Label() - Label4 = New System.Windows.Forms.Label() - Me.TabControl1.SuspendLayout() - Me.TabPage1.SuspendLayout() - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.BindingNavigator1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.BindingNavigator1.SuspendLayout() - CType(Me.BindingSourceForm, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.BindingSourceGrid, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'GUIDLabel3 - ' - GUIDLabel3.AutoSize = True - GUIDLabel3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - GUIDLabel3.Location = New System.Drawing.Point(228, 38) - GUIDLabel3.Name = "GUIDLabel3" - GUIDLabel3.Size = New System.Drawing.Size(20, 13) - GUIDLabel3.TabIndex = 5 - GUIDLabel3.Text = "ID:" - ' - 'AUTH_TYPELabel - ' - AUTH_TYPELabel.AutoSize = True - AUTH_TYPELabel.Location = New System.Drawing.Point(288, 124) - AUTH_TYPELabel.Name = "AUTH_TYPELabel" - AUTH_TYPELabel.Size = New System.Drawing.Size(112, 13) - AUTH_TYPELabel.TabIndex = 48 - AUTH_TYPELabel.Text = "Authentification type:" - ' - 'Label5 - ' - Label5.AutoSize = True - Label5.Location = New System.Drawing.Point(879, 168) - Label5.Name = "Label5" - Label5.Size = New System.Drawing.Size(88, 13) - Label5.TabIndex = 47 - Label5.Text = "Neues Passwort:" - ' - 'NAMELabel - ' - NAMELabel.AutoSize = True - NAMELabel.Location = New System.Drawing.Point(288, 38) - NAMELabel.Name = "NAMELabel" - NAMELabel.Size = New System.Drawing.Size(100, 13) - NAMELabel.TabIndex = 35 - NAMELabel.Text = "Profilname (intern):" - ' - 'EMAIL_FROMLabel - ' - EMAIL_FROMLabel.AutoSize = True - EMAIL_FROMLabel.Location = New System.Drawing.Point(288, 79) - EMAIL_FROMLabel.Name = "EMAIL_FROMLabel" - EMAIL_FROMLabel.Size = New System.Drawing.Size(60, 13) - EMAIL_FROMLabel.TabIndex = 37 - EMAIL_FROMLabel.Text = "Email from:" - ' - 'EMAIL_SMTPLabel - ' - EMAIL_SMTPLabel.AutoSize = True - EMAIL_SMTPLabel.Location = New System.Drawing.Point(573, 79) - EMAIL_SMTPLabel.Name = "EMAIL_SMTPLabel" - EMAIL_SMTPLabel.Size = New System.Drawing.Size(90, 13) - EMAIL_SMTPLabel.TabIndex = 39 - EMAIL_SMTPLabel.Text = "Eingangs-Server:" - ' - 'EMAIL_USERLabel - ' - EMAIL_USERLabel.AutoSize = True - EMAIL_USERLabel.Location = New System.Drawing.Point(288, 168) - EMAIL_USERLabel.Name = "EMAIL_USERLabel" - EMAIL_USERLabel.Size = New System.Drawing.Size(61, 13) - EMAIL_USERLabel.TabIndex = 41 - EMAIL_USERLabel.Text = "Email-User:" - ' - 'EMAIL_PWLabel - ' - EMAIL_PWLabel.AutoSize = True - EMAIL_PWLabel.Location = New System.Drawing.Point(573, 168) - EMAIL_PWLabel.Name = "EMAIL_PWLabel" - EMAIL_PWLabel.Size = New System.Drawing.Size(82, 13) - EMAIL_PWLabel.TabIndex = 43 - EMAIL_PWLabel.Text = "Email Passwort:" - ' - 'PORTLabel - ' - PORTLabel.AutoSize = True - PORTLabel.Location = New System.Drawing.Point(879, 79) - PORTLabel.Name = "PORTLabel" - PORTLabel.Size = New System.Drawing.Size(31, 13) - PORTLabel.TabIndex = 50 - PORTLabel.Text = "Port:" - ' - 'ADDED_WHOLabel - ' - ADDED_WHOLabel.AutoSize = True - ADDED_WHOLabel.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - ADDED_WHOLabel.Location = New System.Drawing.Point(288, 225) - ADDED_WHOLabel.Name = "ADDED_WHOLabel" - ADDED_WHOLabel.Size = New System.Drawing.Size(62, 13) - ADDED_WHOLabel.TabIndex = 53 - ADDED_WHOLabel.Text = "Added who:" - ' - 'ADDED_WHENLabel - ' - ADDED_WHENLabel.AutoSize = True - ADDED_WHENLabel.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - ADDED_WHENLabel.Location = New System.Drawing.Point(447, 225) - ADDED_WHENLabel.Name = "ADDED_WHENLabel" - ADDED_WHENLabel.Size = New System.Drawing.Size(67, 13) - ADDED_WHENLabel.TabIndex = 55 - ADDED_WHENLabel.Text = "Added when:" - ' - 'CHANGED_WHOLabel - ' - CHANGED_WHOLabel.AutoSize = True - CHANGED_WHOLabel.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - CHANGED_WHOLabel.Location = New System.Drawing.Point(288, 266) - CHANGED_WHOLabel.Name = "CHANGED_WHOLabel" - CHANGED_WHOLabel.Size = New System.Drawing.Size(74, 13) - CHANGED_WHOLabel.TabIndex = 57 - CHANGED_WHOLabel.Text = "Changed who:" - ' - 'CHANGED_WHENLabel - ' - CHANGED_WHENLabel.AutoSize = True - CHANGED_WHENLabel.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - CHANGED_WHENLabel.Location = New System.Drawing.Point(447, 266) - CHANGED_WHENLabel.Name = "CHANGED_WHENLabel" - CHANGED_WHENLabel.Size = New System.Drawing.Size(79, 13) - CHANGED_WHENLabel.TabIndex = 59 - CHANGED_WHENLabel.Text = "Changed when:" - ' - 'Label2 - ' - Label2.AutoSize = True - Label2.Location = New System.Drawing.Point(573, 124) - Label2.Name = "Label2" - Label2.Size = New System.Drawing.Size(73, 13) - Label2.TabIndex = 64 - Label2.Text = "SMTP-Server:" - ' - 'Label3 - ' - Label3.AutoSize = True - Label3.Location = New System.Drawing.Point(443, 124) - Label3.Name = "Label3" - Label3.Size = New System.Drawing.Size(77, 13) - Label3.TabIndex = 66 - Label3.Text = "IMAP or POP?:" - ' - 'StatusStrip1 - ' - Me.StatusStrip1.Location = New System.Drawing.Point(0, 595) - Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(1260, 22) - Me.StatusStrip1.TabIndex = 0 - Me.StatusStrip1.Text = "StatusStrip1" - ' - 'TabControl1 - ' - Me.TabControl1.Controls.Add(Me.TabPage1) - Me.TabControl1.Controls.Add(Me.TabPage2) - Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.TabControl1.Location = New System.Drawing.Point(0, 0) - Me.TabControl1.Name = "TabControl1" - Me.TabControl1.SelectedIndex = 0 - Me.TabControl1.Size = New System.Drawing.Size(1260, 595) - Me.TabControl1.TabIndex = 1 - ' - 'TabPage1 - ' - Me.TabPage1.Controls.Add(Label4) - Me.TabPage1.Controls.Add(Me.txtPORT_OUT) - Me.TabPage1.Controls.Add(Label3) - Me.TabPage1.Controls.Add(Me.cmbPOP_IMAP) - Me.TabPage1.Controls.Add(Label2) - Me.TabPage1.Controls.Add(Me.txtSERVER_OUT) - Me.TabPage1.Controls.Add(Me.txtTestmail) - Me.TabPage1.Controls.Add(Me.Label1) - Me.TabPage1.Controls.Add(Me.btnsendtestmail) - Me.TabPage1.Controls.Add(PORTLabel) - Me.TabPage1.Controls.Add(Me.txtPORT_IN) - Me.TabPage1.Controls.Add(Me.ACTIVECheckBox) - Me.TabPage1.Controls.Add(ADDED_WHOLabel) - Me.TabPage1.Controls.Add(Me.ADDED_WHOTextBox) - Me.TabPage1.Controls.Add(ADDED_WHENLabel) - Me.TabPage1.Controls.Add(Me.ADDED_WHENTextBox) - Me.TabPage1.Controls.Add(CHANGED_WHOLabel) - Me.TabPage1.Controls.Add(Me.CHANGED_WHOTextBox) - Me.TabPage1.Controls.Add(CHANGED_WHENLabel) - Me.TabPage1.Controls.Add(Me.CHANGED_WHENTextBox) - Me.TabPage1.Controls.Add(AUTH_TYPELabel) - Me.TabPage1.Controls.Add(Me.cmbAUTH_TYPE) - Me.TabPage1.Controls.Add(Label5) - Me.TabPage1.Controls.Add(Me.txtnewpasswort) - Me.TabPage1.Controls.Add(Me.Button4) - Me.TabPage1.Controls.Add(NAMELabel) - Me.TabPage1.Controls.Add(Me.txtPROFILE_NAME) - Me.TabPage1.Controls.Add(EMAIL_FROMLabel) - Me.TabPage1.Controls.Add(Me.txtEMAIL_FROM) - Me.TabPage1.Controls.Add(EMAIL_SMTPLabel) - Me.TabPage1.Controls.Add(Me.txtSERVER_IN) - Me.TabPage1.Controls.Add(EMAIL_USERLabel) - Me.TabPage1.Controls.Add(Me.txtEMAIL_USER) - Me.TabPage1.Controls.Add(EMAIL_PWLabel) - Me.TabPage1.Controls.Add(Me.txtEMAIL_PW) - Me.TabPage1.Controls.Add(GUIDLabel3) - Me.TabPage1.Controls.Add(Me.txtGUID) - Me.TabPage1.Controls.Add(Me.GridControl1) - Me.TabPage1.Controls.Add(Me.BindingNavigator1) - Me.TabPage1.Location = New System.Drawing.Point(4, 22) - Me.TabPage1.Name = "TabPage1" - Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage1.Size = New System.Drawing.Size(1252, 569) - Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "Email-Accounts" - Me.TabPage1.UseVisualStyleBackColor = True - ' - 'cmbPOP_IMAP - ' - Me.cmbPOP_IMAP.FormattingEnabled = True - Me.cmbPOP_IMAP.Items.AddRange(New Object() {"SSL", "TLS", "None"}) - Me.cmbPOP_IMAP.Location = New System.Drawing.Point(446, 140) - Me.cmbPOP_IMAP.Name = "cmbPOP_IMAP" - Me.cmbPOP_IMAP.Size = New System.Drawing.Size(121, 21) - Me.cmbPOP_IMAP.TabIndex = 67 - ' - 'txtSERVER_OUT - ' - Me.txtSERVER_OUT.Location = New System.Drawing.Point(576, 140) - Me.txtSERVER_OUT.Name = "txtSERVER_OUT" - Me.txtSERVER_OUT.Size = New System.Drawing.Size(303, 21) - Me.txtSERVER_OUT.TabIndex = 65 - ' - 'txtTestmail - ' - Me.txtTestmail.DataBindings.Add(New System.Windows.Forms.Binding("Text", Global.GUI_EDMI.My.MySettings.Default, "EmailTestAdress", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)) - Me.txtTestmail.Location = New System.Drawing.Point(291, 323) - Me.txtTestmail.Name = "txtTestmail" - Me.txtTestmail.Size = New System.Drawing.Size(312, 21) - Me.txtTestmail.TabIndex = 63 - Me.txtTestmail.Text = Global.GUI_EDMI.My.MySettings.Default.EmailTestAdress - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(288, 307) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(84, 13) - Me.Label1.TabIndex = 62 - Me.Label1.Text = "Testempfänger:" - ' - 'btnsendtestmail - ' - Me.btnsendtestmail.Image = Global.GUI_EDMI.My.Resources.Resources.email_go - Me.btnsendtestmail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnsendtestmail.Location = New System.Drawing.Point(291, 350) - Me.btnsendtestmail.Name = "btnsendtestmail" - Me.btnsendtestmail.Size = New System.Drawing.Size(311, 24) - Me.btnsendtestmail.TabIndex = 61 - Me.btnsendtestmail.Text = "Send testmail" - Me.btnsendtestmail.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnsendtestmail.UseVisualStyleBackColor = True - ' - 'txtPORT_IN - ' - Me.txtPORT_IN.Location = New System.Drawing.Point(882, 95) - Me.txtPORT_IN.Name = "txtPORT_IN" - Me.txtPORT_IN.Size = New System.Drawing.Size(104, 21) - Me.txtPORT_IN.TabIndex = 51 - ' - 'ACTIVECheckBox - ' - Me.ACTIVECheckBox.Location = New System.Drawing.Point(576, 51) - Me.ACTIVECheckBox.Name = "ACTIVECheckBox" - Me.ACTIVECheckBox.Size = New System.Drawing.Size(64, 24) - Me.ACTIVECheckBox.TabIndex = 52 - Me.ACTIVECheckBox.Text = "active" - Me.ACTIVECheckBox.UseVisualStyleBackColor = True - ' - 'ADDED_WHOTextBox - ' - Me.ADDED_WHOTextBox.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.ADDED_WHOTextBox.Location = New System.Drawing.Point(291, 241) - Me.ADDED_WHOTextBox.Name = "ADDED_WHOTextBox" - Me.ADDED_WHOTextBox.ReadOnly = True - Me.ADDED_WHOTextBox.Size = New System.Drawing.Size(153, 22) - Me.ADDED_WHOTextBox.TabIndex = 54 - ' - 'ADDED_WHENTextBox - ' - Me.ADDED_WHENTextBox.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.ADDED_WHENTextBox.Location = New System.Drawing.Point(450, 241) - Me.ADDED_WHENTextBox.Name = "ADDED_WHENTextBox" - Me.ADDED_WHENTextBox.ReadOnly = True - Me.ADDED_WHENTextBox.Size = New System.Drawing.Size(153, 22) - Me.ADDED_WHENTextBox.TabIndex = 56 - ' - 'CHANGED_WHOTextBox - ' - Me.CHANGED_WHOTextBox.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.CHANGED_WHOTextBox.Location = New System.Drawing.Point(291, 282) - Me.CHANGED_WHOTextBox.Name = "CHANGED_WHOTextBox" - Me.CHANGED_WHOTextBox.ReadOnly = True - Me.CHANGED_WHOTextBox.Size = New System.Drawing.Size(153, 22) - Me.CHANGED_WHOTextBox.TabIndex = 58 - ' - 'CHANGED_WHENTextBox - ' - Me.CHANGED_WHENTextBox.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.CHANGED_WHENTextBox.Location = New System.Drawing.Point(450, 282) - Me.CHANGED_WHENTextBox.Name = "CHANGED_WHENTextBox" - Me.CHANGED_WHENTextBox.ReadOnly = True - Me.CHANGED_WHENTextBox.Size = New System.Drawing.Size(153, 22) - Me.CHANGED_WHENTextBox.TabIndex = 60 - ' - 'cmbAUTH_TYPE - ' - Me.cmbAUTH_TYPE.FormattingEnabled = True - Me.cmbAUTH_TYPE.Items.AddRange(New Object() {"SSL", "TLS", "None"}) - Me.cmbAUTH_TYPE.Location = New System.Drawing.Point(291, 140) - Me.cmbAUTH_TYPE.Name = "cmbAUTH_TYPE" - Me.cmbAUTH_TYPE.Size = New System.Drawing.Size(121, 21) - Me.cmbAUTH_TYPE.TabIndex = 49 - ' - 'txtnewpasswort - ' - Me.txtnewpasswort.Location = New System.Drawing.Point(882, 184) - Me.txtnewpasswort.Name = "txtnewpasswort" - Me.txtnewpasswort.Size = New System.Drawing.Size(178, 21) - Me.txtnewpasswort.TabIndex = 46 - Me.txtnewpasswort.UseSystemPasswordChar = True - ' - 'Button4 - ' - Me.Button4.Image = Global.GUI_EDMI.My.Resources.Resources.key_16xLG - Me.Button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button4.Location = New System.Drawing.Point(882, 211) - Me.Button4.Name = "Button4" - Me.Button4.Size = New System.Drawing.Size(178, 23) - Me.Button4.TabIndex = 45 - Me.Button4.Text = "Encrypt passwort" - Me.Button4.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.Button4.UseVisualStyleBackColor = True - ' - 'txtPROFILE_NAME - ' - Me.txtPROFILE_NAME.Location = New System.Drawing.Point(291, 54) - Me.txtPROFILE_NAME.Name = "txtPROFILE_NAME" - Me.txtPROFILE_NAME.Size = New System.Drawing.Size(276, 21) - Me.txtPROFILE_NAME.TabIndex = 36 - ' - 'txtEMAIL_FROM - ' - Me.txtEMAIL_FROM.Location = New System.Drawing.Point(291, 95) - Me.txtEMAIL_FROM.Name = "txtEMAIL_FROM" - Me.txtEMAIL_FROM.Size = New System.Drawing.Size(276, 21) - Me.txtEMAIL_FROM.TabIndex = 38 - ' - 'txtSERVER_IN - ' - Me.txtSERVER_IN.Location = New System.Drawing.Point(576, 95) - Me.txtSERVER_IN.Name = "txtSERVER_IN" - Me.txtSERVER_IN.Size = New System.Drawing.Size(303, 21) - Me.txtSERVER_IN.TabIndex = 40 - ' - 'txtEMAIL_USER - ' - Me.txtEMAIL_USER.Location = New System.Drawing.Point(291, 184) - Me.txtEMAIL_USER.Name = "txtEMAIL_USER" - Me.txtEMAIL_USER.Size = New System.Drawing.Size(276, 21) - Me.txtEMAIL_USER.TabIndex = 42 - ' - 'txtEMAIL_PW - ' - Me.txtEMAIL_PW.Location = New System.Drawing.Point(576, 184) - Me.txtEMAIL_PW.Name = "txtEMAIL_PW" - Me.txtEMAIL_PW.ReadOnly = True - Me.txtEMAIL_PW.Size = New System.Drawing.Size(303, 21) - Me.txtEMAIL_PW.TabIndex = 44 - Me.txtEMAIL_PW.UseSystemPasswordChar = True - ' - 'txtGUID - ' - Me.txtGUID.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtGUID.Location = New System.Drawing.Point(231, 54) - Me.txtGUID.Name = "txtGUID" - Me.txtGUID.ReadOnly = True - Me.txtGUID.Size = New System.Drawing.Size(51, 22) - Me.txtGUID.TabIndex = 6 - ' - 'GridControl1 - ' - Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Left - Me.GridControl1.Location = New System.Drawing.Point(3, 28) - Me.GridControl1.MainView = Me.GridView1 - Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(219, 538) - Me.GridControl1.TabIndex = 1 - Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) - ' - 'GridView1 - ' - Me.GridView1.GridControl = Me.GridControl1 - Me.GridView1.Name = "GridView1" - ' - 'BindingNavigator1 - ' - Me.BindingNavigator1.AddNewItem = Me.BindingNavigatorAddNewItem - Me.BindingNavigator1.CountItem = Me.BindingNavigatorCountItem - Me.BindingNavigator1.DeleteItem = Me.BindingNavigatorDeleteItem - Me.BindingNavigator1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BindingNavigatorMoveFirstItem, Me.BindingNavigatorMovePreviousItem, Me.BindingNavigatorSeparator, Me.BindingNavigatorPositionItem, Me.BindingNavigatorCountItem, Me.BindingNavigatorSeparator1, Me.BindingNavigatorMoveNextItem, Me.BindingNavigatorMoveLastItem, Me.BindingNavigatorSeparator2, Me.BindingNavigatorAddNewItem, Me.BindingNavigatorDeleteItem, Me.tsbtnSaveEmailAccount}) - Me.BindingNavigator1.Location = New System.Drawing.Point(3, 3) - Me.BindingNavigator1.MoveFirstItem = Me.BindingNavigatorMoveFirstItem - Me.BindingNavigator1.MoveLastItem = Me.BindingNavigatorMoveLastItem - Me.BindingNavigator1.MoveNextItem = Me.BindingNavigatorMoveNextItem - Me.BindingNavigator1.MovePreviousItem = Me.BindingNavigatorMovePreviousItem - Me.BindingNavigator1.Name = "BindingNavigator1" - Me.BindingNavigator1.PositionItem = Me.BindingNavigatorPositionItem - Me.BindingNavigator1.Size = New System.Drawing.Size(1246, 25) - Me.BindingNavigator1.TabIndex = 0 - Me.BindingNavigator1.Text = "BindingNavigator1" - ' - 'BindingNavigatorAddNewItem - ' - Me.BindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.BindingNavigatorAddNewItem.Image = CType(resources.GetObject("BindingNavigatorAddNewItem.Image"), System.Drawing.Image) - Me.BindingNavigatorAddNewItem.Name = "BindingNavigatorAddNewItem" - Me.BindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = True - Me.BindingNavigatorAddNewItem.Size = New System.Drawing.Size(23, 22) - Me.BindingNavigatorAddNewItem.Text = "Neu hinzufügen" - ' - 'BindingNavigatorCountItem - ' - Me.BindingNavigatorCountItem.Name = "BindingNavigatorCountItem" - Me.BindingNavigatorCountItem.Size = New System.Drawing.Size(44, 22) - Me.BindingNavigatorCountItem.Text = "von {0}" - Me.BindingNavigatorCountItem.ToolTipText = "Die Gesamtanzahl der Elemente." - ' - 'BindingNavigatorDeleteItem - ' - Me.BindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.BindingNavigatorDeleteItem.Image = CType(resources.GetObject("BindingNavigatorDeleteItem.Image"), System.Drawing.Image) - Me.BindingNavigatorDeleteItem.Name = "BindingNavigatorDeleteItem" - Me.BindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = True - Me.BindingNavigatorDeleteItem.Size = New System.Drawing.Size(23, 22) - Me.BindingNavigatorDeleteItem.Text = "Löschen" - ' - 'BindingNavigatorMoveFirstItem - ' - Me.BindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.BindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("BindingNavigatorMoveFirstItem.Image"), System.Drawing.Image) - Me.BindingNavigatorMoveFirstItem.Name = "BindingNavigatorMoveFirstItem" - Me.BindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = True - Me.BindingNavigatorMoveFirstItem.Size = New System.Drawing.Size(23, 22) - Me.BindingNavigatorMoveFirstItem.Text = "Erste verschieben" - ' - 'BindingNavigatorMovePreviousItem - ' - Me.BindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.BindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("BindingNavigatorMovePreviousItem.Image"), System.Drawing.Image) - Me.BindingNavigatorMovePreviousItem.Name = "BindingNavigatorMovePreviousItem" - Me.BindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = True - Me.BindingNavigatorMovePreviousItem.Size = New System.Drawing.Size(23, 22) - Me.BindingNavigatorMovePreviousItem.Text = "Vorherige verschieben" - ' - 'BindingNavigatorSeparator - ' - Me.BindingNavigatorSeparator.Name = "BindingNavigatorSeparator" - Me.BindingNavigatorSeparator.Size = New System.Drawing.Size(6, 25) - ' - 'BindingNavigatorPositionItem - ' - Me.BindingNavigatorPositionItem.AccessibleName = "Position" - Me.BindingNavigatorPositionItem.AutoSize = False - Me.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem" - Me.BindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 23) - Me.BindingNavigatorPositionItem.Text = "0" - Me.BindingNavigatorPositionItem.ToolTipText = "Aktuelle Position" - ' - 'BindingNavigatorSeparator1 - ' - Me.BindingNavigatorSeparator1.Name = "BindingNavigatorSeparator1" - Me.BindingNavigatorSeparator1.Size = New System.Drawing.Size(6, 25) - ' - 'BindingNavigatorMoveNextItem - ' - Me.BindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.BindingNavigatorMoveNextItem.Image = CType(resources.GetObject("BindingNavigatorMoveNextItem.Image"), System.Drawing.Image) - Me.BindingNavigatorMoveNextItem.Name = "BindingNavigatorMoveNextItem" - Me.BindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = True - Me.BindingNavigatorMoveNextItem.Size = New System.Drawing.Size(23, 22) - Me.BindingNavigatorMoveNextItem.Text = "Nächste verschieben" - ' - 'BindingNavigatorMoveLastItem - ' - Me.BindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.BindingNavigatorMoveLastItem.Image = CType(resources.GetObject("BindingNavigatorMoveLastItem.Image"), System.Drawing.Image) - Me.BindingNavigatorMoveLastItem.Name = "BindingNavigatorMoveLastItem" - Me.BindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = True - Me.BindingNavigatorMoveLastItem.Size = New System.Drawing.Size(23, 22) - Me.BindingNavigatorMoveLastItem.Text = "Letzte verschieben" - ' - 'BindingNavigatorSeparator2 - ' - Me.BindingNavigatorSeparator2.Name = "BindingNavigatorSeparator2" - Me.BindingNavigatorSeparator2.Size = New System.Drawing.Size(6, 25) - ' - 'tsbtnSaveEmailAccount - ' - Me.tsbtnSaveEmailAccount.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.tsbtnSaveEmailAccount.Image = Global.GUI_EDMI.My.Resources.Resources.save_16xMD - Me.tsbtnSaveEmailAccount.ImageTransparentColor = System.Drawing.Color.Magenta - Me.tsbtnSaveEmailAccount.Name = "tsbtnSaveEmailAccount" - Me.tsbtnSaveEmailAccount.Size = New System.Drawing.Size(23, 22) - Me.tsbtnSaveEmailAccount.Text = "Save" - ' - 'TabPage2 - ' - Me.TabPage2.Location = New System.Drawing.Point(4, 22) - Me.TabPage2.Name = "TabPage2" - Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage2.Size = New System.Drawing.Size(1182, 402) - Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "TabPage2" - Me.TabPage2.UseVisualStyleBackColor = True - ' - 'Label4 - ' - Label4.AutoSize = True - Label4.Location = New System.Drawing.Point(879, 124) - Label4.Name = "Label4" - Label4.Size = New System.Drawing.Size(31, 13) - Label4.TabIndex = 68 - Label4.Text = "Port:" - ' - 'txtPORT_OUT - ' - Me.txtPORT_OUT.Location = New System.Drawing.Point(882, 140) - Me.txtPORT_OUT.Name = "txtPORT_OUT" - Me.txtPORT_OUT.Size = New System.Drawing.Size(104, 21) - Me.txtPORT_OUT.TabIndex = 69 - ' - 'frmEmailAccount - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1260, 617) - Me.Controls.Add(Me.TabControl1) - Me.Controls.Add(Me.StatusStrip1) - Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.Name = "frmEmailAccount" - Me.Text = "Email Administration" - Me.TabControl1.ResumeLayout(False) - Me.TabPage1.ResumeLayout(False) - Me.TabPage1.PerformLayout() - CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.BindingNavigator1, System.ComponentModel.ISupportInitialize).EndInit() - Me.BindingNavigator1.ResumeLayout(False) - Me.BindingNavigator1.PerformLayout() - CType(Me.BindingSourceForm, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.BindingSourceGrid, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents StatusStrip1 As StatusStrip - Friend WithEvents TabControl1 As TabControl - Friend WithEvents TabPage1 As TabPage - Friend WithEvents BindingNavigator1 As BindingNavigator - Friend WithEvents BindingNavigatorAddNewItem As ToolStripButton - Friend WithEvents BindingNavigatorCountItem As ToolStripLabel - Friend WithEvents BindingNavigatorDeleteItem As ToolStripButton - Friend WithEvents BindingNavigatorMoveFirstItem As ToolStripButton - Friend WithEvents BindingNavigatorMovePreviousItem As ToolStripButton - Friend WithEvents BindingNavigatorSeparator As ToolStripSeparator - Friend WithEvents BindingNavigatorPositionItem As ToolStripTextBox - Friend WithEvents BindingNavigatorSeparator1 As ToolStripSeparator - Friend WithEvents BindingNavigatorMoveNextItem As ToolStripButton - Friend WithEvents BindingNavigatorMoveLastItem As ToolStripButton - Friend WithEvents BindingNavigatorSeparator2 As ToolStripSeparator - Friend WithEvents TabPage2 As TabPage - Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl - Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents txtTestmail As TextBox - Friend WithEvents Label1 As Label - Friend WithEvents btnsendtestmail As Button - Friend WithEvents txtPORT_IN As TextBox - Friend WithEvents ACTIVECheckBox As CheckBox - Friend WithEvents ADDED_WHOTextBox As TextBox - Friend WithEvents ADDED_WHENTextBox As TextBox - Friend WithEvents CHANGED_WHOTextBox As TextBox - Friend WithEvents CHANGED_WHENTextBox As TextBox - Friend WithEvents cmbAUTH_TYPE As ComboBox - Friend WithEvents txtnewpasswort As TextBox - Friend WithEvents Button4 As Button - Friend WithEvents txtPROFILE_NAME As TextBox - Friend WithEvents txtEMAIL_FROM As TextBox - Friend WithEvents txtSERVER_IN As TextBox - Friend WithEvents txtEMAIL_USER As TextBox - Friend WithEvents txtEMAIL_PW As TextBox - Friend WithEvents txtGUID As TextBox - Friend WithEvents BindingSourceForm As BindingSource - Friend WithEvents txtSERVER_OUT As TextBox - Friend WithEvents cmbPOP_IMAP As ComboBox - Friend WithEvents BindingSourceGrid As BindingSource - Friend WithEvents tsbtnSaveEmailAccount As ToolStripButton - Friend WithEvents txtPORT_OUT As TextBox -End Class diff --git a/GUIs.Test.GUI_EDMI/frmEmailAccount.resx b/GUIs.Test.GUI_EDMI/frmEmailAccount.resx deleted file mode 100644 index 7e8a7594..00000000 --- a/GUIs.Test.GUI_EDMI/frmEmailAccount.resx +++ /dev/null @@ -1,1448 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - 17, 17 - - - False - - - 134, 17 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC - pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ - Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ - /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA - zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ - IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E - rkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC - DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC - rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV - i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG - 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG - QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX - bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 - wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 - v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg - UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA - Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu - lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w - 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f - Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ - 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 - n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI - N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f - oAc0QjgAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// - h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B - twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA - kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG - WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 - 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - - - 288, 17 - - - 447, 17 - - - - AAABAAIAgIAAAAEAIAAoCAEAJgAAACAgAAABACAAqBAAAE4IAQAoAAAAgAAAAAABAAABACAAAAAAAAAA - AQASCwAAEgsAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAIAAAAJAAAACAAAAAgAAAAIAAAACQAAAAoAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAKAAAACgAA - AAsAAAALAAAACwAAAAsAAAAKAAAACAAAAAcAAAAGAAAABQAAAAMAAAACAAAAAgAAAAIAAAACAAAAAgAA - AAIAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAADAAAAAwAAAAQAAAAKAAAACAAAAAcAAAAHAAAABwAA - AAcAAAAGAAAABwAAAAYAAAACAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAMAAAAEAAAABAAA - AAMAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAABAAA - AAYAAAAGAAAACAAAAAcAAAAGAAAABgAAAAsAAAANAAAADAAAAAsAAAAJAAAACwAAAAwAAAALAAAACwAA - AAsAAAALAAAADAAAAAwAAAAMAAAACwAAAAwAAAALAAAACwAAAAsAAAAIAAAABwAAAAcAAAAIAAAACgAA - AAUAAAAEAAAABwAAABAAAAAPAAAADAAAAA0AAAAPAAAADgAAAA4AAAAPAAAADwAAAAsAAAAPAAAAGAAA - ABcAAAASAAAACgAAAAUAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAQAAAAGAAAABgAA - AAYAAAAEAAAABgAAAAoAAAAFAAAAAgAAAAMAAAADAAAABQAAAAUAAAAGAAAAAwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAGAAAABgAA - AAYAAAAHAAAABwAAAAgAAAAKAAAACQAAAAgAAAAFAAAABQAAAAUAAAAGAAAABwAAAAcAAAAHAAAADAAA - ABAAAAANAAAADgAAAA4AAAAOAAAAEAAAABAAAAAQAAAAEgAAABUAAAAVAAAAFAAAABIAAAARAAAAEgAA - ABEAAAARAAAAEQAAABAAAAASAAAAFAAAABMAAAAUAAAADgAAAA4AAAAMAAAACQAAAAoAAAANAAAADgAA - AA0AAAAKAAAACQAAAAsAAAAMAAAADwAAABQAAAAYAAAAJgAAACoAAAAoAAAAJgAAACgAAAAkAAAAIQAA - ABwAAAAaAAAAGgAAABoAAAAbAAAAGwAAABoAAAAUAAAAFAAAABkAAAAdAAAAHgAAABgAAAAYAAAAGwAA - ABgAAAAbAAAAGQAAABMAAAAQAAAACgAAAAkAAAAHAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAABAAAABAAA - AAIAAAADAAAACwAAAA4AAAAOAAAADgAAAA8AAAAPAAAAEgAAABIAAAATAAAAFQAAABMAAAASAAAAEgAA - ABAAAAAPAAAADwAAAAwAAAALAAAAFAAAABsAAAAZAAAAGAAAABsAAAAcAAAAHgAAABwAAAAaAAAAFQAA - ABkAAAAXAAAAEgAAABIAAAAUAAAAFAAAABQAAAAXAAAAGAAAABgAAAAYAAAAIwAAACgAAAAoAAAAKQAA - ACcAAAAnAAAAKAAAACkAAAAlAAAAHgAAABQAAAARAAAAFAAAABQAAAAQAAAAFQAAABwAAAAZAAAAFwAA - ABUAAAAUAAAAEQAAABUAAAAYAAAAGgAAAB0AAAAdAAAAHAAAABwAAAAfAAAAIQAAABgAAAAPAAAADwAA - ABIAAAAXAAAAFQAAABAAAAANAAAACwAAAAwAAAAQAAAAEQAAAA4AAAAIAAAACAAAAA4AAAAWAAAAGAAA - ABcAAAAbAAAAGgAAABgAAAAWAAAAEgAAAAsAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAADAAAACAAAAAYAAAABAAAAAgAAAAkAAAAJAAAAAwAAAAYAAAAIAAAABQAAAAIAAAACAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAKAAAACQAAAAoAAAANAAAADgAAAA4AAAARAAAAFgAA - ABUAAAARAAAADgAAAA0AAAAQAAAAFgAAABkAAAAdAAAAHQAAACEAAAAZAAAADwAAABMAAAAYAAAAGgAA - ABYAAAAXAAAAGAAAAB0AAAAeAAAAHgAAAB8AAAAiAAAAJwAAAC0AAAAoAAAAIgAAACUAAAAqAAAAJQAA - AB8AAAAYAAAAFwAAAB0AAAAcAAAAHQAAAB0AAAAdAAAAJAAAACQAAAAWAAAAFAAAABoAAAAYAAAAFgAA - ABsAAAAcAAAAIQAAACMAAAAhAAAAIgAAACUAAAAoAAAALwAAADMAAAA1AAAAQgAAAEQAAABDAAAAPgAA - ADkAAAA6AAAAJgAAABgAAAAdAAAAGwAAABQAAAAQAAAAEwAAAB4AAAAoAAAAMgAAACYAAAAbAAAAFwAA - ABIAAAAQAAAADQAAABcAAAAOAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AA8AAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGAAAADAAA - ABoAAAAgAAAAGwAAABQAAAAXAAAAGgAAABUAAAAVAAAAFgAAABMAAAATAAAAFAAAABIAAAAXAAAAHgAA - ABcAAAATAAAAEQAAAA0AAAATAAAAFwAAABYAAAAOAAAADgAAABcAAAAYAAAAHAAAABYAAAAQAAAAGAAA - AB0AAAAiAAAALQAAAC4AAAArAAAALQAAACIAAAAvAAAAOAAAAC4AAAAoAAAAJgAAACMAAAAlAAAAJAAA - ACMAAAAqAAAAKwAAAC0AAAAzAAAALAAAAEEAAABTAAAAVAAAAFEAAAA4AAAANQAAADcAAAAoAAAAKQAA - ACwAAAApAAAALQAAADMAAAAzAAAAMAAAADAAAAAvAAAALAAAADIAAAAyAAAALAAAADUAAAA9AAAAPwAA - AEIAAAA+AAAAOgAAAEEAAABLAAAASAAAAEEAAAA+AAAAQQAAADYAAAAeAAAAFgAAABkAAAAbAAAAGwAA - ABwAAAAfAAAAHAAAABcAAAAYAAAAEgAAAA0AAAAIAAAACQAAAA8AAAASAAAAAwAAAAoAAAAHAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAcAAAAAAAAABQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAADAAAAAgAAAAcAAAAKAAAADAAAAAQAAAABAAAACQAAAA0AAAAJAAAACwAAAC4AAAA7AAAANQAA - ACYAAAAjAAAAHwAAAB4AAAAcAAAAGgAAABgAAAAgAAAAJwAAACwAAAAwAAAALwAAADoAAABDAAAAQwAA - AF4AAACFAAAAiAAAAJEAAACPAAAAewAAAG8AAABtAAAAbQAAAHcAAAByAAAAdgAAAJIAAACQAAAAfQAA - AHgAAAB8AAAAigAAAJEAAACZAAAAoQAAAJwAAACMAAAAggAAAHsAAAB2AAAAfQAAAHkAAABwAAAAgAAA - AIYAAACJAAAAkwAAAJ0AAACfAAAAnQAAAI8AAACNAAAAjAAAAIgAAABtAAAAZwAAAHIAAABzAAAAcQAA - AHEAAABlAAAAYgAAAGEAAABWAAAAaQAAAHMAAABuAAAAcQAAAH8AAACEAAAAgwAAAI0AAACVAAAAhwAA - AIIAAACAAAAAjgAAAKMAAACAAAAAZwAAAHEAAAB2AAAAbwAAAG0AAABhAAAAWAAAAGEAAABnAAAAXgAA - AGAAAABYAAAASQAAAFMAAAA5AAAAHwAAABUAAAAdAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAALAAAACAAA - AAAAAAATAAAAIAAAAAgAAAAMAAAABwAAAAUAAAAGAAAADgAAABsAAAAQAAAABAAAAA8AAAAhAAAAHwAA - AC4AAAAoAAAALAAAAC0AAAAqAAAAMQAAAC8AAAA5AAAARAAAAEwAAABbAAAAVAAAAFUAAABnAAAAagAA - AGUAAAB1AAAAgAAAAI8AAACQAAAAogAAAKUAAACTAAAAgAAAAJIAAACYAAAAlgAAAJoAAACWAAAAhwAA - AH8AAACJAAAAjwAAAIsAAACFAAAAewAAAHUAAABtAAAAcAAAAH4AAACFAAAAjAAAAHoAAAB0AAAAawAA - AF8AAABTAAAAVQAAAFoAAABaAAAAXgAAAHQAAACUAAAAigAAAIMAAACBAAAAfgAAAIgAAACKAAAAeQAA - AIAAAACUAAAAlQAAAIcAAACHAAAAkAAAAIcAAACEAAAAegAAAJkAAAC9AAAAuAAAALkAAADAAAAAvwAA - ALMAAACxAAAAtgAAALwAAAC5AAAAxgAAAMgAAADNAAAAzQAAAM0BAQHZAgIC4wICAuwDAwPpAAAA6wAA - ANcAAAC/AAAA2AAAANcAAADZAAAAzQAAANAAAADRAAAArAAAAK8AAACQAAAAgQAAAHYAAAAzAAAACQAA - ABgAAAAMAAAAAAAAAAMAAAACAAAAAAAAAAYAAAAAAAAAAAAAAAoAAAA0AAAAHQAAACQAAAAvAAAATQAA - AEAAAAAzAAAAMQAAAB8AAAAuAAAANgAAAEwAAABVAAAARgAAAFMAAABmAAAAZQAAAFMAAABEAAAARAAA - AD4AAAA5AAAAOwAAADoAAABOAAAATQAAAGEAAABvAAAAWQAAAFUAAABVAAAATQAAAEYAAAA8AAAATwAA - AFUAAABEAAAARAAAAGoAAABvAAAAZgAAAG8AAACDAAAAkAAAAJMAAACdAAAAoAAAAJMAAACbBQUFkQEB - AYcAAACXAAAAkgAAAHMAAABvAAAAdAAAAG8AAABfAAAAdgAAAI0AAACQAAAAkQAAAIkAAACMAAAAhwAA - AHIAAAB7AAAAcwAAAIAAAACQAAAAjAAAAHoAAAB3AAAAhgAAAIoAAACSAAAAmwAAAJ4AAACcAAAAkwAA - AJkAAACmAAAAvAAAANIAAADeAAAA6gAAAN8AAADYAAAA2QAAANAAAAC4AAAAxQAAANkAAADXAAAAygAA - ANgAAADhAAAAwgAAALcAAACfAAAAjAICAo4AAAB/EhIShycnJ5wMDAy8MzMz/zg4OPcEBASjAAAAqQEB - AaoAAAB/AAAAeQAAAKcAAABkAAAAVgAAAC4AAAAVAAAACwAAAAAAAAANAAAAHAAAACIAAAAqAAAANQAA - AEEAAAA2AAAARwAAAE8AAAAsAAAAHwAAACMAAAAsAAAAQQAAACMAAAAOAAAAMQAAAFoAAABiAAAAZwAA - AF8AAABkAAAAaQAAAFwAAAB5AAAAcAAAAHcAAABtAAAAbgAAAG0AAABwAAAAcgAAAJ4AAACtAAAApgAA - AJ0AAAChAAAAnAAAAJMAAACWAAAAmwAAAJUBAQGbAAAAqgAAAMMAAAC9AAAAuQAAALMAAAC6AAAAvwAA - AMkAAADRAAAA0gAAANsAAADdAAAA0wAAANIAAADPAAAAwwAAAL0AAACxAAAAwAAAAMgAAAC6AAAAqAAA - AJMAAACaAAAAtgAAAMAAAADLAAAAyQAAAMYAAADIAAAAuwAAALsAAADFAAAA2AAAAOYAAADqAAAA7AAA - AOkAAADwAAAA7wAAAPAAAADyAAAA9AAAAPIAAAD5AAAA8AAAAOAAAADWAAAA1QAAANMAAADUAAAA1QAA - AM8AAADXAAAA6QAAAOwAAADSAAAAvQYGBs8NDQ3lAAAAvgAAAKAAAAC3AAAAuggICM8KCgrXAQEB1wAA - ANMDAwPpHx8f/iwsLO0qKiqhFRUVbQAAAFgAAAAuAAAAGxUVFSYCAgJdAAAAqAAAADcAAAAaAAAALwAA - ACsAAAAQAAAAAQAAAAUAAAADAAAAAAAAABEAAAAzAAAATAAAAC0AAAB2AAAAdwAAAE0AAABSAAAAYgAA - AF4AAAB6AAAAoQAAAJkAAACWAAAAlQAAAKsAAACtAAAAqgAAAMsAAADEAAAAtQAAAK4AAACzAAAA3wAA - AOEAAADsAAAA9QAAAOcAAADsAAAA8gAAAPUAAADrAAAA4AAAAOQAAADnAAAA5gAAAOcAAADuAAAA+QMD - A+wAAADpBwcH/hAQEP4MDAz2AgIC9QICAv4DAwP/CgoK/g0NDe4AAADiAAAA3AAAANAAAADQAAAA2gAA - AOAAAADcAAAA3QAAANYAAADQAAAAxgAAAM4AAADbAAAA4wAAAM0AAAC8AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAO4AAADoBgYG1QEBAdgAAADgAAAA6wAAAOQHBwfMERERzBoa - GtwaGhrnMTEx8ExMTPs6Ojr3Ly8v4SwsLMo4ODjXQUFB31hYWOtXV1fzSEhI+klJSe8+Pj7aSkpK6ElJ - Sf85OTnpOjo60EJCQvE2Njb7Nzc3/ykpKf8jIyP/Hx8f/xgYGP8aGhr/CwsL3gAAAIYAAACJAAAAmwAA - AIgAAAB3Pj4+0CwsLJsAAABNAAAAIgAAABUAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAEIAAABqAAAAZAAA - AHcAAACUAAAAfQAAAJYAAACcAAAAVwAAAGcAAACdAAAAsQAAAL0AAADIAAAAxgAAAL4AAACvAAAAsAAA - AMsAAADHAAAAtQAAALYAAACxAAAAowAAAKYAAAC7AAAAvgAAAMoQEBDgFxcX9h0dHe4YGBjXBAQExQ8P - D+AWFhb3Dw8P+hISEvsTExP/EBAQ/xISEv8VFRX/Ghoa/xgYGP8YGBj/Jycn/zAwMP8mJib/Jycn/y8v - L/8+Pj7/QUFB/zU1NesuLi7kLS0t1To6OtBMTEzuPT099TIyMuc0NDT2LS0t/yoqKu8oKCjXLS0t6S4u - Lv8hISH/Hh4e9x8fH+MWFhb/ICAg/ygoKP8XFxf/CQkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x8f - H/9aWlr7VVVV+EZGRvhXV1f8XV1d+WlpafdpaWn6RERE/EpKSv9XV1f/VVVV/0NDQ/82Njb/OTk5/0BA - QP9HR0f/UlJS/29vb/9qamr/Q0ND/yYmJv8kJCT/Li4u/09PT/9eXl7/ZmZm/1JSUv9HR0f/UFBQ/1ZW - Vv9dXV3/ZWVl/3BwcP9HR0f9S0tL/5KSkv+lpaX/iIiI/4iIiP9gYGD/AAAAVAAAACoAAAAbAAAAHgAA - AA4AAAACAAAAAAAAAAAAAAATAAAAIAAAADwAAAAtAAAAHwAAACoAAABSAAAAnQAAAK4AAABjAAAAXQAA - AG4AAACZAAAArgAAAK0AAAC4AAAAtQAAALEAAACQAAAAfwAAAKEAAACsAAAAvAAAAMAAAADZAAAA6AAA - AOYAAADoEhIS8RgYGP8YGBj/Hx8f/xwcHP8YGBj/GBgY/xsbG/8SEhL/FhYW/xgYGP8XFxf/IyMj/ykp - Kf81NTX/MzMz/zk5Of9DQ0P/Pz8//zMzM/8wMDD/MzMz/zk5Of8/Pz//UFBQ/1ZWVv9aWlr/YWFh/15e - Xv9iYmL/cnJy/4SEhP+FhYX/fn5+/4CAgP+NjY3/np6e/5mZmf+hoaH/lJSU/4uLi/+Kior/fX19/4WF - hf+Dg4P/cXFx/25ubv9nZ2f/YWFh/2dnZ/90dHT/a2tr/3Fxcf93d3f/e3t7/3Z2dv+NjY3/cHBw/0ZG - Rv8yMjL/NjY2/0NDQ/87Ozv/SUlJ/3BwcP+MjIz/kpKS/3l5ef8zMzP/UlJS/2lpaf9ra2v/dXV1/2Fh - Yf9kZGT/e3t7/4WFhf+SkpL/lZWV/5mZmf+qqqr/s7Oz/7a2tv+1tbX/ubm5/729vf/Nzc3/0dHR/8zM - zP/Kysr/m5ub/4aGhv84ODgGAAAABQAAAAwAAAAUAAAAHAAAAAcAAAAAAAAAAAAAAAAAAAADAAAAAAAA - AAAAAAARAAAAEgAAABAAAABjAAAAewAAAIoAAACvMjIy3zk5OfocHBz+HBwc/SgoKP8qKir/IiIi/yYm - Jv8jIyPmDQ0N+wsLC/8mJib/Hh4e/wgICP8GBgb/CgoK/xMTE/8hISH/Hh4e/xoaGv8iIiL/Li4u/0ND - Q/9YWFj/YGBg/15eXv9kZGT/a2tr/2lpaf9paWn/cHBw/4eHh/+SkpL/iYmJ/4SEhP+JiYn/i4uL/5CQ - kP+VlZX/j4+P/6CgoP+srKz/sLCw/6+vr/+oqKj/paWl/6CgoP+Tk5P/lpaW/6CgoP+Tk5P/j4+P/4eH - h/+Hh4f/nZ2d/6+vr/+vr6//p6en/6mpqf+7u7v/vLy8/7W1tf+srKz/srKy/8XFxf/R0dH/ubm5/7S0 - tP+/v7//vLy8/7Gxsf/AwMD/zs7O/8nJyf/Dw8P/v7+//87Ozv/S0tL/4eHh/8/Pz/+/v7//xcXF/76+ - vv/MzMz/srKy/6CgoP+5ubn/vr6+/76+vv++vr7/vr6+/8XFxf/Q0ND/29vb/+Dg4P/Y2Nj/4ODg/+Pj - 4//b29v/2tra/9nZ2f/Y2Nj/4uLi/8/Pz//Z2dn/6enp/6urq/+AgID/lZWV//X19Q4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAA8AAAALAAAAEQAAACcAAAAvAAAADQAAAGcAAABLCAgIWWtr - a/8+Pj7/WVlZ/25ubv9eXl7/ZWVl/3Jycv9oaGj/a2tr/3Z2dv93d3f/ioqK/7CwsP+0tLT/lpaW/4aG - hv+fn5//oaGh/5ubm/+jo6P/oKCg/6+vr//CwsL/xcXF/9HR0f/d3d3/8PDw/+7u7v/f39//2dnZ/8nJ - yf/FxcX/ubm5/8LCwv/Ozs7/09PT/93d3f/m5ub/4+Pj/9zc3P/Dw8P/ysrK/7+/v//Ozs7/zs7O/7u7 - u/+6urr/wMDA/7y8vP+1tbX/t7e3/7m5uf+7u7v/urq6/7Kysv+0tLT/vLy8/8XFxf+5ubn/p6en/66u - rv+0tLT/t7e3/8XFxf+2trb/wcHB/9vb2//X19f/xsbG/8bGxv/X19f/yMjI/6qqqv/BwcH/tLS0/66u - rv/AwMD/vLy8/66urv+oqKj/vLy8/8fHx//X19f/zs7O/8nJyf/m5ub/+/v7/+7u7v/u7u7/6urq/+np - 6f/09PT/9fX1/+np6f/i4uL/5ubm/97e3v/T09P/0NDQ/9LS0v/S0tL/zMzM/97e3v/V1dX/t7e3/56e - nv+Tk5P/hYWF/6ioqP+Li4v/5eXlA+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA - AAcAAAAPAAAACgAAABcAAAAAAAAAVwAAAHmlpaW6z8/P/2BgYP8oKCj/eXl5/6+vr/+fn5//vLy8/9TU - 1P/Pz8//0NDQ/9bW1v/a2tr/zMzM/8nJyf/Q0ND/y8vL/87Ozv/T09P/0tLS/9HR0f/Q0ND/4eHh/+rq - 6v/n5+f/39/f/87Ozv/Gxsb/zMzM/9vb2//d3d3/39/f/+rq6v/29vb//Pz8//r6+v/v7+//5eXl/+Pj - 4//d3d3/4+Pj/8XFxf/FxcX/zs7O/7Kysv/Ly8v/zc3N/8LCwv/Kysr/zs7O/8TExP/IyMj/3t7e/9jY - 2P/i4uL/5eXl/+Li4v/v7+//8/Pz/+rq6v/s7Oz/5eXl/9vb2//W1tb/2tra/83Nzf+3t7f/z8/P/8XF - xf/Ly8v/wcHB/62trf/Dw8P/tra2/6ioqP/Jycn/wsLC/66urv+7u7v/y8vL/8TExP/k5OT/29vb/9nZ - 2f/5+fn/3t7e/9PT0//f39//6urq/+Pj4//e3t7/39/f/97e3v/f39//4eHh/+Tk5P/S0tL/09PT/9nZ - 2f/Pz8//19fX/8zMzP/o6Oj/5OTk/5iYmP9+fn7/i4uL/6CgoP+7u7v/paWl/2VlZfXY2NgA29vbAOjo - 6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAAHLCwsn/// - ///5+fn/zs7O/56env9xcXH/wcHB/+Hh4f/l5eX/8/Pz//f39//w8PD/3t7e/93d3f/V1dX/0NDQ/9DQ - 0P/Kysr/vr6+/7+/v//Ly8v/1tbW/87Ozv/Q0ND/19fX/9LS0v/V1dX/09PT/87Ozv/MzMz/39/f/+Pj - 4//p6en/7Ozs/+rq6v/n5+f/zc3N/8bGxv/Kysr/x8fH/8/Pz//Y2Nj/2tra/76+vv/f39//6enp/9LS - 0v/m5ub/7+/v/+vr6//h4eH/19fX/9/f3//V1dX/6enp/+zs7P/m5ub/7Ozs//j4+P/o6Oj/5OTk/+Xl - 5f/y8vL//Pz8//n5+f/4+Pj//////+3t7f/c3Nz/9PT0/+fn5//r6+v/3d3d/9zc3P//////5eXl/+bm - 5v//////8PDw/9zc3P/l5eX/9fX1/+vr6//n5+f/xcXF/93d3f/y8vL/5OTk/9PT0//c3Nz/6+vr/+rq - 6v/Y2Nj/x8fH/9XV1f/Z2dn/6enp/8nJyf+3t7f/2tra/+np6f+5ubn/yMjI/+zs7P9/f3//cHBw/6Oj - o//s7Oz/w8PD/729vf+Ghob/XFxcxNjY2ADV1dUA3d3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISG0s7Oz/+zs7P/Pz8//wsLC/4aGhv9GRkb/g4OD/8rK - yv/f39//4ODg/+Xl5f/p6en/5OTk/+jo6P/w8PD/6urq/9nZ2f/f39//29vb/87Ozv/Nzc3/09PT/8vL - y//a2tr/5OTk/+Pj4//p6en/7e3t/+zs7P/m5ub/4eHh/97e3v/v7+//8fHx/+rq6v/m5ub/8fHx/+Xl - 5f/g4OD/7u7u/+3t7f/6+vr/6urq/8nJyf/y8vL/7u7u/9bW1v/f39//6urq/+jo6P/T09P/5OTk/+Dg - 4P/X19f/6Ojo/+3t7f/x8fH/9fX1/+Li4v/t7e3/8PDw/97e3v/k5OT/8/Pz//Pz8//u7u7/+Pj4/93d - 3f/k5OT/+fn5/+rq6v/w8PD/4ODg/9fX1//z8/P/0tLS/+Dg4P/y8vL/5OTk/9XV1f/d3d3/6urq/+3t - 7f/c3Nz/wMDA/+jo6P/q6ur/5+fn/9bW1v/X19f/7Ozs/+rq6v/Hx8f/29vb/9XV1f/Z2dn/7u7u/8LC - wv/CwsL/5+fn/8fHx/++vr7/fn5+/2VlZf+vr6//4eHh//X19f+6urr/urq6/3BwcP91dXWsbm5uAPX1 - 9QD29vYA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAADw8PAAQE - BLZ2dnb/xsbG//Ly8v/Dw8P/rq6u/4ODg/8xMTH/d3d3/83Nzf/Z2dn/wsLC/+Dg4P/v7+//5OTk/+Tk - 5P/e3t7/zMzM/9XV1f/X19f/39/f/9vb2//Jycn/xMTE/87Ozv/i4uL/7e3t/+rq6v/l5eX/5OTk/+Li - 4v/l5eX/zs7O/9nZ2f/o6Oj/8vLy/+3t7f/t7e3/6urq/9jY2P/r6+v/4+Pj/+Xl5f/8/Pz/4eHh/8zM - zP/5+fn/8vLy/97e3v/k5OT/9/f3/+bm5v/Z2dn//f39/+rq6v/e3t7/9vb2//39/f/39/f/7e3t/93d - 3f//////+fn5/+np6f/k5OT/9vb2//v7+//39/f/+vr6/9vb2//x8fH//f39//Hx8f/39/f/5+fn/+Dg - 4P/z8/P/1tbW/+rq6v/y8vL/6enp/9nZ2f/e3t7/7u7u//Pz8//U1NT/y8vL//Pz8//q6ur/7+/v/9/f - 3//Z2dn/9vb2/+Dg4P/Q0ND/9fX1/9fX1//f39//7e3t/9fX1/+7u7v/nJyc/4GBgf98fHz/s7Oz/9ra - 2v/i4uL/5ubm/7Kysv/Pz8//cXFx/3Z2drVtbW0A8vLyAO7u7gDy8vIA+fn5AP39/QD///8A////AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAA0REREABwcHmGNjY//BwcH/5ubm/9ra2v+zs7P/ubm5/6Wl - pf9VVVX/a2tr/7Gxsf/U1NT/0tLS/+Xl5f/r6+v/6Ojo/+np6f/m5ub/3t7e/+bm5v/h4eH/6urq//T0 - 9P/r6+v/5OTk/9TU1P/e3t7/7Ozs//T09P/v7+//7Ozs//v7+//t7e3/3t7e/+vr6//o6Oj//Pz8//f3 - 9//9/f3/5OTk/97e3v//////6Ojo/+np6f//////4ODg/9nZ2f//////+Pj4/+np6f/r6+v//////9/f - 3//k5OT//////+/v7//f39//8fHx//r6+v//////4+Pj/+Li4v//////+/v7/+3t7f/h4eH/8PDw//r6 - +v/6+vr/9fX1/9vb2//4+Pj//f39//n5+f//////7e3t/+7u7v/7+/v/3Nzc//j4+P/7+/v/8/Pz/+Hh - 4f/k5OT/9fX1//39/f/V1dX/4eHh///////09PT/+fn5/+3t7f/f39///////93d3f/i4uL//////+Tk - 5P/5+fn/9fX1/39/f/9lZWX/ioqK/87Ozv/b29v/1tbW/9ra2v/h4eH/urq6/8LCwv9QUFD/cHBwi/v7 - +wDw8PAA6+vrAOvr6wDt7e0A7u7uAO/v7wDv7+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1FR - UQBJSUmbRkZG/7e3t//o6Oj/2tra/9HR0f+tra3/ycnJ/6qqqv+BgYH/bm5u/5mZmf/g4OD/5OTk//n5 - +f/4+Pj/+Pj4//T09P/v7+//6Ojo//T09P/q6ur/5eXl//n5+f//////8fHx/+Dg4P/l5eX/7+/v//7+ - /v/+/v7/+Pj4//7+/v/i4uL/7Ozs/+/v7//k5OT/+/v7//r6+v//////3d3d/+np6f//////8fHx/+zs - 7P//////39/f/+Xl5f///////f39/+7u7v/u7u7//Pz8/9vb2//x8fH///////Pz8//j4+P/9vb2//// - ////////3t7e//Pz8/////////////n5+f/o6Oj/8vLy////////////8PDw/+Dg4P///////Pz8//r6 - +v//////8fHx//Hx8f/19fX/3d3d//7+/v///////f39/+3t7f/o6Oj//v7+///////V1dX/8fHx//// - ///39/f///////X19f/m5ub/+Pj4/9TU1P/t7e3///////////+ioqL/pKSk/3V1df+wsLD/8/Pz/9nZ - 2f/e3t7/3Nzc/+bm5v/AwMD/r6+v/zExMf+FhYVefHx8APLy8gDt7e0A6+vrAOvr6wDr6+sA6+vrAOvr - 6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXl5eAFlZWbIuLi7/vLy8/+7u7v/Q0ND/1tbW/8jI - yP/Pz8//yMjI/5eXl/+Pj4//goKC/25ubv/ExMT/5+fn//Pz8//8/Pz/+vr6//j4+P/y8vL/6Ojo//v7 - +//y8vL/4uLi/+/v7///////9/f3/+bm5v/n5+f/7u7u//n5+f/9/f3/+fn5//z8/P/c3Nz/9PT0//T0 - 9P/k5OT//Pz8///////8/Pz/19fX//X19f//////8/Pz/+np6f/9/f3/3Nzc/+3t7f////////////Dw - 8P/29vb/9vb2/97e3v/9/f3///////r6+v/n5+f/8/Pz///////5+fn/3Nzc//7+/v////////////// - ///t7e3/8vLy////////////7+/v/+vr6///////////////////////8vLy//Pz8//x8fH/39/f//// - //////////////Hx8f/k5OT///////f39//Q0ND/9fX1//z8/P/y8vL/+fn5//Ly8v/m5ub/6+vr/9PT - 0///////z8/P/52dnf+oqKj/s7Oz/8nJyf/Ozs7/8vLy/9ra2v/Z2dn/5eXl/7i4uP+2trb/Ojo6/4yM - jF2FhYUA9/f3APPz8wDx8fEA8fHxAPHx8QDx8fEA8fHxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACYmJgAlJSUgwAAAP+SkpL/+vr6/9PT0//Y2Nj/vLy8/8DAwP/q6ur/09PT/5+fn/+np6f/ampq/1NT - U/+qqqr/7e3t//Dw8P////////////39/f/w8PD/4+Pj//r6+v/4+Pj/4+Pj/+fn5//+/v7/+/v7/+vr - 6//u7u7/6+vr//Ly8v////////////n5+f/Z2dn//Pz8//r6+v/j4+P/9vb2///////19fX/2NjY//39 - /f//////9/f3/+7u7v/5+fn/2tra//b29v////////////Hx8f/29vb/7u7u/+np6f////////////39 - /f/p6en/8/Pz///////w8PD/3t7e///////////////////////v7+//7u7u////////////6Ojo//Hx - 8f//////////////////////9PT0//X19f/v7+//4uLi//////////////////X19f/m5ub///////Ly - 8v/R0dH/+/v7//z8/P/4+Pj/+Pj4//X19f/t7e3//v7+/8vLy/+ZmZn/q6ur/6Kiov/u7u7/6Ojo/8PD - w//Pz8//5+fn/9jY2P/k5OT/ubm5/7m5uf87Ozv/m5ubcpeXlwCSkpIAkJCQAI+PjwCPj48Aj4+PAI+P - jwCPj48AAAAAAHZ2dgBzc3MAcnJyAHJycgBxcXEAb29vAGtrawBqamooCQkJ/1paWv/5+fn/0dHR/9zc - 3P/Dw8P/pqam/7+/v//a2tr/9PT0/6SkpP+Kior/cHBw/2RkZP+SkpL/ysrK/+np6f/w8PD///////// - ///y8vL/5OTk//T09P/+/v7/6enp/+Dg4P/4+Pj///////Hx8f/4+Pj/8PDw/+7u7v/+/v7///////j4 - +P/Z2dn//v7+//z8/P/j4+P/9PT0///////t7e3/3Nzc/////////////Pz8//Hx8f/w8PD/2dnZ//j4 - +P////////////Hx8f/z8/P/6Ojo//Dw8P////////////7+/v/q6ur/8fHx///////r6+v/4+Pj//// - ///+/v7////////////z8/P/6+vr////////////4uLi//f39///////////////////////9PT0//T0 - 9P/t7e3/4+Pj//////////////////f39//m5ub//////+3t7f/b29v//Pz8//b29v///////f39//// - ////////gYGB/3Fxcf+rq6v/9fX1//7+/v/09PT/5eXl/7a2tv/V1dX/7e3t/+vr6//AwMD/tra2/1JS - Uv+FhYUzg4ODAIGBgQCBgYEAgYGBAICAgACAgIAAgICAAICAgAALCwsACQkJAAcHBwAHBwcABwcHAAYG - BgAGBgYABQUFAAMDAxsYGBj/YWFh/+zs7P/V1dX/zs7O/9TU1P/FxcX/wsLC/9nZ2f/h4eH//////7e3 - t/+RkZH/m5ub/2RkZP9ra2v/mpqa/76+vv/AwMD/5ubm///////39/f/5OTk//Dw8P//////8PDw/+Hh - 4f/z8/P///////Ly8v/5+fn/9vb2/+3t7f/6+vr///////b29v/d3d3////////////n5+f/8/Pz//// - ///o6Oj/4uLi/////////////f39//X19f/m5ub/29vb//////////////////Pz8//u7u7/4eHh//j4 - +P///////v7+///////s7Oz/7+/v///////m5ub/6Ojo///////9/f3////////////19fX/6urq//// - ///+/v7/4ODg//z8/P//////////////////////9vb2//T09P/p6en/5eXl//////////////////f3 - 9//j4+P//////+np6f/c3Nz/4uLi//Hx8f///////////7y8vP9paWn/m5ub/7u7u/////////////Pz - 8//w8PD/3d3d/7W1tf/e3t7//////8HBwf+kpKT/b29v/5iYmCKWlpYAlZWVAJWVlQCVlZUAlZWVAJWV - lQCVlZUAlZWVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAkJCf+JiYn/5eXl/8fH - x//T09P/x8fH/9zc3P/a2tr/19fX/+/v7//x8fH/4uLi/52dnf+YmJj/rKys/2ZmZv91dXX/cHBw/52d - nf/Q0ND/wcHB////////////5eXl/+vr6//9/f3/+vr6/+zs7P/u7u7///////Ly8v/39/f//Pz8/+3t - 7f/z8/P///////Pz8//d3d3////////////r6+v/7+/v///////h4eH/5ubm///////+/v7///////n5 - +f/f39//3d3d//////////////////b29v/n5+f/4eHh//7+/v///////v7+///////t7e3/7u7u//// - ///i4uL/6+vr///////8/Pz////////////5+fn/6urq///////5+fn/4+Pj//////////////////// - ////////9/f3//Ly8v/o6Oj/4+Pj//////////////////f39//n5+f//Pz8/+fn5//h4eH/5ubm//// - ///n5+f/VlZW/7Gxsf/n5+f/5eXl/9jY2P//////+fn5//Ly8v/u7u7/0NDQ/7Kysv/7+/v/z8/P/5iY - mP9ra2v/uLi4OLa2tgC1tbUAtbW1ALW1tQC1tbUAtbW1ALW1tQC1tbUAJCQkACQkJAAkJCQAJCQkACQk - JAAkJCQAJCQkACQkJAAhISEAGBgY/Hx8fP//////yMjI/7u7u//Q0ND/zc3N/9ra2v/b29v/19fX//Ly - 8v//////7u7u/7Gxsf+bm5v/oqKi/6ampv/S0tL/dXV1/62trf/Y2Nj/qKio//b29v//////6urq/+/v - 7/////////////Pz8//s7Oz/+/v7//X19f/y8vL//////+7u7v/t7e3///////Ly8v/i4uL///////// - ///s7Oz/6+vr///////e3t7/7u7u///////9/f3///////v7+//V1dX/39/f///////+/v7///////n5 - +f/g4OD/5OTk///////+/v7//v7+///////w8PD/7Ozs///////h4eH/7+/v//////////////////// - ///6+vr/6enp///////09PT/5ubm////////////////////////////+Pj4//Ly8v/n5+f/5eXl//// - ///8/Pz//f39//r6+v/q6ur/8/Pz/+3t7f/09PT//////3Jycv90dHT/09PT////////////z8/P/9TU - 1P//////9vb2//Ly8v/u7u7/xMTE/8PDw//X19f/jY2N/2pqav+srKw8qampAKenpwCnp6cAp6enAKen - pwCnp6cAp6enAKenpwAeHh4AHh4eAB4eHgAeHh4AHh4eAB4eHgAeHh4AHh4eABwcHABHR0fdSEhI//39 - /f/t7e3/xsbG/7Gxsf/X19f/29vb/9zc3P/i4uL/1tbW/+zs7P///////////8XFxf+mpqb/rKys/6Wl - pf/Jycn/hoaG/7Kysv/o6Oj/paWl/+Hh4f//////9fX1//Ly8v////////////n5+f/t7e3/9vb2//b2 - 9v/z8/P///////X19f/s7Oz///////Ly8v/j4+P////////////x8fH/7u7u///////f39//9PT0//// - ///9/f3///////v7+//Q0ND/5ubm///////9/f3///////r6+v/Z2dn/6enp///////9/f3//Pz8//// - ///z8/P/7Ozs///////h4eH/8vLy///////////////////////8/Pz/6+vr///////w8PD/7Ozs//// - ////////////////////////+vr6//Dw8P/o6Oj/5eXl//7+/v/8/Pz//Pz8//r6+v/09PT/5OTk/8jI - yP++vr7/cHBw/62trf/o6Oj/////////////////zs7O/9LS0v//////8fHx/+zs7P/t7e3/xMTE/7Ky - sv+Pj4//YWFh/6mpqTmkpKQAo6OjAKOjowCjo6MAo6OjAKOjowCjo6MAo6OjAGdnZwBnZ2cAZ2dnAGdn - ZwBnZ2cAZ2dnAGdnZwBmZmYAZmZmAGJiYtY4ODj/4ODg/+Xl5f/n5+f/zs7O/7Kysv/a2tr/6urq/+Li - 4v/j4+P/1dXV/+np6f///////////8jIyP+zs7P/m5ub/21tbf/BwcH/mJiY/7Kysv/19fX/rKys/8rK - yv//////+vr6//Dw8P/+/v7///////7+/v/v7+//8vLy//T09P/z8/P///////v7+//q6ur//Pz8/+7u - 7v/o6Oj////////////29vb/8fHx//r6+v/d3d3/+/v7//////////////////r6+v/Jycn/6urq//// - ///9/f3///////j4+P/T09P/8PDw/////////////f39///////09PT/7u7u//v7+//f39//9vb2//// - ///////////////////9/f3/6urq///////r6+v/8fHx////////////////////////////+fn5//Dw - 8P/m5ub/4eHh//39/f/8/Pz//f39///////Q0ND/5eXl/4GBgf+AgID/0tLS////////////+/v7//// - ////////zc3N/9DQ0P/+/v7/5+fn/+bm5v/09PT/ycnJ/2hoaP9QUFD/xMTEMb6+vgC9vb0Avb29AL29 - vQC9vb0Avb29AL29vQC9vb0AVVVVAFVVVQBVVVUAVVVVAFVVVQBVVVUAVVVVAFVVVQBVVVUAU1NTkDU1 - Nf/X19f/0tLS/8rKyv/g4OD/2dnZ/7q6uv/f39//+Pj4/+Pj4//g4OD/2NjY/+vr6////////////9XV - 1f/BwcH/t7e3/2NjY/+kpKT/qKio/6ysrP/6+vr/vLy8/7u7u////////////+3t7f/9/f3///////// - ///z8/P/7+/v//Hx8f/19fX////////////v7+//+Pj4/+vr6//u7u7////////////4+Pj/8fHx/+7u - 7v/i4uL///////////////////////n5+f/Jycn/8fHx///////9/f3///////b29v/Q0ND/9fX1//7+ - /v/9/f3//f39///////4+Pj/8PDw//T09P/l5eX/+/v7///////////////////////7+/v/7u7u//// - ///p6en/9vb2/////////////////////////////Pz8//Ly8v/j4+P/4ODg//39/f//////9fX1//// - ///S0tL/VVVV/7Kysv//////9fX1/+bm5v/8/Pz/+/v7//7+/v//////0tLS/87Ozv/v7+//4eHh/+3t - 7f/z8/P/Z2dn/0VFRf/s7Owd5eXlAOPj4wDj4+MA4+PjAOPj4wDj4+MA4+PjAOPj4wBiYmIAYmJiAGJi - YgBiYmIAYmJiAGJiYgBiYmIAYmJiAGJiYgBgYGBsJSUl/9XV1f/y8vL/yMjI/76+vv/V1dX/4uLi/8rK - yv/c3Nz/+vr6/+np6f/j4+P/2tra/+/v7////////////97e3v/ExMT/xsbG/1xcXP90dHT/paWl/5+f - n//w8PD/zMzM/7e3t////////////+np6f/8/Pz////////////4+Pj/7e3t/+zs7P/29vb///////// - ///z8/P/8/Pz/+Tk5P/v7+/////////////7+/v/8/Pz/+Xl5f/l5eX///////////////////////X1 - 9f/Hx8f/9vb2//////////////////Hx8f/R0dH/7e3t//f39////////Pz8///////8/Pz/8/Pz/+/v - 7//i4uL//Pz8///////////////////////6+vr/7u7u//39/f/n5+f/+Pj4//////////////////// - /////////f39/+/v7//i4uL/4+Pj//z8/P///////////4mJif+cnJz/0tLS////////////6+vr/+jo - 6P/+/v7/+/v7//39/f//////z8/P/9DQ0P/r6+v/5+fn//Pz8/9wcHD/PT09/9PT0wDNzc0AzMzMAMzM - zADNzc0Azc3NAM3NzQDNzc0Azc3NAEJCQgBCQkIAQkJCAEJCQgBCQkIAQkJCAEJCQgBCQkIAQUFBAD09 - PW84ODj/r6+v/+Xl5f/s7Oz/zs7O/8DAwP/Ozs7/6Ojo/9XV1f/V1dX//f39//Ly8v/g4OD/4+Pj//Dw - 8P///////////97e3v+pqan/ysrK/4GBgf9cXFz/lJSU/5qamv/q6ur/0NDQ/7Kysv/5+fn//////+rq - 6v/6+vr////////////8/Pz/7+/v/+jo6P/19fX////////////7+/v/8PDw/93d3f/09PT///////// - ////////9fX1/9vb2//s7Oz//////////////////////+/v7//Hx8f//Pz8/////////////////+7u - 7v/X19f/8PDw//j4+P/////////////////+/v7/9vb2/+bm5v/l5eX///////////////////////// - ///5+fn/8fHx//n5+f/n5+f//////////////////////////////////f39//Dw8P/q6ur/09PT//// - //+cnJz/aWlp//Dw8P/5+fn/2NjY//b29v//////7+/v/+fn5//8/Pz//Pz8//z8/P//////6enp/+vr - 6//p6en/8vLy/2tra/9kZGTX19fXANXV1QDY2NgA29vbANvb2wDb29sA29vbANvb2wDb29sAERERABER - EQAREREAERERABEREQAREREAEBAQABAQEAAPDw8ACQkJUJWVlf/b29v/x8fH/87Ozv/m5ub/19fX/9TU - 1P/R0dH/6Ojo/9nZ2f/U1NT//f39//X19f/o6Oj/5OTk/+vr6////////////+fn5/+pqan/39/f/6Sk - pP9KSkr/enp6/5+fn//Nzc3/zMzM/76+vv/s7Oz//////+np6f/4+Pj/////////////////8PDw/+Li - 4v/29vb/////////////////8/Pz/9jY2P/y8vL/////////////////9PT0/9bW1v/y8vL///////// - /////////////+rq6v/Ly8v//////////////////////+3t7f/X19f/8fHx//v7+/////////////// - ////////+vr6/9/f3//l5eX////////////////////////////4+Pj/8fHx//b29v/q6ur///////// - //////////////////////////////T09P/d3d3/r6+v/1NTU//CwsL//Pz8///////q6ur/0dHR//v7 - +///////8PDw/+Xl5f/8/Pz//Pz8//v7+//29vb/7e3t//Pz8//29vb/ampq/4SEhK2GhoYAi4uLAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSUlIAUlJSAFJSUgBSUlIAUlJSAFJSUgBSUlIAUFBQAE5O - TgBJSUk1h4eH/+Li4v/u7u7/tLS0/8jIyP/m5ub/6urq/+bm5v/a2tr/4+Pj/9fX1//Q0ND/+fn5//// - ///s7Oz/4eHh/+jo6P////////////Dw8P+qqqr/3d3d/76+vv9OTk7/XV1d/5OTk//CwsL/2dnZ/8jI - yP/i4uL//////+rq6v/29vb///////7+/v//////9PT0/+Hh4f/19fX/////////////////8/Pz/9PT - 0//x8fH/////////////////8vLy/8/Pz//39/f//////////////////////+Li4v/R0dH///////// - /////////////+vr6//Y2Nj/8vLy//z8/P//////////////////////+vr6/9vb2//p6en///////// - ///////////////////09PT/8/Pz//Hx8f/s7Oz/////////////////////////////////19fX/9fX - 1/9JSUn/e3t7////////////9/f3///////i4uL/1dXV//39/f//////8fHx/+Xl5f/6+vr//f39//X1 - 9f/t7e3/9fX1//////9tbW3/X19frWVlZQBubm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGho - aABoaGgAaGhoAGhoaABoaGgAZ2dnAGRkZABeXl4AWVlZAFdXVzVqamr/19fX//Ly8v/b29v/tra2/9TU - 1P/v7+//7e3t//Ly8v/j4+P/7e3t/9ra2v/IyMj/9/f3///////w8PD/39/f/+bm5v////////////Pz - 8/+urq7/3t7e/9LS0v9cXFz/ODg4/4eHh/+6urr/4uLi/8vLy//n5+f//////+zs7P/09PT///////7+ - /v//////9vb2/9zc3P/09PT/////////////////+Pj4/9HR0f/p6en/////////////////7u7u/83N - zf/8/Pz//////////////////////97e3v/V1dX//////////////////////+rq6v/V1dX/8vLy//z8 - /P///////////////////////v7+/9jY2P/t7e3////////////////////////////09PT/9fX1/+/v - 7//x8fH//////////////////////+Li4v/Nzc3/dHR0/3Fxcf/e3t7/5+fn//Pz8///////+/v7//// - ///l5eX/8PDw//z8/P//////9PT0/+Pj4//29vb//f39/+/v7//w8PD//////3p6ev+Dg4OujY2NAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtr - awD///8ASUlJrVJSUv/b29v/9PT0/+fn5//q6ur/v7+//8/Pz//09PT/8fHx//X19f/29vb/9vb2/9vb - 2//IyMj/9fX1///////19fX/39/f/+Li4v/+/v7///////T09P+6urr/2dnZ/+bm5v9wcHD/KCgo/1tb - W/+tra3//Pz8/8XFxf/09PT//f39/+vr6//29vb///////39/f//////+Pj4/9ra2v/z8/P///////// - ////////+/v7/9DQ0P/n5+f/////////////////7u7u/8/Pz////////////////////////////9fX - 1//e3t7//////////////////////+bm5v/U1NT/8vLy/////////////////////////////////9LS - 0v/q6ur////////////////////////////y8vL/9/f3//Dw8P/5+fn////////////n5+f/z8/P/5mZ - mf9paWn/vr6+///////p6en/1tbW///////7+/v/+fn5///////7+/v/+fn5//j4+P//////9PT0/+Hh - 4f/y8vL/+fn5//Pz8///////ZGRk/39/f4GJiYkAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2trAP///zlsbGz/FxcX/83Nzf/y8vL/5OTk//X1 - 9f/q6ur/vLy8/9LS0v/5+fn/8PDw//Dw8P/19fX/+Pj4/+Pj4//Ly8v/7Ozs///////+/v7/5OTk/97e - 3v/6+vr///////f39/++vr7/z8/P//T09P+Pj4//Ly8v/yAgIP+4uLj//////8bGxv//////9PT0/+fn - 5//29vb///////39/f//////+vr6/97e3v/y8vL//////////////////////9zc3P/V1dX///////r6 - +v/9/f3/4ODg/9XV1f///////Pz8/+vr6//7+/v//////9fX1//j4+P///////////////////////Hx - 8f/W1tb/8PDw/////////////v7+//Ly8v/9/f3/+fn5/8HBwf/u7u7///////////////////////// - ///39/f/7Ozs/+fn5///////9/f3/76+vv+AgID/hoaG/8/Pz//19fX//Pz8//X19f/g4OD/09PT//f3 - 9//9/f3/+fn5//n5+f/6+vr/+fn5//n5+f/8/Pz/9PT0/+Tk5P/n5+f/+Pj4//////9UVFT/AAAAPgAA - AAAAAAAAAAAAEgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABvb28A////X4GBgf8gICD/xsbG//b29v/V1dX/3d3d/+vr6//v7+//w8PD/9HR0f/5+fn/8fHx/+/v - 7//09PT/+vr6//Hx8f/Nzc3/4eHh////////////5+fn/9zc3P/09PT///////z8/P/BwcH/wcHB/+Xl - 5f+enp7/U1NT/xMTE//d3d3/9vb2/83Nzf//////7e3t/+Pj4//4+Pj///////39/f//////6urq/8fH - x//r6+v///////X19f/s7Oz//////8PDw/+4uLj/7Ozs////////////y8vL/8rKyv//////4ODg/+Li - 4v///////////9XV1f/U1NT//v7+//Ly8v//////+fn5/+bm5v/a2tr/4ODg//r6+v//////8vLy//// - ////////8PDw/8zMzP//////////////////////8fHx/9bW1v/V1dX/9/f3/+Pj4/+qqqr/ZmZm/3l5 - ef/S0tL////////////29vb/5eXl/+np6f/q6ur/9/f3//7+/v/5+fn/+fn5//v7+//6+vr/+fn5//b2 - 9v/5+fn/+/v7/+bm5v/g4OD//////56env8AAAA0AAAAAAAAAAAAAAAIAAAADwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAACPj49JlJSU/yoqKv/CwsL/5+fn/+3t - 7f/U1NT/z8/P/+Dg4P/09PT/09PT/9HR0f/39/f/8vLy/+/v7//v7+////////z8/P/T09P/2NjY//// - ////////7+/v/9ra2v/u7u7////////////b29v//////+bm5v/BwcH/WFhY/zAwMP/9/f3/2NjY/+Li - 4v//////8vLy/9/f3//v7+/////////////09PT/4uLi/8vLy//w8PD//Pz8/+Tk5P/o6Oj//////9fX - 1//Hx8f/39/f//v7+///////x8fH/97e3v//////9PT0//Dw8P/+/v7//////+bm5v/j4+P///////z8 - /P/b29v/6Ojo//j4+P/Kysr/vr6+/+np6f/d3d3/+/v7////////////+Pj4/+fn5/////////////// - ///b29v/+vr6///////AwMD/cXFx/2tra/+Dg4P/09PT//39/f///////v7+///////w8PD/5ubm//n5 - +f//////+/v7//j4+P/5+fn/+/v7//7+/v/5+fn/9/f3//b29v/5+fn/+/v7/+vr6///////qamp/wAA - AFcAAAAAAAAAAAAAAAAAAAAQAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAUAAAAAObm5jp7e3v/EBAQ/+Dg4P/i4uL/0dHR//X19f/d3d3/xsbG/9XV1f/5+fn/3t7e/87O - zv/z8/P/+Pj4/+/v7//39/f////////////b29v/zs7O//z8/P//////9vb2/9ra2v/k5OT///////// - //////////////Dw8P/BwcH/Ozs7/zo6Ov/e3t7/zc3N//7+/v//////2dnZ/9PT0//Y2Nj/2tra//n5 - +f/39/f/zs7O/8zMzP/9/f3///////Hx8f/f39//9fX1//v7+//w8PD/5+fn//f39//+/v7/wMDA/9zc - 3P/v7+//2NjY/7+/v/+urq7/1tbW/8/Pz/+oqKj/4+Pj/+zs7P+5ubn/1dXV///////BwcH/jo6O/6qq - qv/MzMz/7u7u//z8/P/6+vr/9PT0/+vr6//09PT/+fn5/9/f3///////5+fn/0BAQP80NDT/ioqK/9zc - 3P/////////////////8/Pz//v7+///////z8/P/5eXl/+vr6//9/f3/+Pj4//b29v/7+/v//v7+//39 - /f/19fX/9PT0//b29v/29vb/9/f3//////+dnZ3/AAAAgQAAAAAAAAAAAAAAAAAAAAkAAAAKAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACurq4ApKSkRJOTk/8QEBD/0dHR//f3 - 9/+9vb3/y8vL//j4+P/o6Oj/zMzM/9HR0f/29vb/5OTk/87Ozv/y8vL//Pz8//b29v/+/v7///////// - ///m5ub/ycnJ/+3t7f///////////9/f3//e3t7//f39///////////////////////Ozs7/FhYW/1BQ - UP/Hx8f/1NTU//T09P/Y2Nj/6+vr/87Ozv/Pz8//3Nzc/+Dg4P/+/v7/6enp/8vLy//X19f///////// - //////////////Ly8v/Pz8//o6Oj/6SkpP+ysrL/bGxs/2pqav+AgID/X19f/zAwMP9QUFD/fn5+/zIy - Mv9gYGD/f39//4mJif+Tk5P/nZ2d/9nZ2f+6urr/m5ub/7Gxsf/Y2Nj//v7+///////r6+v/wcHB/9jY - 2P/29vb//////+Hh4f87Ozv/IiIi/2NjY/+goKD/zs7O/+7u7v/////////////////7+/v/+vr6//v7 - +//y8vL/5eXl/+3t7f/9/f3/9PT0//r6+v/+/v7//Pz8//n5+f/29vb/9vb2//f39//09PT//////8XF - xf9CQkI3AAAAAAAAABEAAAAGAAAACwAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAFNTUwBKSko4ioqK/x8fH//U1NT/+/v7/97e3v/BwcH/urq6/+3t7f/19fX/4uLi/9XV - 1f/o6Oj/5OTk/8zMzP/u7u7//v7+//39/f/8/Pz//v7+///////z8/P/ysrK/+Hh4f///////////+bm - 5v/W1tb/9vb2///////////////////////V1dX/VFRU/4uLi/+hoaH/xsbG//Dw8P/a2tr/5OTk/+np - 6f/Pz8//z8/P/+Li4v/t7e3//f39/+vr6//c3Nz/9/f3//Ly8v/IyMj/YmJi/xsbG/8bGxv/NjY2/zk5 - Of8jIyP/YGBg/3Nzc/9OTk7/OTk5/zg4OP9xcXH/VFRU/zk5Of86Ojr/dnZ2/5aWlv94eHj/m5ub//n5 - +f//////tra2/7Ozs//ExMT/+fn5//39/f/Nzc3/8fHx///////29vb/V1dX/xkZGf9bW1v/T09P/9ra - 2v//////x8fH/9HR0f////////////v7+//29vb/+/v7//7+/v/z8/P/4+Pj/+vr6//8/Pz/+/v7//39 - /f/8/Pz/+vr6//f39//29vb/9/f3//b29v//////r6+v/wAAAC4AAAAAAAAABwAAAAUAAAAHAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODgANfX1xtycnL/CQkJ/8fH - x//6+vr/4eHh/+zs7P/Pz8//ra2t/9jY2P//////9fX1/9zc3P/i4uL/39/f/87Ozv/r6+v///////// - ///8/Pz//f39////////////yMjI/8/Pz//5+fn///////Ly8v/V1dX/7e3t//////////////////// - ///w8PD/ZmZm/15eXv95eXn/x8fH/9LS0v/e3t7/4eHh/9vb2//r6+v/5ubm//Ly8v///////////8vL - y/+JiYn/UVFR/xoaGv8aGhr/ExMT/wcHB/8AAAD/AAAA/yYmJv9bW1v/fn5+/39/f/99fX3/XV1d/3V1 - df97e3v/NjY2/05OTv9vb2//e3t7/7i4uP9sbGz/Q0ND/52dnf/d3d3/sbGx/7m5uf/T09P/9fX1//n5 - +f//////6urq/21tbf8GBgb/TU1N/4KCgv/BwcH/7+/v////////////1dXV/97e3v////////////j4 - +P/4+Pj/+/v7//7+/v/09PT/3t7e/+3t7f//////+vr6//39/f/6+vr/+Pj4//b29v/29vb/9/f3//// - //+zs7P/AAAAMwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAt7e3DYODg/8mJib/tLS0//b29v/U1NT/1tbW//v7+//i4uL/qamp/8rK - yv///////f39/+vr6//u7u7/4ODg/8jIyP/r6+v////////////8/Pz//f39///////9/f3/0tLS/8jI - yP/j4+P////////////Z2dn/39/f///////////////////////29vb/Z2dn/2BgYP+IiIj/4ODg/97e - 3v/Ozs7/3d3d//j4+P/Ly8v/nZ2d/3x8fP91dXX/VFRU/x0dHf8vLy//Jycn/ycnJ/8HBwf/IyMj/1tb - W/90dHT/lZWV/29vb/8iIiL/DAwM/yMjI/8aGhr/AAAA/01NTf90dHT/Pz8//x4eHv9TU1P/nJyc/6mp - qf+MjIz/cHBw/0pKSv9sbGz/iIiI/7CwsP/4+Pj//////9/f3/+QkJD/Kysr/zo6Ov9+fn7/v7+///// - ///z8/P/ycnJ//7+/v//////6urq/9fX1//5+fn///////n5+f/5+fn/+fn5//7+/v/5+fn/39/f/+3t - 7f///////Pz8//r6+v/4+Pj/9vb2//b29v/39/f//////8rKyv8AAAAuAAAAAAAAAAUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAccHBxAaWlp/19f - X/+6urr/6Ojo/9nZ2f/W1tb/19fX//Hx8f/t7e3/vLy8/8PDw//19fX///////X19f/19fX/4uLi/8jI - yP/o6Oj////////////7+/v/+/v7////////////6enp/+Tk5P/X19f/6Ojo///////n5+f/1dXV//r6 - +v//////////////////////jY2N/3t7e/+Kior/tra2/8jIyP+5ubn/eHh4/1ZWVv9jY2P/YWFh/3h4 - eP8VFRX/AAAA/xkZGf9CQkL/Xl5e/4SEhP+srKz/vb29/8fHx//U1NT/zMzM/8rKyv+7u7v/oKCg/5CQ - kP9cXFz/Nzc3/0NDQ/8pKSn/AAAA/wAAAP8MDAz/h4eH/7a2tv95eXn/oaGh/4SEhP9hYWH/MzMz/8HB - wf//////i4uL/yEhIf9KSkr/d3d3/4CAgP/////////////////u7u7/ycnJ//f39///////8fHx/9jY - 2P/09PT///////39/f/7+/v//Pz8///////6+vr/2dnZ/+3t7f//////+/v7//r6+v/39/f/+fn5//n5 - +f//////xMTE/wAAADAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAVAAAABBMTEzpiYmL/S0tL/5ycnP/x8fH/z8/P/9fX1//k5OT/3t7e/9nZ - 2f/4+Pj/3Nzc/7u7u//j4+P///////r6+v/6+vr/7Ozs/9DQ0P/b29v////////////9/f3//Pz8//// - //////////////n5+f/c3Nz/2tra//j4+P/19fX/1tbW/+vr6/////////////////+/v7//gICA/5eX - l/+kpKT/v7+//4yMjP9ra2v/gICA/3Nzc/8yMjL/GBgY/01NTf9wcHD/mJiY/7y8vP/d3d3/3t7e/7Oz - s/+ampr/paWl/8TExP/i4uL/4ODg/+np6f/y8vL/8fHx//b29v/v7+//x8fH/5eXl/+Wlpb/ZGRk/w8P - D/8QEBD/V1dX/4WFhf+Hh4f/sLCw/7Ozs/+6urr/v7+//4ODg/8/Pz//SEhI/5CQkP+lpaX/6Ojo/9ra - 2v/9/f3////////////09PT/y8vL//b29v//////+Pj4/9bW1v/v7+////////7+/v/8/Pz//Pz8//// - ///6+vr/19fX/+zs7P//////+fn5//Pz8//y8vL/9PT0///////CwsL/AAAAOgAAAAAAAAAFAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENDQ0PoKC - gv9ra2v/tbW1/9jY2P/AwMD/y8vL/9vb2//w8PD/4eHh/9PT0//6+vr/7+/v/8DAwP/T09P/+/v7//z8 - /P/6+vr//f39/9bW1v/Ozs7//f39///////9/f3//Pz8//z8/P/8/Pz////////////v7+//2dnZ/+Hh - 4f/09PT/2tra/9jY2P/4+Pj/29vb////////////8PDw/7a2tv+FhYX/jo6O/21tbf9DQ0P/FhYW/zEx - Mf+ampr/7Ozs////////////9fX1/87Ozv+xsbH/w8PD/+Xl5f/i4uL/ysrK/8HBwf+9vb3/yMjI/9fX - 1//R0dH/xsbG/8/Pz//x8fH//f39/8fHx//IyMj/srKy/0VFRf8AAAD/a2tr/0VFRf9GRkb/vLy8/+3t - 7f+pqan/Pz8//zk5Of+FhYX/oqKi////////////39/f/8PDw//39/f////////////z8/P/xcXF/+/v - 7///////+vr6/9bW1v/s7Oz///////7+/v/8/Pz//Pz8///////7+/v/3Nzc/+jo6P/6+vr/7u7u/+vr - 6//s7Oz//////7e3t/8AAABGAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKChBTU1N+3p6ev//////5eXl/8nJyf+5ubn/vb29/+Li - 4v/r6+v/6enp/+Tk5P/t7e3/8/Pz/8/Pz//Kysr/8fHx//39/f///////////+Dg4P/IyMj/7e3t//// - /////////Pz8//z8/P/8/Pz//f39////////////7Ozs//T09P/6+vr/0tLS/9DQ0P///////////9XV - 1f9jY2P/V1dX/1ZWVv8oKCj/AAAA/xMTE/9SUlL/qamp/+Tk5P/x8fH/1dXV/729vf+7u7v/zMzM/+Tk - 5P/j4+P/3Nzc/+Hh4f/m5ub/6Ojo/9bW1v/U1NT/z8/P/93d3f/g4OD/wsLC/7Ozs//Kysr/3t7e/7e3 - t//BwcH/kZGR/zExMf8AAAD/BwcH/ygoKP88PDz/Ly8v/0FBQf9ISEj/bGxs/4iIiP/19fX///////// - ////////6enp/8XFxf/r6+v////////////x8fH/xMTE/+/v7////////v7+/9jY2P/p6en///////// - ///8/Pz/+vr6///////+/v7/zc3N/9zc3P/4+Pj/8fHx/+7u7v//////ra2t/wAAAFUAAAAAAAAABQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - Mi4/Pz/4YGBg//Pz8//m5ub/7Ozs/9zc3P++vr7/vb29/9TU1P/h4eH/+vr6//Ly8v/l5eX/7u7u/9/f - 3//Ly8v/3t7e/////////////////+/v7//Jycn/2tra/////////////f39//z8/P/8/Pz///////// - ///29vb/7+/v//39/f///////////8/Pz/96enr/FxcX/ycnJ/+enp7/lZWV/zU1Nf9hYWH/t7e3//X1 - 9f/5+fn/8vLy/8bGxv+9vb3/4eHh//T09P/t7e3/5+fn/+Tk5P/i4uL/2dnZ/8DAwP+9vb3/wsLC/7q6 - uv+0tLT/vLy8/8HBwf/V1dX/ysrK/6ioqP+mpqb/n5+f/52dnf/CwsL/2dnZ/8HBwf+FhYX/Kioq/xIS - Ev8eHh7/FxcX/zAwMP9ZWVn/3t7e/////////////Pz8//39/f//////6+vr/7q6uv/l5eX///////// - ///x8fH/xsbG//Dw8P///////////9vb2//l5eX////////////7+/v/+fn5//j4+P/x8fH/zs7O/9ra - 2v/z8/P/8/Pz//////+xsbH/AAAAYAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAcCAgINx4eHvaJiYn/+/v7/9ra2v/b29v/5OTk//T0 - 9P/a2tr/xcXF/7y8vP/b29v//v7+//z8/P/m5ub/6urq/+Pj4//Ozs7/19fX//r6+v////////////// - ///U1NT/zMzM//T09P/////////////////29vb/6enp//Dw8P////////////X19f/g4OD/i4uL/zc3 - N/9oaGj/wsLC/93d3f9sbGz/bGxs//b29v///////f39/+Dg4P/Ozs7/3d3d///////6+vr/2tra/9vb - 2//q6ur/8fHx//Pz8//7+/v/9/f3/+rq6v/j4+P/3t7e/9ra2v/Hx8f/yMjI/87Ozv/FxcX/2NjY/+Pj - 4//Ly8v/pKSk/6SkpP/Kysr/6urq///////U1NT/UVFR/ygoKP83Nzf/Hh4e/w0NDf+Li4v/y8vL//// - ////////////////////////6Ojo/7+/v//g4OD////////////t7e3/xcXF//Ly8v///////////9zc - 3P/h4eH////////////4+Pj/8PDw//T09P/x8fH/1NTU/9vb2//s7Oz//////7Kysv8AAABoAAAAAAAA - AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA - ACVhYWEpJCQk83Fxcf/o6Oj/yMjI/9jY2P/d3d3/3Nzc//7+/v/z8/P/ycnJ/7i4uP/R0dH/7u7u//// - ///w8PD/5eXl/+Li4v/j4+P/2dnZ/+rq6v/////////////////o6Oj/wMDA/9fX1///////9/f3/+rq - 6v/7+/v////////////Ly8v/vLy8/5KSkv9nZ2f/TU1N/319ff+zs7P/Q0ND/4aGhv///////////9HR - 0f/Ozs7/3d3d/+rq6v/39/f/7Ozs/+Tk5P/n5+f/9/f3//T09P/s7Oz/4uLi/97e3v/b29v/5+fn//n5 - +f/7+/v/+vr6//39/f/39/f/4ODg/8rKyv+7u7v/09PT/9PT0//Nzc3/2NjY/62trf+ioqL/p6en/8fH - x/++vr7/XFxc/ykpKf8mJib/YGBg/0lJSf9SUlL/jo6O/+/v7/////////////r6+v/7+/v/6Ojo/8DA - wP/h4eH//v7+///////r6+v/ysrK//T09P///////////9/f3//g4OD////////////w8PD/7e3t//Pz - 8//s7Oz/2dnZ/+Dg4P//////srKy/wAAAHgAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE2NjYyw1NTXkWFhY//j4+P/Nzc3/t7e3/8vL - y//i4uL/4eHh//b29v//////2dnZ/8DAwP/Dw8P/29vb//z8/P/9/f3/7e3t/+zs7P/q6ur/3Nzc/93d - 3f//////////////////////3t7e/8zMzP/p6en////////////39/f/sbGx/7m5uf+UlJT/Wlpa/x4e - Hv+CgoL/tbW1/3Fxcf+3t7f//////+zs7P/MzMz/4ODg/+3t7f/r6+v///////v7+//m5ub/8fHx//// - ///09PT/7e3t/+3t7f/t7e3/7u7u//j4+P/6+vr/7+/v/+vr6//u7u7/8fHx/+zs7P/w8PD///////Hx - 8f/Q0ND/yMjI/8jIyP/Ozs7/z8/P/9DQ0P+3t7f/oaGh/8rKyv+jo6P/cHBw/z09Pf9wcHD/f39//3Bw - cP9lZWX/d3d3/87Ozv/5+fn/8fHx////////////5ubm/8LCwv/h4eH//v7+///////o6Oj/0dHR//X1 - 9f///////////+Hh4f/f39////////r6+v/t7e3/7u7u//Pz8//j4+P/5ubm//////+IiIj/AAAAdwAA - ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAJSUlLAsLC/iMjIz//////93d3f/X19f/s7Oz/7u7u//l5eX/5OTk/+zs7P//////8/Pz/9LS - 0v/Hx8f/09PT//Ly8v//////+fn5/+bm5v/r6+v/6+vr/9fX1//t7e3////////////y8vL/29vb//v7 - +//19fX/ysrK/97e3v++vr7/VVVV/25ubv9ra2v/XV1d/8TExP+5ubn/xMTE///////b29v/z8/P/+7u - 7v//////7e3t/+7u7v/y8vL/9vb2//Pz8//u7u7/6+vr/+zs7P/z8/P//f39//////////////////// - ///////////////////8/Pz/+fn5//r6+v/09PT/8/Pz/+np6f/z8/P//////9/f3//FxcX/x8fH/9PT - 0//e3t7/tbW1/5+fn/+ioqL/mJiY/0ZGRv9JSUn/eXl5/3Z2dv90dHT/ampq/62trf/s7Oz/2NjY//Hx - 8f//////6enp/8XFxf/i4uL////////////n5+f/1tbW//X19f///////////+Tk5P/i4uL/9/f3//X1 - 9f/t7e3/7u7u//Dw8P/w8PD/3t7e/0pKStQAAAB0AAAAOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTVEKysr9aCgoP//////2tra/+Hh - 4f/l5eX/wcHB/7m5uf/S0tL/29vb/+zs7P///////////+Pj4//S0tL/4+Pj//7+/v///////////+Pj - 4//m5ub/8PDw/+Hh4f/j4+P/3t7e/+7u7v//////0tLS/6Ojo//Q0ND/tbW1/1NTU/+Dg4P/d3d3/4uL - i//i4uL/ycnJ/87Ozv/7+/v/3d3d/+Xl5f///////Pz8/93d3f/j4+P/9/f3/+3t7f/q6ur/8PDw//b2 - 9v/6+vr///////////////////////////////////////////////////////////////////////j4 - +P/29vb//Pz8/+Pj4//g4OD////////////m5ub/yMjI/8vLy//Kysr/1tbW/7Ozs/+mpqb/kZGR/2ho - aP9RUVH/b29v/319ff91dXX/aWlp/6Wlpf/Q0ND/0dHR/9jY2P/8/Pz/6Ojo/8LCwv/g4OD//v7+//n5 - +f/n5+f/2tra//b29v///////////+jo6P/c3Nz/7Ozs//T09P/u7u7/7e3t///////d3d3/Tk5OqwAA - AFgAAAA/AAAAAAAAAAIAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAKzs7O25KSkrmwsLC//f39//S0tL/2NjY/9jY2P/t7e3/2tra/7i4uP+8vLz/4eHh//j4 - +P///////////+Xl5f/l5eX////////////+/v7//////+rq6v/n5+f/7u7u/9bW1v/8/Pz//////7a2 - tv98fHz/4eHh/4mJif8uLi7/ubm5/6ampv94eHj/8vLy///////z8/P/1tbW/9vb2//i4uL//////+zs - 7P/Z2dn/19fX/+jo6P/19fX/+fn5//z8/P////////////////////////////////////////////// - ///////////////////////////////////////////////////+/v7//Pz8/+fn5//k5OT/8fHx//// - ////////1NTU/7i4uP/Gxsb/19fX/7e3t/+lpaX/h4eH/0BAQP9MTEz/cHBw/4aGhv+Li4v/YWFh/9DQ - 0P//////x8fH/8fHx//g4OD/39/f/8zMzP/g4OD//v7+/+7u7v/p6en/3t7e//z8/P///////////+Tk - 5P/W1tb/5+fn//T09P/t7e3//////+rq6v9iYmLMAAAAbgAAACYAAAAAAAAAEgAAAAwAAAACAAAADgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhIiIif0ZGRv+ZmZn/ysrK/+np - 6f/Q0ND/2dnZ/8/Pz//y8vL/8vLy/7u7u/+5ubn/7e3t//Dw8P///////////+Tk5P/e3t7/+/v7//// - ///9/f3///////Ly8v/Gxsb/6+vr/+np6f/U1NT/dXV1/8PDw/9/f3//T09P/6+vr/+VlZX/wMDA//// - ////////3d3d/97e3v/5+fn/7Ozs//Ly8v/Z2dn/1tbW/+Tk5P/8/Pz///////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////r6+v/o6Oj/4uLi//T09P//////+Pj4/8XFxf+xsbH/wsLC/8bG - xv+IiIj/cHBw/z8/P/89PT3/dHR0/42Njf+IiIj/fHx8/+Tk5P//////3Nzc/8zMzP/T09P/zc3N/87O - zv/s7Oz/+/v7/+rq6v/t7e3/4eHh////////////9fX1/93d3f/c3Nz/4uLi/+7u7v//////6urq/zU1 - NfkAAACRAAAAKgAAAAAAAAAAAAAADwAAABAAAAAVAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAACIHBweRPT09/5iYmP+3t7f/+Pj4/+Dg4P/S0tL/2tra/9TU1P/r6+v//////9XV - 1f+3t7f/7Ozs/+rq6v/39/f///////Dw8P/i4uL/9/f3///////39/f//f39/9/f3//FxcX/0NDQ/4qK - iv+oqKj/bW1t/zg4OP+QkJD/n5+f/8jIyP//////7u7u/+Pj4//l5eX//////+Xl5f/g4OD/5+fn/+zs - 7P/5+fn///////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///39/f/5eXl/+Pj4//7+/v//////+Xl5f+zs7P/tbW1/76+vv+SkpL/iYmJ/0lJSf8gICD/ZGRk/6Oj - o/9/f3//WFhY/+Pj4///////6Ojo/9/f3//R0dH/urq6/8fHx//4+Pj/8fHx/+3t7f/29vb/4uLi//// - ///7+/v/7+/v/+Dg4P/i4uL/3d3d///////g4OD/VlZW/wAAAGQAAAAaAAAAAAAAAAAAAAAAAAAABAAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAJ5XV1f/i4uL/7i4 - uP/h4eH/5+fn/+zs7P/V1dX/8PDw/+zs7P/n5+f//////+Dg4P+0tLT/5+fn/+fn5//r6+v///////j4 - +P/Y2Nj/6Ojo///////FxcX/1dXV//j4+P+SkpL/lJSU/1ZWVv8JCQn/enp6/8PDw//n5+f//////+/v - 7//x8fH/6+vr///////R0dH/y8vL/+rq6v/39/f///////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////8fHx/9vb2//j4+P///////// - //+/v7//0tLS/7m5uf+goKD/mJiY/1xcXP8TExP/SEhI/4+Pj/9+fn7/T09P/9ra2v//////4uLi/+fn - 5//T09P/tbW1/8HBwf/y8vL/8PDw///////39/f/39/f//b29v/9/f3/6+vr/9/f3//o6Oj/+Pj4/8rK - yv+RkZH/FxcXeQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAQAAAAHAAAAslZWVv+kpKT/3t7e/+Li4v+3t7f/1NTU//Pz8//h4eH/+vr6//Dw - 8P/X19f//////+rq6v+1tbX/39/f//r6+v/Dw8P/p6en///////r6+v/tLS0/9vb2///////ZmZm/2dn - Z/88PDz/Ly8v/6enp//5+fn/7u7u/+Hh4f/09PT//////+np6f/j4+P/0NDQ/8nJyf/8/Pz///////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////+Pj4//Y2Nj/+vr6///////Gxsb/ysrK/7m5uf+Tk5P/n5+f/3x8 - fP8bGxv/RkZG/4eHh/9mZmb/W1tb/87Ozv/w8PD/29vb/+fn5//Z2dn/srKy/8fHx//09PT/+Pj4//// - ///m5ub/0dHR//Dw8P/6+vr/6enp/9zc3P//////3d3d/3l5ef8eHh6rAAAAAgAAAAABAQEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAABYAAADFZGRk/5yc - nP/n5+f//////+Xl5f+7u7v/uLi4/+3t7f/u7u7/8fHx//f39//W1tb/8/Pz//Ly8v/Kysr/8/Pz/4aG - hv/Ly8v/8/Pz/7u7u//r6+v//////z4+Pv9HR0f/dnZ2/2BgYP/Kysr//////+7u7v/t7e3///////// - ///h4eH/zs7O/+jo6P/W1tb///////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////T0 - 9P/X19f/6Ojo//b29v/c3Nz/1NTU/729vf+CgoL/pKSk/5iYmP85OTn/HBwc/0dHR/83Nzf/bGxs/8fH - x//i4uL/5eXl/+Tk5P/g4OD/ysrK/9HR0f/Y2Nj/6enp///////h4eH/z8/P/+vr6//6+vr/5eXl/+3t - 7f/w8PD/bGxs/1RUVKkAAAAAAgICAAQEBAAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAN57e3v/v7+//6mpqf/d3d3////////////IyMj/u7u7/9zc - 3P/m5ub/9PT0///////c3Nz/6urq//////+np6f/paWl/+Tk5P+UlJT/8vLy//////8XFxf/GRkZ/4uL - i/+zs7P/5+fn///////s7Oz//Pz8////////////2dnZ/9DQ0P/8/Pz/9fX1/+np6f///////f39//z8 - /P/9/f3///////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////g4OD/4ODg/+3t7f//////8PDw/6ys - rP+BgYH/srKy/2dnZ/8gICD/EBAQ/zo6Ov9iYmL/lJSU/7Gxsf/Ozs7/6enp/+Xl5f/e3t7/xMTE/9LS - 0v/U1NT/2dnZ//n5+f/n5+f/zc3N/+np6f/7+/v/7u7u/+Xl5f96enr/ZmZm4QAAABACAgIABAQEAAQE - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAy1xc - XP/IyMj/6urq/8nJyf+6urr/8vLy///////z8/P/xcXF/8TExP/c3Nz/9/f3////////////vb29/2lp - af+kpKT/lJSU///////t7e3/LS0t/wAAAP9jY2P/0NDQ/+7u7v//////9vb2////////////9fX1/9PT - 0//Y2Nj////////////e3t7/9fX1///////8/Pz//Pz8//z8/P/9/f3///////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////09PT/2tra/9bW1v///////v7+/66urv+Li4v/nZ2d/4qKiv85OTn/DQ0N/0ZG - Rv91dXX/mZmZ/7Kysv+/v7//3d3d/9vb2//Pz8//zc3N/+Pj4//Q0ND/0dHR/+7u7v/m5ub/z8/P/+rq - 6v/8/Pz/7u7u/25ubv94eHj/BAQENAoKCgAMDAwADQ0NAA0NDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAADUiYmJ/9DQ0P+srKz//v7+/83Nzf+1tbX/3t7e//// - ////////09PT/7e3t//CwsL///////7+/v9vb2//lpaW/8/Pz///////0NDQ/yAgIP8AAAD/VFRU/8fH - x///////+Pj4//b29v/4+Pj/6+vr/+np6f/c3Nz/4+Pj////////////8PDw/+Li4v///////Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//v7+//////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////4ODg/8/P - z////////////7Gxsf+enp7/sbGx/5aWlv9GRkb/CgoK/zc3N/9ubm7/nJyc/+np6f/k5OT/zs7O/9TU - 1P/MzMz/ycnJ/+Dg4P/W1tb/09PT/+Pj4//p6en/3t7e/9fX1///////cXFx/3x8fP8hISFKJycnACgo - KAApKSkAKSkpACkpKQApKSkAKSkpACkpKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAA - AN6Wlpb/2dnZ/6enp//T09P/5ubm/+Dg4P/BwcH/1NTU/+rq6v//////9vb2/9bW1v+1tbX/SkpK/66u - rv/Nzc3/nZ2d/52dnf8JCQn/CwsL/7S0tP////////////Hx8f/x8fH/6urq/+jo6P/t7e3/3Nzc/+Li - 4v////////////z8/P/m5ub/8PDw///////8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//v7+//// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////5+fn/83Nzf/8/Pz//////7+/v/+srKz/tLS0/6Wl - pf9hYWH/AwMD/ywsLP9lZWX/o6Oj//7+/v/i4uL/zMzM/9fX1//Ly8v/uLi4/9fX1//f39//19fX/+np - 6f/39/f/6enp/+Hh4f9jY2P/fX19/ygoKForKysALCwsACwsLAAsLCwALS0tAC0tLQAtLS0ALS0tAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAARAAAA342Njf/Dw8P/zs7O/8/Pz//Dw8P/zMzM/9nZ - 2f/Q0ND/0dHR/+Tk5P/v7+//29vb/2RkZP94eHj/wsLC/5CQkP9RUVH/AAAA/yYmJv/Jycn///////// - ////////4+Pj/+Xl5f/s7Oz/+vr6/+Pj4//i4uL/////////////////9vb2/+rq6v/29vb///////z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//f39//////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////6urq/87Ozv/+/v7//////87Ozv+zs7P/rKys/56env92dnb/EhIS/y0tLf9iYmL/ioqK//n5 - +f/t7e3/1NTU/+Pj4//Hx8f/ra2t/9bW1v/j4+P/3t7e//Ly8v/x8fH/5OTk/0xMTP9MTEz/X19fZl5e - XgBdXV0AXV1dAF1dXQBdXV0AXV1dAF1dXQBdXV0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA - ADYAAADzoaGh/56env//////6+vr/8TExP/BwcH/vb29/9XV1f/n5+f/xMTE/6SkpP+AgID/sbGx//Pz - 8/9fX1//ExMT/yMjI/+AgID/4ODg////////////39/f/8fHx//v7+/////////////c3Nz/6Ojo//// - ///+/v7//Pz8//z8/P/9/f3//Pz8//r6+v/9/f3//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//7+/v////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////8vLy/97e3v/6+vr/+vr6/9nZ - 2f+0tLT/zMzM/7i4uP9paWn/CwsL/y0tLf9nZ2f/gICA/9zc3P/r6+v/4ODg/+fn5//ExMT/oaGh/9PT - 0//x8fH/z8/P/87Ozv/+/v7/dHR0/xcXF//AwMBzvLy8ALu7uwC7u7sAu7u7ALu7uwC7u7sAu7u7ALu7 - uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAXAAAAP+urq7/qKio/6mpqf/g4OD/+vr6/8vL - y//X19f/yMjI/5WVlf+kpKT/vr6+/7Gxsf/q6ur/XFxc/wAAAP8gICD/sLCw////////////9PT0/9nZ - 2f/W1tb/6urq//Dw8P/x8fH/4+Pj/+7u7v///////f39//z8/P/8/Pz//Pz8//z8/P/9/f3//f39//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//39/f/+/v7///////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////8vLy/+Xl5f//////+/v7/9fX1/+7u7v/4ODg/7S0tP94eHj/HBwc/zU1 - Nf9HR0f/KCgo/7Gxsf/09PT/3Nzc/+Xl5f/BwcH/ra2t/9vb2//BwcH/6enp//////+bm5v/Li4u/66u - rm2pqakAp6enAKenpwCnp6cAp6enAKenpwCnp6cAp6enAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAABpAAAA/3Fxcf/g4OD/i4uL/0dHR//39/f//////7u7u/+enp7/y8vL/62trf+hoaH/2NjY/yws - LP8AAAD/fHx8/8/Pz//z8/P/8fHx//Dw8P/Nzc3/0dHR//b29v/39/f/7e3t/9fX1//m5ub///////// - ///8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9/f3///////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////7+/v//j4 - +P///////Pz8/9bW1v+2trb/5ubm/6+vr/+EhIT/Ly8v/yYmJv9HR0f/MjIy/7a2tv/u7u7/5+fn//b2 - 9v+zs7P/p6en/76+vv+8vLz//////52dnf8qKir/uLi4drOzswCxsbEAsbGxALGxsQCxsbEAsbGxALGx - sQCxsbEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4LCwv+g4OD/9HR0f+ysrL/qqqq/5ub - m/+RkZH/y8vL///////Q0ND/mpqa/4mJif8gICD/Ghoa/5KSkv/5+fn/+vr6/+Pj4//q6ur/ysrK/+Dg - 4P/9/f3/6urq//Ly8v/29vb/8vLy//Pz8//s7Oz/+Pj4///////8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//v7+//////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////6+vr//f39////////////97e3v+9vb3/x8fH/5ub - m/+Pj4//PDw8/zw8PP9KSkr/NTU1/729vf/AwMD/zc3N/9XV1f+jo6P/x8fH/6+vr//19fX/rq6u/ygo - KP+goKB2m5ubAJqamgCampoAmpqaAJqamgCampoAmpqaAJqamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAhgoKCvyKior/mJiY/6ioqP//////srKy/3Nzc/+9vb3/ycnJ/5aWlv+AgID/Li4u/yoq - Kv+cnJz/0dHR/97e3v/f39//7e3t/9bW1v/j4+P///////b29v/5+fn/+/v7/+vr6//19fX///////f3 - 9//q6ur/7+/v/////////////Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//f39//////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///+/v7/6urq//v7+////////////+Tk5P/Ly8v/ycnJ/56env+Hh4f/NDQ0/yQkJP9+fn7/VFRU/4SE - hP+ysrL/wMDA/6SkpP+pqan/tra2//////+pqan/Hx8f/5KSknqPj48Ajo6OAI6OjgCOjo4Ajo6OAI6O - jgCOjo4Ajo6OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIUFBSALCws4H5+fv91dXX/gYGB/3l5 - ef+3t7f//////8TExP9aWlr/h4eH/4GBgf8yMjL/iYmJ/9LS0v/29vb/x8fH/9jY2P/Y2Nj/1dXV//7+ - /v/6+vr/9vb2//Pz8//w8PD/9/f3//X19f/z8/P//f39///////u7u7/6urq//j4+P///////Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//39/f////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////9/f3/6+vr//z8/P//////+fn5/+Tk - 5P/W1tb/0NDQ/6Wlpf+Kior/MjIy/x0dHf9hYWH/TExM/4eHh/+2trb/0NDQ/6mpqf+xsbH/z8/P/8vL - y/9XV1f/g4ODeoKCggCBgYEAgYGBAIGBgQCBgYEAgYGBAIGBgQCBgYEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAPB4eHngxMTH/YmJi/4WFhf9eXl7/lJSU/+np6f+vr6//eHh4/4KCgv+ZmZn/LS0t/29v - b//Hx8f/3d3d/+Xl5f/+/v7/4uLi/7+/v//u7u7/6+vr/+jo6P/09PT/9/f3//Ly8v/y8vL/9PT0//T0 - 9P/z8/P/+vr6///////39/f/6urq/+/v7/////////////z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//39 - /f/+/v7///////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////7+/v/6Ojo//39/f//////8/Pz/+Li4v/e3t7/29vb/6Kiov+Ojo7/IyMj/zg4 - OP+Ojo7/RUVF/1FRUf+ZmZn/v7+//8HBwf/S0tL/w8PD/3R0dP+BgYF0goKCAIKCggCCgoIAgoKCAIKC - ggCDg4MAg4ODAIODgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAAAgAAAAYB4eHv90dHT/UVFR/3Z2 - dv//////1tbW/0lJSf8+Pj7/YmJi/zw8PP9tbW3/39/f/7+/v//c3Nz/6enp/+3t7f/Nzc3/7e3t/+zs - 7P/p6en/7Ozs/+Li4v/k5OT/8vLy//j4+P/z8/P/9PT0//T09P/z8/P/+/v7///////+/v7/7e3t/+rq - 6v/4+Pj///////7+/v/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//v7+//////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////5+fn/6urq//// - ////////7u7u/+Hh4f/a2tr/29vb/8PDw/+kpKT/Kysr/1ZWVv+Dg4P/VVVV/3R0dP+FhYX/mJiY/+fn - 5//x8fH/V1dX/3Nzc3t2dnYAd3d3AHd3dwB3d3cAeXl5AHt7ewB8fHwAfHx8AAAAAAAAAAAAAAAAAAAA - AAAAAAARAAAAPAAAAAALCwteQEBA/25ubv9SUlL/ubm5/8jIyP9tbW3/WFhY/4GBgf9KSkr/XV1d/+7u - 7v/Z2dn/xMTE/+zs7P//////4ODg/+Li4v/t7e3/5OTk/+Xl5f/v7+//8/Pz/+fn5//f39//5eXl//Dw - 8P/5+fn/9fX1//Hx8f/29vb//f39////////////9/f3/+rq6v/v7+/////////////8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//v7+//8/Pz//v7+//////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////4+Pj/6urq////////////6+vr/+Hh4f/j4+P/5eXl/8fH - x/+cnJz/ICAg/2VlZf91dXX/d3d3/4mJif9dXV3/oKCg//////9tbW3/RkZGd0xMTABPT08AUFBQAFFR - UQBTU1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAAAqAAAAACQkJFhCQkL/LCws/2tr - a/+4uLj/gYGB/2RkZP+3t7f/b29v/z09Pf+8vLz/4eHh/8jIyP/5+fn//////9DQ0P/u7u7//////+rq - 6v/m5ub/5OTk/97e3v/l5eX/9/f3//f39//l5eX/4ODg/+Tk5P/x8fH/9/f3//T09P/4+Pj/+/v7//39 - /f///////////+7u7v/p6en/+Pj4///////8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz///////39/f/8/Pz//Pz8//z8/P/8/Pz//Pz8//7+ - /v////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///19fX/7Ozs////////////6Ojo/+Pj4//V1dX/2NjY/+rq6v+QkJD/Kysr/3Jycv9WVlb/hYWF/5iY - mP+UlJT/v7+//4GBgf9ERESJTExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAANgAAACEhISEAHBwccSAgIP9nZ2f/dnZ2/1hYWP8zMzP/yMjI/4uLi/9ra2v/zc3N/87O - zv+1tbX/19fX//r6+v/39/f/6enp/+jo6P/v7+///Pz8//f39//q6ur/5+fn/9vb2//b29v/7e3t//z8 - /P/09PT/4+Pj/+Dg4P/k5OT/9PT0//z8/P/4+Pj/+vr6//z8/P/+/v7///////f39//q6ur/7+/v//// - /////////Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//// - ///x8fH/9vb2///////8/Pz//Pz8//z8/P/8/Pz//Pz8//39/f////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////09PT/7u7u///////7+/v/5+fn/+Xl - 5f/Nzc3/29vb/+/v7/99fX3/SEhI/2hoaP9BQUH/vb29/8LCwv+ampr/aWlp/w4ODp8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAALCIiIgAcHByEPDw8/4yM - jP9zc3P/Gxsb/4SEhP9kZGT/Y2Nj/8bGxv/19fX/3Nzc/9HR0f/Y2Nj/1tbW/9XV1f/x8fH/9vb2/+jo - 6P/r6+v/+Pj4//j4+P/09PT/6+vr/+Li4v/U1NT/4ODg//b29v/8/Pz/8PDw/+Xl5f/i4uL/5+fn//f3 - 9///////+vr6//v7+//9/f3////////////u7u7/6urq//j4+P///////Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz///////T09P/4+Pj//v7+//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/+/v7///////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////y8vL/8fHx///////29vb/6urq/+Li4v/FxcX/5+fn/+jo6P9qamr/aWlp/15e - Xv9lZWX/0tLS/8TExP+NjY3/AAAAtgAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAADgAAAAkWlpaAFRUVJ4oKCj/fX19/4qKiv+hoaH/vb29/xkZGf+lpaX/6Ojo/9DQ - 0P/AwMD/8fHx/8XFxf/BwcH/2dnZ/+Tk5P/j4+P/6urq/+3t7f/p6en/9PT0//b29v/19fX/8/Pz/+np - 6f/Y2Nj/09PT/+fn5//9/f3//Pz8//Ly8v/l5eX/5OTk/+rq6v/4+Pj///////r6+v/6+vr//v7+//// - ///39/f/6enp/+/v7/////////////z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz///////39/f/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9/f3//v7+//// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////x8fH/8vLy//// - ///39/f/6+vr/9zc3P/CwsL/6+vr/9bW1v9mZmb/lpaW/1VVVf+Dg4P/6+vr/4+Pj/8EBASMAAAAAQAA - ADsAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAADqmpqYAn5+fmy4u - Lv+kpKT/xMTE/8DAwP89PT3/g4OD/93d3f/r6+v/vr6+/9zc3P/W1tb/vb29/9fX1//n5+f/5OTk/+Hh - 4f/h4eH/5eXl/+fn5//q6ur/8vLy//n5+f/x8fH/9PT0//T09P/m5ub/1tbW/9jY2P/y8vL//v7+//j4 - +P/z8/P/6enp/+Xl5f/r6+v/+vr6///////8/Pz/+/v7////////////7u7u/+rq6v/5+fn///////z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//f39//////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////w8PD/8fHx///////+/v7/7e3t/+Xl5f/X19f/7+/v/7e3 - t/90dHT/qKio/1NTU//FxcX/paWl/wAAAFwAAAAAAAAADQAAAEIAAAAkAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAoAAAALAAAAABERESSdnZ2/6ysrP+YmJj/YGBg/4ODg//c3Nz/8PDw/7Cw - sP+9vb3/9fX1/+Dg4P/Z2dn/0dHR/9bW1v/n5+f/5eXl/+Tk5P/d3d3/5OTk/+Hh4f/i4uL/8PDw//r6 - +v/19fX/8PDw//f39//29vb/3t7e/9LS0v/f39//+vr6//39/f/4+Pj/9fX1/+jo6P/o6Oj/7u7u//f3 - 9////////Pz8//39/f//////9vb2/+np6f/x8fH////////////8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//39/f////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///u7u7/8vLy////////////+Pj4/+rq6v/Q0ND/7+/v/6SkpP+UlJT/h4eH/19fX/+wsLDpMzMzAAAA - ABYAAAAAAAAAAwAAAC4AAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAAASAAAAABYW - FraioqL/sLCw/0FBQf+3t7f/5OTk/9DQ0P/V1dX/ubm5/+Xl5f/Jycn/0dHR/+fn5//g4OD/0NDQ/9HR - 0f/Z2dn/4eHh/+jo6P/e3t7/39/f/+Dg4P/U1NT/4+Pj//b29v/6+vr/8vLy//Pz8//+/v7/8fHx/9jY - 2P/V1dX/6urq///////4+Pj/+Pj4//T09P/r6+v/6enp/+vr6//29vb///////z8/P/+/v7//Pz8/+3t - 7f/q6ur/+fn5///////8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//39/f////////////// - ///////////////////////////////////+/v7//v7+//7+/v/9/f36/f39+P39/f/9/f3//f39//7+ - /v/9/f3//Pz8//39/f/9/f3////////////////////////////w8PD/7+/v////////////+Pj4/9/f - 3//W1tb/2dnZ/7u7u/+fn5//sLCw/6Ojo60wMDAAEBAQIAAAAAcAAAAQAAAAAAAAABkAAAAbAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADoAAAATPDw8paampv+QkJD/oaGh/+Xl5f/Ozs7/3d3d/5yc - nP/IyMj/8PDw/+Xl5f/Ly8v/xcXF/9fX1//p6en/3t7e/9DQ0P/Pz8//3Nzc/+Tk5P/l5eX/4ODg/+Hh - 4f/U1NT/zs7O/+bm5v/39/f/8vLy/+/v7//4+Pj//////+3t7f/W1tb/2tra//Ly8v//////9vb2//n5 - +f/4+Pj/7Ozs/+bm5v/q6ur/9PT0//7+/v////////////X19f/q6ur/8vLy/////////////Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//39 - /f/9/f3//Pz8//z8/P/8/Pz/+/v7//z8/P/+/v7//v7+//39/f/9/f3//f39//39/f/8/Pz//Pz8//z8 - /P/8/Pz/+vr6//z8/P78/Pz9/Pz8//z8/P/8/Pz/+/v7//n5+f/39/f/9/f3//f39//6+vr//v7+//// - ///////////////////w8PD/6urq//7+/v//////8PDw/9HR0f/R0dH/19fX/+zs7P++vr7/eHh4gjk5 - OQBEREQFAAAAAwAAAAYAAAAAAAAAAAAAAA0AAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAXQAA - ABwKCgpngYGB/42Njf+3t7f/19fX/+np6f+2trb/vr6+/9ra2v+9vb3/0dHR/+Xl5f/U1NT/v7+//8XF - xf/d3d3/6urq/9ra2v/Pz8//4ODg/+Li4v/f39//5ubm/+fn5//g4OD/zc3N/9HR0f/q6ur/8/Pz/+7u - 7v/u7u7/+vr6//7+/v/k5OT/19fX/9/f3//6+vr//v7+//b29v/8/Pz/+fn5/+3t7f/n5+f/5+fn/+7u - 7v/6+vr///////7+/v/t7e3/6urq//r6+v///////f39//z8/P/8/Pz//v7+//7+/v/9/f3//f39//z8 - /P/+/v7//v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+/v7//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//r6 - +v/8/Pz/+/v7//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//v7 - +//5+fn/+fn5//r6+v/7+/v/+/v7//r6+v/5+fn/+/v7//j4+P/39/f/+fn5//v7+//r6+v/4eHh//Ly - 8v/+/v7/9vb2/97e3v/Kysr/6+vr/729vf8gICDCYmJiAG1tbQcAAAAKAAAAAAAAAAAAAAAAAAAAAAAA - AAwAAAARAAAAAAAAAAAAAAAAAAAAAAAAAD0AAAAvAAAALwAAAHxKSkrOysrK/9XV1f/Kysr/wsLC/7Ky - sv/X19f/0dHR/9PT0//Gxsb/tLS0/8nJyf/i4uL/zs7O/729vf/Kysr/5OTk/+Tk5P/c3Nz/3d3d/+Hh - 4f/a2tr/3Nzc/+np6f/q6ur/3Nzc/87Ozv/a2tr/8vLy//Hx8f/p6en/6+vr//j4+P/z8/P/2tra/9LS - 0v/l5eX//f39//7+/v/39/f/+/v7//v7+//x8fH/6Ojo/+bm5v/q6ur/+fn5///////39/f/5+fn/+/v - 7////////f39//r6+v/5+fn/+Pj4//f39//39/f/+Pj4//n5+f/5+fn/+Pj4//j4+P/6+vr/+vr6//n5 - +f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+vr6//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8 - /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/7+/v//Pz8//z8/P/7+/v/+fn5//j4+P/19fX/8/Pz//Ly - 8v/09PT/9PT0/+/v7//s7Oz/7e3t//X19f/z8/P/9fX1//j4+P/h4eH/zc3N/+Hh4f/U1NT//v7+/4CA - gNSYmJgAMjIyCwAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAANgAA - ACUAAAAlAAAAQgcHB3Tc3Nz//////+zs7P/ExMT/1NTU/9DQ0P/AwMD/zs7O/8vLy//Dw8P/vr6+/7y8 - vP/W1tb/3t7e/8TExP+9vb3/y8vL/+Hh4f/j4+P/4ODg/9fX1//Y2Nj/zs7O/9HR0f/h4eH/4uLi/9bW - 1v/R0dH/3Nzc//Dw8P/u7u7/4+Pj/+jo6P/z8/P/5OTk/8/Pz//R0dH/5ubm///////8/Pz/9vb2//v7 - +//9/f3/8fHx/+jo6P/p6en/7Ozs//f39//+/v7/7u7u/+np6f/4+Pj//Pz8//Pz8//19fX/9fX1//X1 - 9f/19fX/9fX1//X19f/19fX/9fX1//T09P/39/f/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//f3 - 9//6+vr///////7+/v/+/v7//v7+//39/f/8/Pz//Pz8//39/f/+/v7//v7+/////////////f39//j4 - +P/4+Pj//f39///////8/Pz/6Ojo/+vr6//q6ur/6+vr/+/v7//29vb/+Pj4//f39//7+/v/9fX1/97e - 3v/Hx8f/v7+//8bGxv/f39//9vb2/+np6f/4+Pj/o6Oj/5qamhk0NDQAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAigAAAC4AAAA4AAAAAKenp6i+vr7/rKys/9DQ - 0P/k5OT/5OTk/+3t7f/a2tr/w8PD/87Ozv/MzMz/vb29/7+/v//FxcX/29vb/8zMzP+3t7f/vLy8/9fX - 1//m5ub/4ODg/93d3f/X19f/0tLS/8XFxf/Kysr/2dnZ/9bW1v/Ozs7/y8vL/9fX1//p6en/6Ojo/+Dg - 4P/m5ub/6urq/9jY2P/ExMT/yMjI/+Li4v/z8/P/8vLy//Pz8//39/f/+vr6//j4+P/t7e3/6Ojo/+rq - 6v/z8/P/7e3t/+fn5//y8vL/9/f3//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9PT0//X1 - 9f/4+Pj/9vb2//b29v/29vb/9fX1//X19f/29vb/8/Pz//j4+P////////////z8/P/9/f3///////// - ///9/f3//Pz8//z8/P/8/Pz/+vr6//r6+v/8/Pz/+vr6/+np6f/MzMz/rq6u/8rKyv/4+Pj/8/Pz//n5 - +f/9/f3/9/f3//Ly8v/p6en/0NDQ/7+/v//FxcX/xMTE/8bGxv/b29v/5eXl/+jo6P////////////// - //+oqKj/JiYmwAICAn0AAABdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ACcAAACYAAAAjQAAAK4AAABWVlZWhaqqqv+VlZX/v7+//6enp/+RkZH/ra2t/7Kysv+3t7f/y8vL/8fH - x//b29v/29vb/8jIyP+8vLz/x8fH/97e3v/ExMT/uLi4/8bGxv/h4eH/5eXl/97e3v/g4OD/39/f/9bW - 1v/Kysr/ysrK/9LS0v/R0dH/09PT/9DQ0P/U1NT/6Ojo/+rq6v/i4uL/4+Pj/+Dg4P/IyMj/vb29/8XF - xf/a2tr/7Ozs/+np6f/q6ur/7+/v//j4+P/5+fn/7+/v/+jo6P/t7e3/4uLi/+Hh4f/39/f/9PT0//T0 - 9P/09PT/9PT0//Ly8v/y8vL/8fHx//Pz8//x8fH/8PDw//Dw8P/w8PD/8PDw//Hx8f/v7+//8fHx//n5 - +f//////8vLy/+Tk5P/s7Oz/8fHx/+3t7f/t7e3/8/Pz//r6+v/4+Pj/9PT0//X19f/39/f/5OTk/8fH - x/+7u7v/tLS0/729vf+9vb3/2dnZ//Ly8v/d3d3/0NDQ/7Kysv+oqKj/o6Oj/7Gxsf+7u7v/uLi4/9ra - 2v/s7Oz//////////////////////+Li4vvExMT/e3t77gkJCZ0AAABoAAAAdAAAAFoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAABQAAAACAAAAMAAAADkAAAA2pKSkJ8HB - wZeCgoL2b29v/1ZWVv9WVlb/dnZ2/4mJif+Li4v/paWl/7W1tf/BwcH/2NjY/9TU1P/X19f/1NTU/+rq - 6v/u7u7/x8fH/7u7u//R0dH/6Ojo/+Pj4//g4OD/5eXl/+Xl5f/c3Nz/zc3N/8rKyv/T09P/09PT/83N - zf/Kysr/1dXV/+Tk5P/f39//29vb/+Tk5P/e3t7/zMzM/8HBwf/Gxsb/39/f/+rq6v/g4OD/5+fn/+3t - 7f/u7u7/8fHx/+7u7v/p6en/6urq//Pz8//z8/P/6Ojo/+rq6v/t7e3/7e3t/+rq6v/s7Oz/6+vr/+3t - 7f/t7e3/7u7u/+3t7f/u7u7/9fX1//j4+P/n5+f/0tLS/7+/v//ExMT/2dnZ/+bm5v/u7u7/6+vr/+bm - 5v/l5eX/8fHx//f39//p6en/2NjY/87Ozv/MzMz/xsbG/7+/v//Hx8f/29vb/9/f3//Nzc3/srKy/62t - rf+np6f/np6e/7a2tv+Tk5PteHh4xmtra2dwcHA/o6OjIujo6Bi/v78yh4eHUUVFRWgVFRVpAAAAZQAA - AEoAAAAJFhYWAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAbAAAAEgAAAAAAAAAAAAAAAAAAABCurq4Ay8vLAMHBwQO8vLwwubm5bZycnNCFhYX/dHR0/2Rk - ZP9sbGz/ZmZm/3Z2dv95eXn/gYGB/6Wlpf+mpqb/p6en/8fHx//y8vL/4+Pj/8bGxv/T09P/4+Pj//Dw - 8P/r6+v/6urq/+/v7//z8/P/6urq/97e3v/h4eH/+Pj4/+zs7P/T09P/ysrK/+Li4v/w8PD/6enp/+Xl - 5f/s7Oz/6enp/9PT0//MzMz/5OTk//Pz8//t7e3/9vb2//7+/v/+/v7//f39//n5+f/y8vL/2NjY/+Dg - 4P//////9vb2/+Tk5P/o6Oj/7e3t/+bm5v/j4+P/5ubm/+/v7//6+vr/9vb2/+Pj4//Pz8//xcXF/7q6 - uv/AwMD/09PT/+7u7v/29vb/8PDw//Pz8//09PT/8/Pz/+3t7f/Z2dn/ysrK/8rKyv/BwcH/v7+//9DQ - 0P/f39//z8/P/8HBwf+xsbH/uLi4/5ycnP9ubm7rcnJy3GRkZK9QUFB5LCwsWQAAABwAAAAAenp6AH9/ - fwC0tLQACQkJAAAAAAoAAAAlAAAAPQAAADMAAAAVAAAAAAAAAAAAAAAAAAAADgAAAAkAAAAQAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAQAAA - AEoAAABQPDw8SV1dXRunp6chqamptpKSkv+IiIj/bm5u/z4+Pv9GRkb/WVlZ/2xsbP9tbW3/TExM/2Fh - Yf9lZWX/WVlZ/2tra/+ampr/ubm5/6CgoP+jo6P/vr6+/9vb2//W1tb/0tLS/9PT0//S0tL/1tbW/9fX - 1//BwcH/x8fH/83Nzf+9vb3/wcHB/8XFxf/Gxsb/0dHR/9PT0//MzMz/1NTU/8fHx//IyMj/0tLS/87O - zv/ExMT/u7u7/7y8vP+7u7v/wcHB/8rKyv+1tbX/s7Oz/9DQ0P/Jycn/vb29/9/f3//09PT/7+/v/+3t - 7f/f39//0tLS/8/Pz//MzMz/0NDQ/9jY2P/n5+f/////////////////8vLy/+vr6//o6Oj/29vb/9TU - 1P+ysrL/qKio/5+fn/+np6f/tbW1/62trf+hoaH/mZmZ/52dnf+ysrL6goKC2mBgYM49PT2jEBAQUAAA - ABgAAAAAAAAABgAAAAAAAAAAAAAACQAAACMAAABAAAAARgAAAF8AAACFAAAAfQAAAEsAAAA0AAAAAAAA - AAAAAAAQAAAAFwAAABkAAAAeAAAAEwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAEAAAAAUAAAAWAAAALAAAAEJ6enpJIiIiJgYG - BjRpaWlfwMDAj6mpqbWHh4d+iYmJlJeXl9uHh4f/f39//1tbW/9BQUH/OTk5/1FRUf+Dg4P/k5OT/4mJ - if9tbW3/gICA/4SEhP+Dg4P/jo6O/66urv+xsbH/tra2/7m5uf/CwsL/wMDA/7e3t/+rq6v/n5+f/6am - pv+vr6//tbW1/6ioqP+fn5//tbW1/87Ozv/Kysr/1NTU/9nZ2f/d3d3/3d3d/9jY2P/a2tr/39/f/9vb - 2//T09P/3Nzc/+Xl5f/s7Oz/4+Pj/9fX1//W1tb/0dHR/9PT0//Pz8//y8vL/9TU1P/h4eH/4uLi/8rK - yv+urq7/np6e/3h4eP9RUVH/WFhY/3d3d/9mZmb/W1tb/2hoaP9bW1vycXFx7mtra+lWVlbmZ2dn2ldX - V6IGBgZhVlZWQERERCsAAAARAAAACQAAAAAcHBwAAAAAAAAAAA4AAAAoAAAAOAAAADsAAABHAAAAQQAA - AFIAAABqAAAAZwAAAFwAAAA0AAAAAAAAAAAAAAAOAAAAFgAAABEAAAAPAAAACQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgAAnJycACgoKAGpqagC9vb0ApaWlAISEhACGhoYAk5OTANzc - 3ArDw8Mos7OzeLGxsaScnJycjo6Ou5eXl+COjo79iYmJ/5SUlP+srKz/kZGR/3BwcP+IiIj/np6e/6io - qP+qqqr/tLS0/8PDw//e3t7/4uLi//Dw8P/5+fn////////////6+vr/8fHx/9vb2//W1tb/4uLi/+vr - 6//h4eH/0NDQ/8LCwv+/v7//ubm5/7Kysv+srKz/rq6u/8vLy/+6urr/sbGx/5iYmP+Tk5P/nZ2d/4mJ - if9+fn7/lJSU/5qamv9mZmb/U1NT/1JSUv9MTEz/OTk5/z8/P/BKSkrSSkpKmlRUVHukpKS+hoaGppiY - mIFCQkJiYmJiPygoKB0EBAQBAAAAAAAAAAAMDAwACQkJAAAAAAAAAAAHAAAAEAAAAAMAAAAAAAAADAAA - AEUAAABhAAAAVwAAADoAAAAxAAAANwAAAFEAAABeAAAAVAAAAD8AAAANAAAAAAAAAAYAAAAWAAAAEAAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCACkp - KQALCwsAampqALy8vACkpKQAg4ODAIWFhQCRkZEA2NjYAL+/vwCurq4ArKysAJmZmQCLi4sAlJSUAMnJ - yQDZ2dkQ3t7eUVBQUDh5eXlRqampaD4+PmVdXV2JRUVFpi8vL64qKiqmIyMjch4eHpYiIiK2KioqyCkp - KeEuLi7mOjo68UdHR/9kZGT/bm5u/2dnZ/9ra2v/bGxs/zo6Ov8qKir/NDQ0/0lJSfpcXFzkZWVl329v - b8JoaGjYZGRk6F5eXulkZGThdnZ2ymtra7htbW2hbm5uqHNzc6Z5eXmoYWFhw25ubqmTk5N6r6+vYLe3 - tzLExMQK6+vrAExMTABPT08AW1tbAK2trQAxMTEAFhYWAE1NTQBsbGwAAAAAAAAAABAAAAAcAAAALAAA - ACoAAAA+AAAAOQAAAB4AAAAfAAAANAAAAFIAAABRAAAATAAAADQAAAA2AAAATQAAAEUAAABIAAAAUgAA - ADEAAAAKAAAAAAAAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgoIAKSkpAAsLCwBqamoAvLy8AKSkpACDg4MAhYWFAJCQ - kADX19cAvb29AKysrACqqqoAl5eXAIqKigCSkpIAxsbGANbW1gDc3NwAUVFRAHt7ewCqqqoAQkJCAGRk - ZAAAAAAHAAAAAAAAAAQAAAASAAAABgAAAAIAAAAGAAAAAwAAAAQAAAAHAAAAHCgoKCbq6uoL5eXlD9/f - 3xnV1dUm1dXVMePj4zLx8fEklZWVAF9fXwBqamoAdHR0AG1tbQBqamoAZGRkAGpqagB7e3sAbm5uAG5u - bgBra2sAb29vAHR0dABeXl4AbGxsAJKSkgCtra0AtLS0AMDAwADo6OgATExMAFBQUABgYGAAAAAAAAAA - ABIAAAApAAAAKQAAAEEAAABAAAAATwAAAEEAAAApAAAAGQAAABQAAAAZAAAALgAAAEIAAABSAAAARQAA - AB0AAAAAAAAAAAAAAAQAAAAnAAAANwAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKC - ggApKSkACwsLAGpqagC8vLwApKSkAIODgwCFhYUAkJCQANfX1wC9vb0ArKysAKqqqgCXl5cAioqKAJKS - kgDFxcUA1dXVANvb2wBRUVEAe3t7AKqqqgBDQ0MAZ2dnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAKysrAOnp6QDi4uIA29vbANDQ0ADPz88A3d3dAOzs7ACTk5MAX19fAGtr - awB1dXUAb29vAGxsbABmZmYAa2trAHx8fABubm4Aa2trAP///wD5+fkB+Pj4Av39/QBoaGgAkZGRAKys - rACysrIAvr6+AObm5gBLS0sAUVFRAGNjYwAAAAAAAAAAAAAAAAQAAAAVAAAAGwAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAgAAACsAAAA2AAAAIgAAAAUAAAAAAAAAAwAAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCACkpKQALCwsAampqALy8vACkpKQAg4ODAIWF - hQCQkJAA19fXAL29vQCsrKwAqqqqAJeXlwCKiooAkpKSAMXFxQDV1dUA29vbAFFRUQB7e3sAqqqqAEND - QwBoaGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwA6OjoAODg - 4ADZ2dkAzs7OAM3NzQDa2toA6urqAJKSkgBfX18Aa2trAHV1dQBvb28AbGxsAGZmZgBra2sAfHx8AG5u - bgBpaWkA+fn5APLy8gDw8PAA9/f3AGVlZQCQkJAAq6urALKysgC+vr4A5ubmAEtLSwBRUVEAZGRkAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAABIAAAAHgAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACCgoIAKSkpAAsLCwBqamoAvLy8AKSkpACDg4MAhYWFAJCQkADX19cAvb29AKysrACqqqoAl5eXAIqK - igCSkpIAxcXFANXV1QDb29sAUVFRAHt7ewCrq6sAREREAGlpaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLADo6OgA4ODgANnZ2QDOzs4Azc3NANra2gDp6ekAkZGRAF9f - XwBra2sAdXV1AG9vbwBsbGwAZmZmAGtrawB8fHwAbW1tAGhoaAD4+PgA8PDwAO7u7gD29vYAZGRkAJCQ - kACrq6sAsrKyAL6+vgDm5uYAS0tLAFFRUQBkZGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACgAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCggApKSkACwsLAGpqagC8vLwApKSkAIOD - gwCFhYUAkJCQANfX1wC9vb0ArKysAKqqqgCXl5cAioqKAJKSkgDFxcUA1dXVANvb2wBRUVEAfHx8AK2t - rQBHR0cAbGxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCwsAOjo - 6ADg4OAA2dnZAM7OzgDNzc0A2traAOnp6QCRkZEAX19fAGtrawB1dXUAb29vAGxsbABmZmYAa2trAHx8 - fABtbW0AaGhoAPf39wDv7+8A7u7uAPX19QBkZGQAkJCQAKurqwCysrIAvr6+AObm5gBLS0sAUVFRAGRk - ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAgoKCACkpKQALCwsAampqALy8vACkpKQAg4ODAIWFhQCQkJAA19fXAL29vQCsrKwAqqqqAJeX - lwCKiooAkpKSAMXFxQDV1dUA3NzcAFNTUwCAgIAAtLS0AE5OTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCwA6enpAODg4ADZ2dkAzs7OAM3NzQDa2toA6enpAJKS - kgBgYGAAbW1tAHh4eABxcXEAbm5uAGdnZwBra2sAfHx8AG1tbQBoaGgA9/f3AO/v7wDu7u4A9fX1AGRk - ZACQkJAAq6urALKysgC+vr4A5ubmAEtLSwBRUVEAZGRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgoIAKSkpAAsLCwBqamoAvLy8AKSk - pACDg4MAhYWFAJCQkADX19cAvb29AKysrACqqqoAl5eXAIqKigCSkpIAxcXFANXV1QDc3NwAVlZWAIiI - iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8v - LwDr6+sA4eHhANnZ2QDOzs4Azc3NANra2gDq6uoAk5OTAGNjYwBzc3MAf39/AHl5eQB0dHQAa2trAG1t - bQB9fX0Abm5uAGhoaAD39/cA7+/vAO7u7gD19fUAZGRkAJCQkACrq6sAsrKyAL6+vgDm5uYAS0tLAFFR - UQBkZGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIKCggApKSkACwsLAGpqagC8vLwApKSkAIODgwCFhYUAkJCQANfX1wC9vb0ArKysAKqq - qgCXl5cAioqKAJKSkgDFxcUA1dXVAN7e3gBaWloAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAHAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDl5eUA2traAM7OzgDNzc0A3NzcAO3t - 7QCYmJgAa2trAAAAAAAAAAAAAAAAAAAAAABzc3MAdHR0AIGBgQBwcHAAaWlpAPj4+ADv7+8A7u7uAPX1 - 9QBkZGQAkJCQAKurqwCysrIAvr6+AObm5gBLS0sAUVFRAGRkZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCACkpKQALCwsAampqALy8 - vACkpKQAg4ODAIWFhQCQkJAA19fXAL29vQCsrKwAqqqqAJeXlwCKiooAkpKSAMXFxQDV1dUA3t7eAF1d - XQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOvr6wDd3d0A0NDQANLS0gDj4+MA9/f3AKOjowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAioqKAHd3dwBsbGwA+fn5APDw8ADu7u4A9fX1AGRkZACQkJAAq6urALKysgC+vr4A5ubmAEtL - SwBRUVEAZGRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACCgoIAKSkpAAsLCwBqamoAvLy8AKSkpACDg4MAhYWFAJCQkADX19cAvb29AKys - rACqqqoAl5eXAIqKigCSkpIAxcXFANXV1QDe3t4AXV1dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8fHxAOLi4gDY2NgA3t7eAPT0 - 9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dAD+/v4A8vLyAO/v - 7wD29vYAZWVlAJCQkACrq6sAsrKyAL6+vgDm5uYAS0tLAFFRUQBkZGQAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCggApKSkACwsLAGpq - agC8vLwApKSkAIODgwCFhYUAkJCQANfX1wC9vb0ArKysAKqqqgCXl5cAioqKAJKSkgDFxcUA1dXVAN7e - 3gBdXV0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD4+PgA7u7uAOjo6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD6+voA9fX1APr6+gBnZ2cAkZGRAKysrACysrIAvr6+AObm - 5gBLS0sAUVFRAGRkZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgoKCACkpKQALCwsAampqALy8vACkpKQAg4ODAIWFhQCQkJAA19fXAL29 - vQCsrKwAqqqqAJeXlwCKiooAkpKSAMXFxQDV1dUA3t7eAF1dXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /wD///8A////AHBwcACWlpYAr6+vALOzswC+vr4A5ubmAEtLSwBRUVEAZGRkAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCgoIAKSkpAAsL - CwBqamoAvLy8AKSkpACDg4MAhYWFAJCQkADX19cAvb29AKysrACqqqoAl5eXAIqKigCSkpIAxcXFANXV - 1QDe3t4AXV1dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKiogC4uLgAubm5AMDA - wADm5uYAS0tLAFFRUQBkZGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCggApKSkACwsLAGpqagC8vLwApKSkAIODgwCFhYUAkJCQANfX - 1wC9vb0ArKysAKqqqgCXl5cAioqKAJKSkgDFxcUA1dXVAN7e3gBdXV0AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDw8MAxMTEAOfn5wBLS0sAUVFRAGRkZAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCACkp - KQALCwsAampqALy8vACkpKQAg4ODAIWFhQCQkJAA19fXAL29vQCsrKwAqqqqAJeXlwCKiooAkpKSAMXF - xQDV1dUA3t7eAF1dXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAgAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADKysoA6enpAEtLSwBRUVEAZGRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////AAAAAAAA - DgHzP/////////AAAAAAAAB8AAH//////8AAAAAAAAAAAAAAH////8AAAAAAAAAAAAAAAAAf/n8AA+AA - AAAAAAAAAAAAA/5/4AAAAAAAAAAAAAAAAAPyfgAAAAAAAAAAAAAAAAAA8gAAAAAAAAAAAAAAAAAAAJYA - AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAA - AAMAAAAAAAAAAAAAAAAAAAADsAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAH+CAAAAAAAAAAAA - AAAAAAD/xgAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAD/+QAAAAAA - AAAAAAAAAAAA//0AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAA - AP//gAAAAAAAAAAAAAAAAAD//4AAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA - AAAAAAH//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//4AAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAb//AAAAAAAAAAAAAAAAAAGf/wAAAAAAAAAAAAAAAAABn/0A - AAAAAAAAAAAAAAAAAc/9AAAAAAAAAAAAAAAAAAHP/wAAAAAAAAAAAAAAAAABD/8AAAAAAAAAAAAAAAAA - AR//AAAAAAAAAAAAAAAAAAF//wAAAAAAAAAAAAAAAAABf/wAAAAAAAAAAAAAAAAAAX/8AAAAAAAAAAAA - AAAAAAF//gAAAAAAAAAAAAAAAAABf/8AAAAAAAAAAAAAAAAAAX//AAAAAAAAAAAAAAAAAAF//AAAAAAA - AAAAAAAAAAABf/wAAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAKf+AAAAAAAAAAAAAAAAAACH/gAAAAAAAAAAAAAAAAAAw/4AAAAAAAAAAAAAAAAA - AOf+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAAAf/+AAAAAAAAAAAA - AAAAAAD//gAAAAAAAAAAAAAAAAAA//4AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAD/+gAAAAAA - AAAAAAAAAAAA//oAAAAAAAAAAAAAAAAAAP/6AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAA//4A - AAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAA//wAAAAAAAAAAAAAAAAA - AP/4AAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAP/yAAAAAAAAAAAA - AAAAAAD/8gAAAAAAAAAAAAAAAAAAP/IAAAAAAAAAAAAAAAAAAB/yAAAAAAAAAAAAAAAAAACP8gAAAAAA - AAAAAAAAAAABR/IAAAAAAAAAAAAAAAAAARPwAAAAAAAAAAAAAAAAAAEZ8AAAAAAAAAAAAAAAAAABPPAA - AAAAAAAAAAAAAAAAAT7wAAAAAAAAAAAAAAAAAAD/8IAAAAAAAAAAAAAAAAAAP/AAAAAAAAAAAAAAAAAA - AD/wAAAAAAAAAAAAAAAAAAPf87AAAAAAAAAAAAAAAD4OH/8AAAAAAAAAAAAAAAWAMD//gAAAAAAAAAAA - AAA4AMH/////AAAAAAAAAAB8QAIf//////8AAAAAAAP/AAAJ/////////oAAP///4AAYf/////////// - ///8//DwR///////////////////4f///////////////////+f///////////////////////////// - /////////////////////////8/////////////////////H////////////////////9/////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////n////////////////////5//////////////////////////////////////// - ////////////////////////////////////////////////////////KAAAACAAAABAAAAAAQAgAAAA - AAAAEAAAEgsAABILAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAsAAAAGAAAAEAAAABcAAAAfAAAAOAAA - AEAAAABJAAAARgAAAEUAAABBAAAAPgAAAEsAAABQAAAATQAAAEoAAABPAAAAYAAAAGQAAAByAAAAagAA - AFIAAABaAAAASwAAAEUAAAAOAAAAGQAAAFIAAABHAAAAVwAAAHAAAACDAAAAkQAAAKoAAAC9AAAAxQAA - AMoAAADbAAAA5gICAuAEBATaAwMD0AICAscAAADZAAAA4AAAAOgQEBDoDw8P6A0NDfEVFRX7FxcX+xQU - FPchISH3JSUl/z09Pe0uLi7BAAAAaAAAAAsAAAAQAAAAOSwsLL5MTEz/bGxs/2FhYftXV1f/Z2dn/4OD - g/+Kior/l5eX/6Kiov+enp7/paWl/6ampv+mpqb/tbW1/7S0tP+pqan/qKio/7S0tP+vr6//rq6u/8LC - wv/Dw8P/xMTE/9TU1P/Y2Nj/w8PD/83Nzfw5OTkLAAAAAAAAAAAAAAAAra2t78/Pz//MzMz///////// - ///09PT///////////////////////39/f/5+fn/+Pj4//j4+P//////////////////////+Pj4//T0 - 9P/7+/v/+Pj4///////+/v7/8fHx/62trf/Ozs7/rKys4mlpaQAmJiYA////AP///wCOjo7a7e3t/5KS - kv+ioqL/8PDw///////x8fH/9vb2//Pz8//09PT/9vb2//X19f/39/f/9/f3//f39//19fX/+/v7//v7 - +//+/v7//f39//b29v/19fX/8fHx//////+9vb3/tbW1//X19f+Tk5PM////AP///wD///8A////AGZm - Zr3t7e3/7e3t/6ysrP+EhIT/1tbW///////8/Pz/9vb2//T09P/z8/P/9vb2//T09P/z8/P/9vb2//j4 - +P/y8vL//Pz8//b29v/9/f3/+Pj4//X19f//////ysrK/7W1tf//////3d3d/56ensn///8A////AP// - /wD///8AY2NjmeLi4v/e3t7//////9LS0v99fX3/wMDA///////9/f3/9PT0//X19f/09PT/+Pj4//Pz - 8//x8fH/9PT0//j4+P/19fX//f39//X19f/9/f3//Pz8//Ly8v+qqqr/7+/v///////m5ub/oaGhwP// - /wD///8A////AP///wCLi4uT5OTk/+Tk5P/r6+v//////97e3v93d3f/np6e////////////+fn5//X1 - 9f/v7+//+/v7///////////////////////4+Pj/+vr6////////////oqKi/8/Pz///////+Pj4//// - //+SkpKh////AP///wD///8A////AMDAwMzS0tL/5eXl//Dw8P/v7+///////+7u7v+IiIj/p6en//// - ///y8vL//v7+///////z8/P/2NjY/9ra2v/o6Oj/7Ozs//X19f//////8fHx/4qKiv/Pz8////////b2 - 9v/+/v7//////2dnZ5H///8A////AP///wD///8AjIyMyd3d3f/e3t7/6Ojo//n5+f/x8fH/9PT0//// - //+rq6v/r6+v//Ly8v/Kysr/fHx8/0tLS/9fX1//UFBQ/zg4OP90dHT/yMjI//39/f9oaGj/iIiI//// - ////////8fHx//n5+f//////cHBwjP///wD///8A////AP///wBra2vH7e3t/+Dg4P/n5+f/6+vr//f3 - 9//z8/P/9/f3//////+7u7v/YGBg/09PT/93d3f/oaGh/7+/v/+wsLD/jIyM/1FRUf9PT0//XFxc/7Gx - sf//////6+vr//Dw8P/9/f3/8fHx//////9ycnKN////AP///wD///8A////AHFxccLy8vL/39/f/+Tk - 5P/o6Oj/6urq////////////tbW1/21tbf+Li4v/39/f////////////7+/v//Dw8P/y8vL/z8/P/39/ - f/8ZGRn/tLS0///////t7e3/7Ozs//X19f/09PT//////2ZmZpv///8A////AP///wD///8AdnZ2zff3 - 9//Z2dn/6Ojo//39/f//////4uLi/42Njf+JiYn/xcXF////////////+vr6//39/f////////////7+ - /v/39/f/9/f3/6ysrP8sLCz/jIyM///////p6en/8vLy//b29v//////TExMmf///wD///8A////AP// - /wBycnLm/////+Xl5f/s7Oz//////9HR0f9nZ2f/m5ub//j4+P//////+fn5//////////////////// - /////////////////////////Pz8/6qqqv8wMDD/dnZ2/+/v7//o6Oj/8/Pz//////9eXl6h////AP// - /wD///8A////AIeHh+r8/Pz/9vb2/9jY2P99fX3/cXFx/8zMzP//////8fHx//j4+P////////////// - /////////////////////////////////////////////8DAwP8jIyP/cHBw//r6+v/g4OD//////3x8 - fMb///8A////AP///wD///8AhYWF+fr6+v/R0dH/YmJi/3h4eP/p6en///////f39////////Pz8//z8 - /P/9/f3//v7+/////////////////////////////////////////////////+fn5/9KSkr/YmJi/+Dg - 4P/r6+v/k5OT2P///wD///8A////AP///wB1dXX/ycnJ/2BgYP+QkJD///////7+/v/19fX/+/v7//v7 - +//+/v7//Pz8//v7+//8/Pz//f39//////////////////////////////////////////////////X1 - 9f9MTEz/Tk5O/8XFxf+srKzU////AP///wD///8A////AF1dXf51dXX/lJSU///////09PT/6enp/+zs - 7P/39/f/+vr6//r6+v/9/f3//f39//z8/P/7+/v//Pz8//7+/v////////////////////////////// - //////////////7+/v9paWn/b29v/5eXl+H///8A////AP///wD///8AdHR0/6Kiov/w8PD/5ubm/+7u - 7v/u7u7/7Ozs/+zs7P/4+Pj/+fn5//j4+P/9/f3//v7+//39/f/8/Pz//Pz8//39/f////////////// - /////////////v////////////////39/f+rq6v/WFhYzP///wD///8A////AP///wC7u7v/9PT0/+Dg - 4P/X19f/3t7e/+Tk5P/l5eX/7e3t/+3t7f/09PT/+/v7//b29v/5+fn//v7+//39/f/9/f3//Pz8//// - ///////////////////////+//////////////////////////+0tLTG////AP///wD///8A////AIqK - iqj19fX/s7Oz/7Ozs//MzMz/4eHh/+Tk5P/u7u7/7+/v/+rq6v/r6+v/9fX1//z8/P/8/Pz///////// - ///////////////////////////////////w8PD/39/f/8bGxtvZ2dnGzMzM2X5+fqj///8A////AP// - /wD///8ADQ0NAEVFRUBmZmaTj4+Pq4yMjMqZmZnttbW1+bW1tf/Dw8P/zMzM/8bGxv+8vLz/xsbG/83N - zf/Pz8//tLS0/7W1tf+qqqrusrKy4Kenp9GCgoLBbGxsnkNDQ34aGhpaBwcHOSEhISAAAAAJAAAAAP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// - /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///////////////////////////// - v//4AAAAAAAAAAAAAAHAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA - AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPgAAAH/////////////////////w== - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/frmEmailAccount.vb b/GUIs.Test.GUI_EDMI/frmEmailAccount.vb deleted file mode 100644 index a2e2083f..00000000 --- a/GUIs.Test.GUI_EDMI/frmEmailAccount.vb +++ /dev/null @@ -1,198 +0,0 @@ -Imports DigitalData.Modules.Messaging -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Database -Imports FirebirdSql.Data.FirebirdClient -Imports System.IO - -Public Class frmEmailAccount - Private _bindingSource As BindingSource - Private _tableName As String = "TBEDM_EMAIL_ACCOUNT" - Private _tableAdapter As FbDataAdapter - Private _dataSet As New DataSet() - Private _Logger As Logger - Private _MyLogger As LogConfig - Private _firebird As Firebird - Private _Email As Email - Private oTable As DataTable - Private Sub Button5_Click(sender As Object, e As EventArgs) - - End Sub - - Private Sub btnsendtestmail_Click(sender As Object, e As EventArgs) - - End Sub - - Private Sub ToolStripButton15_Click(sender As Object, e As EventArgs) - - End Sub - - Private Sub ToolStripButton21_Click(sender As Object, e As EventArgs) - - End Sub - - Private Sub ToolStripButton22_Click(sender As Object, e As EventArgs) - - End Sub - - Private Sub frmEmailAccount_Load(sender As Object, e As EventArgs) Handles Me.Load - _MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log")) - _Logger = _MyLogger.GetLogger() - _firebird = New Firebird(_MyLogger, My.Settings.FB_DATASOURCE, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW) - _Email = New Email(_MyLogger) - - - Dim oConnection As FbConnection - oConnection = New FbConnection(GetConnectionString()) - oConnection.Open() - - _dataSet.Tables.Add(New DataTable(_tableName) With {.CaseSensitive = True}) - - BindingSourceForm.DataSource = _dataSet - BindingSourceForm.DataMember = _tableName - - _tableAdapter = New FbDataAdapter() With { - .SelectCommand = GetSelectCommand(oConnection), - .InsertCommand = GetInsertCommand(oConnection), - .UpdateCommand = GetUpdateCommand(oConnection), - .DeleteCommand = New FbCommand(), - .ContinueUpdateOnError = True - } - _tableAdapter.Fill(_dataSet, _tableName) - oTable = _dataSet.Tables.Item(_tableName) - - txtGUID.DataBindings.Add(New Binding("Text", BindingSourceForm, "GUID")) - txtPROFILE_NAME.DataBindings.Add(New Binding("Text", BindingSourceForm, "PROFILE_NAME")) - txtEMAIL_FROM.DataBindings.Add(New Binding("Text", BindingSourceForm, "EMAIL_FROM")) - txtSERVER_IN.DataBindings.Add(New Binding("Text", BindingSourceForm, "SERVER_IN")) - txtSERVER_OUT.DataBindings.Add(New Binding("Text", BindingSourceForm, "SERVER_OUT")) - txtEMAIL_USER.DataBindings.Add(New Binding("Text", BindingSourceForm, "EMAIL_USER")) - txtEMAIL_PW.DataBindings.Add(New Binding("Text", BindingSourceForm, "EMAIL_PW")) - ' txtPORT_IN.DataBindings.Add(New Binding("Text", BindingSourceForm, "PORT_IN")) - txtPORT_OUT.DataBindings.Add(New Binding("Text", BindingSourceForm, "PORT_OUT")) - cmbAUTH_TYPE.DataBindings.Add(New Binding("Text", BindingSourceForm, "AUTH_TYPE")) - cmbPOP_IMAP.DataBindings.Add(New Binding("Text", BindingSourceForm, "POP_IMAP")) - ADDED_WHOTextBox.DataBindings.Add(New Binding("Text", BindingSourceForm, "CREATEDWHO")) - ADDED_WHENTextBox.DataBindings.Add(New Binding("Text", BindingSourceForm, "CREATEDWHEN")) - CHANGED_WHOTextBox.DataBindings.Add(New Binding("Text", BindingSourceForm, "CHANGEDWHO")) - CHANGED_WHENTextBox.DataBindings.Add(New Binding("Text", BindingSourceForm, "CHANGEDWHEN")) - - - - GridControl1.DataSource = BindingSourceForm - BindingNavigator1.BindingSource = BindingSourceForm - GridView1.BestFitColumns(True) - oConnection.Close() - End Sub - Private Function GetSelectCommand(Connection As FbConnection) As FbCommand - Dim oCommand As New FbCommand() With { - .Connection = Connection, - .CommandText = $"SELECT * FROM TBEDM_EMAIL_ACCOUNT" - } - - Return oCommand - End Function - - Private Function GetInsertCommand(Connection As FbConnection) As FbCommand - Dim oSQL = "INSERT INTO TBEDM_EMAIL_ACCOUNT (PROFILE_NAME,POP_IMAP,EMAIL_FROM,FROM_NAME,SERVER_IN,SERVER_OUT,EMAIL_USER,EMAIL_PW,AUTH_TYPE,PORT_IN,PORT_OUT,ACTIVE,CREATEDWHO) VALUES (@PROFILE_NAME,@POP_IMAP,@EMAIL_FROM,@FROM_NAME,@SERVER_IN,@SERVER_OUT,@EMAIL_USER,@EMAIL_PW,@AUTH_TYPE,@PORT_IN,@PORT_OUT,@ACTIVE,@CREATEDWHO)" - - Dim oCommand As New FbCommand With { - .Connection = Connection, - .CommandType = CommandType.Text, - .CommandText = oSQL - } - - With oCommand.Parameters - .Add(New FbParameter("@PROFILE_NAME", FbDbType.VarChar, 50, "PROFILE_NAME")) - .Add(New FbParameter("@POP_IMAP", FbDbType.VarChar, 20, "POP_IMAP")) - .Add(New FbParameter("@EMAIL_FROM", FbDbType.VarChar, 100, "EMAIL_FROM")) - .Add(New FbParameter("@FROM_NAME", FbDbType.VarChar, 100, "FROM_NAME")) - .Add(New FbParameter("@SERVER_IN", FbDbType.VarChar, 100, "SERVER_IN")) - .Add(New FbParameter("@SERVER_OUT", FbDbType.VarChar, 100, "SERVER_OUT")) - .Add(New FbParameter("@EMAIL_USER", FbDbType.VarChar, 100, "EMAIL_USER")) - .Add(New FbParameter("@EMAIL_PW", FbDbType.VarChar, 100, "EMAIL_PW")) - .Add(New FbParameter("@AUTH_TYPE", FbDbType.VarChar, 100, "AUTH_TYPE")) - .Add(New FbParameter("@PORT_IN", FbDbType.Integer, 10, "PORT_IN")) - .Add(New FbParameter("@PORT_OUT", FbDbType.Integer, 10, "PORT_OUT")) - '.Add(New FbParameter("@ACTIVE", FbDbType.Boolean, 10, "ACTIVE")) - .Add(New FbParameter("@CREATEDWHO", FbDbType.VarChar, 50, "CREATEDWHO")) - - End With - End Function - Private Function GetUpdateCommand(Connection As FbConnection) As FbCommand - Dim oSQL = "UPDATE TBEDM_EMAIL_ACCOUNT SET PROFILE_NAME = @PROFILE_NAME, POP_IMAP = @POP_IMAP,EMAIL_FROM = @EMAIL_FROM,FROM_NAME = @FROM_NAME,SERVER_IN = @SERVER_IN,SERVER_OUT = @SERVER_OUT,EMAIL_USER = @EMAIL_USER,EMAIL_PW = @EMAIL_PW,AUTH_TYPE = @AUTH_TYPE,PORT_IN = @PORT_IN,PORT_OUT = @PORT_OUT,ACTIVE = @ACTIVE,CHANGEDWHO = @CHANGEDWHO WHERE GUID = @GUID" - - Dim oCommand As New FbCommand With { - .Connection = Connection, - .CommandType = CommandType.Text, - .CommandText = oSQL - } - - With oCommand.Parameters - .Add(New FbParameter("@GUID", FbDbType.Integer, 10, "GUID")) - .Add(New FbParameter("@PROFILE_NAME", FbDbType.VarChar, 50, "PROFILE_NAME")) - .Add(New FbParameter("@POP_IMAP", FbDbType.VarChar, 20, "POP_IMAP")) - .Add(New FbParameter("@EMAIL_FROM", FbDbType.VarChar, 100, "EMAIL_FROM")) - .Add(New FbParameter("@FROM_NAME", FbDbType.VarChar, 100, "FROM_NAME")) - .Add(New FbParameter("@SERVER_IN", FbDbType.VarChar, 100, "SERVER_IN")) - .Add(New FbParameter("@SERVER_OUT", FbDbType.VarChar, 100, "SERVER_OUT")) - .Add(New FbParameter("@EMAIL_USER", FbDbType.VarChar, 100, "EMAIL_USER")) - .Add(New FbParameter("@EMAIL_PW", FbDbType.VarChar, 100, "EMAIL_PW")) - .Add(New FbParameter("@AUTH_TYPE", FbDbType.VarChar, 100, "AUTH_TYPE")) - .Add(New FbParameter("@PORT_IN", FbDbType.Integer, 10, "PORT_IN")) - .Add(New FbParameter("@PORT_OUT", FbDbType.Integer, 10, "PORT_OUT")) - ' .Add(New FbParameter("@ACTIVE", FbDbType.Boolean, "ACTIVE")) - .Add(New FbParameter("@CHANGEDWHO", FbDbType.VarChar, 50, "CHANGEDWHO")) - - End With - End Function - Private Function GetConnectionString() - Dim oConnectionString = New FbConnectionStringBuilder With { - .DataSource = My.Settings.FB_DATASOURCE, - .Database = My.Settings.FB_DATABASE, - .UserID = My.Settings.FB_USER, - .Password = My.Settings.FB_PW, - .Dialect = 3 - }.ToString() - - Return oConnectionString - End Function - - Private Sub btnsendtestmail_Click_1(sender As Object, e As EventArgs) Handles btnsendtestmail.Click - If txtTestmail.Text <> String.Empty Then - My.Settings.Save() - Dim wrapper As New clsEncryption("!35452didalog=") - - Dim PWPlain = wrapper.DecryptData(txtEMAIL_PW.Text) - - If _Email.NewEmail(txtTestmail.Text, "Testmail", "This is the bodytext", txtEMAIL_FROM.Text, txtSERVER_OUT.Text, txtPORT_OUT.Text, txtEMAIL_USER.Text, PWPlain, cmbAUTH_TYPE.Text, "EDMI GUI") = True Then - MsgBox("Email was send successfully.", MsgBoxStyle.Information) - Else - MsgBox("Could not send the testmail. Please check the log.", MsgBoxStyle.Exclamation) - End If - End If - End Sub - - Private Sub tsbtnSaveEmailAccount_Click(sender As Object, e As EventArgs) Handles tsbtnSaveEmailAccount.Click - Me.Validate() - Me.BindingSourceForm.EndEdit() - oTable.AcceptChanges() - If Not IsNothing(oTable.GetChanges) Then - _tableAdapter.Update(oTable) - MsgBox("DONE!") - Else - MsgBox("No changes") - End If - _tableAdapter.Update(oTable) - End Sub - - Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click - Dim wrapper As New clsEncryption("!35452didalog=") - Dim pwencrypted = wrapper.EncryptData(txtnewpasswort.Text) - txtEMAIL_PW.Text = pwencrypted - Dim upd = $"UPDATE TBEDM_EMAIL_ACCOUNT SET EMAIL_PW = '{pwencrypted}', CHANGEDWHO = '{Environment.UserName}' WHERE GUID = {txtGUID.Text}" - If _firebird.ExecuteNonQuery(upd) = True Then - MsgBox("Passwort has been encrypted!") - End If - - End Sub -End Class \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/frmMain.Designer.vb b/GUIs.Test.GUI_EDMI/frmMain.Designer.vb deleted file mode 100644 index 55713aef..00000000 --- a/GUIs.Test.GUI_EDMI/frmMain.Designer.vb +++ /dev/null @@ -1,125 +0,0 @@ - _ -Partial Class frmMain - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) - Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() - Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonItemEmail = New DevExpress.XtraBars.BarButtonItem() - Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'StatusStrip1 - ' - Me.StatusStrip1.Location = New System.Drawing.Point(0, 428) - Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(800, 22) - Me.StatusStrip1.TabIndex = 0 - Me.StatusStrip1.Text = "StatusStrip1" - ' - 'RibbonControl1 - ' - Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonItem1, Me.BarButtonItemEmail}) - Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 1 - Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2}) - Me.RibbonControl1.Size = New System.Drawing.Size(800, 141) - ' - 'BarButtonItem1 - ' - Me.BarButtonItem1.Caption = "BarButtonItem1" - Me.BarButtonItem1.Id = 1 - Me.BarButtonItem1.Name = "BarButtonItem1" - ' - 'BarButtonItemEmail - ' - Me.BarButtonItemEmail.Caption = "Email-Configuration" - Me.BarButtonItemEmail.Id = 2 - Me.BarButtonItemEmail.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.[False] - Me.BarButtonItemEmail.ImageOptions.Image = CType(resources.GetObject("BarButtonItemEmail.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItemEmail.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItemEmail.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItemEmail.Name = "BarButtonItemEmail" - ' - 'RibbonPage1 - ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) - Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "Main" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonPage2 - ' - Me.RibbonPage2.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2, Me.RibbonPageGroup3}) - Me.RibbonPage2.Name = "RibbonPage2" - Me.RibbonPage2.Text = "Administration" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" - ' - 'RibbonPageGroup3 - ' - Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItemEmail) - Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "Messaging" - ' - 'frmMain - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.RibbonControl1) - Me.Controls.Add(Me.StatusStrip1) - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.IsMdiContainer = True - Me.Name = "frmMain" - Me.Text = "Digital Data - EDMI" - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents StatusStrip1 As StatusStrip - Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl - Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonItemEmail As DevExpress.XtraBars.BarButtonItem -End Class diff --git a/GUIs.Test.GUI_EDMI/frmMain.resx b/GUIs.Test.GUI_EDMI/frmMain.resx deleted file mode 100644 index b7501a80..00000000 --- a/GUIs.Test.GUI_EDMI/frmMain.resx +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAB50RVh0VGl0 - bGUATGV0dGVyO2UtbWFpbDtlbWFpbDttYWlsGpGT2gAAAkJJREFUOE+lk/1PUmEUx5+stbL3v62f+qXN - zfKtrZYJgkrTRmWjTFeppeZyhoItFN+yBGwllhTZak4JCYVQ3roI93K5QN+e517G1mKt1t0+O+c559zv - ueeePQTAf1Ey+C+wp6zA3hLs+wMsv4f0GpfsA2YX+k0u9I0uyzwYeStz30h5/Aa9lO7hJYUhJ+4NLeJ2 - /8KCLKRtnwSflpDP/4CUzStIeWSpZRRjhTOrS/IiVHor+/795NpdO4xWNzy+MHK5PIR0FryQURAVXxAk - CGJGzq989kN9ZQRtnfNM4ADR37Hh+64I87Qb07ZPcpckL4HbzRRhZymbw+CoA1c7rdgIJKDreMEEDpK2 - LhtiXBreLQ4z9lXc6p2Vuyb5DKIxAckU80U0tA6i55EdaxtxeDc5NBnmmEA5udwxjygnwuPn8OpdAMbx - 99DdGIM/EKNbArxfd1Bd342u/nnYnD65bt2fgPr6MyZwiDQbniMST2PRHYRp6iMSKQnr9H+03XyCkxUG - XNQ9xOtlD76Fd2GmeeeHINZ8HC7pZ5jAYaJpn8OqN4I+urY4HYWJMb74YnCt+GU2NuNyjOUHaB1rdr51 - igkcIQ36WTq3A+EYj20683aURyj6qy1C86zO0GPDuRZ5jUdJRb0JW0EOoR0Bwe0UhS/A/N8JRXi5/lTt - sCJQ1TjmqGuZRF2zFbWUmqYJ1GgnUK0dR5VG4azGgjONFlSqqVU9RaXKgtMXhl9SgXIK3SWbhZBjJThe - ghMFy14uK3nD/h6QnxfMuqZly5fqAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAB50RVh0VGl0 - bGUATGV0dGVyO2UtbWFpbDtlbWFpbDttYWlsGpGT2gAABuJJREFUWEfFlolzU9Uex6vPBcXt4b6893e4 - 8Hxuo6ODyzijgm+eUmGwgMrSRRCZUrUOKAglCFhaEYmFAgVsQwu2tLRI17RJ070ppE3SJmmbpWnTdOXr - 73tuU+Oz8hhH8c58cs4995zv73tOfufcGwPgL2XGxivJjI1XkphjP7TE7DlQGZN/xhoj11V/AldHMd2e - cbBKCrloQK5Ix78J10xx7f/huktw/SXgWMZhzGkDVx8y1D6Zd7qlxlDSDpJXPMXptmlySVGr4nvheCFp - UYiO4ugp0qzIISebFEcKSCMOGuqN6fqSpyUmJ6lM8Oea/cdMbnffICYmJxUXL16Uv+iPuSZFa3x8AqNj - E+jqCWBrRqlHYnI1uOrKwHUffG7AmHQYn5hEeHQM4ZExGTCuzPzea1LGUoN6IwK1Q8OjSPo0V7Iv5saI - Af5cvynjRxQUNaKxza06joyOIyQmyHDEjLRfamX4jH04EU6A4zh+RMaOj0+irtEJfXYFUnYU0cBsgbmg - DMzauysP7txcnCprhf5oLQLBsFq20MgohsR1KKwxPI2YEpOEwcJyz/ZIP4WM5WT8AyF8pf8RxwossG5L - w5dbDtPATdEGbjiTkAhn+m75j/yosdixeXcxKmptGBMTnMmgmIhAQ5GSS8oyuo3lsBjj2LLKDmzYYkBZ - lVVpt8SvRsGyd2ng5mgDNxavjkeg0w6HO4Cubh9azruxPbMEOsHrG1Jig6ERBKOI3GtlWKtLcPbt8w5i - o+4EUrfnw2jpUppO0e5taIbh7eU0cIvAnaBczN61NQeuvqB09AsBdDp8aLP1Yv+RKiR9nIPCsy0qiznD - gcGwxtCIlES75zPmSv5pC95b9x227y2GpaUbNqcPdsl+u+hau/qxOVVPA7dFG7hpfVohTlXaVGdCAzZ7 - P6y2PhQUN+CD1CNI3pwLj5ikEQYPSFDmCutsc3kCSNhwAO9/lI192eVobneLhlfTckgpursP1yLh07xf - Gbh5wbrjyD93AR1dfTgvLjvsfVKXUu7bZSUMRc2IT8lB7IpMfH/KrHZJ5L9nPcdQg/lLdEhIOYKMAxLc - 6hENbTx1qHle7ndmG/Hy6oM0MCfawC2vrclRS98uM1Z0/lwaG2QZZRbdbj9OFJqRsukw4pMPqhk7XT7E - JWRifWoWck/WwdRgh7XTq8ZMawjWqXpTRy9eXJFFA7cLPJaVi1sTN56Ap9mK1g7PLzDWO1Bd71SJFZKt - 5vOHUFbRhgx9ERatTMeCJduQub8IP5Q2or7ZKQnJPJiQQGLc4viVnsPYgOXJR2ngjmgDt21K+RbWjz5B - U7tLcCtqRKCkQrbiVPKR0LBsSfnPzU0OFJZaUFTagHPGDpldL4YkOA0EhzQT1SanmkBTGzUFKeuXvoPk - pHQauDPawN+zX49Fe/IGydoeWFq7ZdZ2nCxtV0IUDEpQijPIkJigGSZVvWQ5S95rwbWdweQMS26UVtlQ - bbaLJnV7YI57B3tfmk8Ddwl8cyoDc7JeewNOcwtMclzW1HfhkMGignllySkW5HYT8YgR7vdIGWQ59Yzb - 0S/9fQPD6PeFlEaeJHCNuQumJidslWZkznuFBu6OGOAy3L5hzR6VIJXmTmTlmtQW63YPwCn7t8czAE// - ILyBYREf1vb+VEANngMjcuSGVR+Pdwg9vUE1jtBUTn4Dqkyd8j7oxtqVO2ngnmgDd8StO4Svj5mxL8cI - n4jw1OLp5ZDj0+kKoJtivQPqsHKLGQbpkxkS1gnb+Urv8QQ1864BNZ73flkR/XETNspLLzbhOxq4N9rA - nU+9lYEt+yrgEucOlx8X5OCwOb1TJrjdxISIUoyzc/UOwsWAU0E5jvCZFjyggnM8DyJOyC3m124rwqP/ - UStwn8BvAs3AEwv3qGPSIQOtnb3q8KAJJhiPZ2WCiFCPm8sbjbbUDBwJblfB/Wr8BTkNO+QccMq50Wh1 - Y+6CHREDPyfh0g8P9TeUVKN28duoXRSH1lIjqmQLbf6mHJ9/UwGjJOf5CjloFsehTmAymZpd+OzrcuEc - 6pp6cKHCpJ6bRKOjvA7VFidS95xFanoZyuu60HymGlVvLsbCBL1XYnIXqG3It+HsxJeWrN31+LyxnU++ - gDUrv8SipCy1VI++vhOxiVlIek8H3WPPQ/fveUh8V4fYeD3mzt+BR4SFUo9fvh1p/3oOaXOfRfyyNLy5 - aj8eelWHh17R4Y1V32LV0m344uFnsPXBp8aWPf3f9RKTb0P1OlbfhAI/EHg6MTm4PPf/Dw/8Bv+YgX/+ - BnzG7Gdwzl59lPJihW7YyP8l+jP6cpl1GbAf9RmLMacNXO4VGfRHoF3yLfmXMmPjlWTGxisHYn4CcBhN - g3QOmyIAAAAASUVORK5CYII= - - - - - AAABAAEAPDwAAAEAIABIOgAAFgAAACgAAAA8AAAAeAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////A////wX///8F////A/// - /wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////Af///wT///8F////BP///wEAAAAAAAAAAP///wH///8G////FOTh7S+Vh7hv+fj7EP// - /wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////BP///xCupMlhmYy7Zfj3+gUAAAAA////Af///wb4+PoZjX6zjDYdefQzGnfz0cvgN/// - /wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8B////C+Xi7TU7I3zsZVKYq/39/gn///8B////BvDv9R9cSJK8KBJj/zsrZ9nX0uRA////C/// - /wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8E/v7+F3hnpKMeDkv/tq3OXP///wr///8E+/v8F2hWmK8XCjn/KiJC3+Ph6jT///8M////AgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqoIRh6qXUYeqmlGHqpeRh6qVEYeqkpGHqpBRh6qN0Ye - qixGHqohiXHHG9jS7Bnt7PYW7+32Eefl8gqzp9oCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///8I2tbmPSkVXfglGUXq8vH2Jf///wf///8KsajKYhIIK/4UCS/9wrrVWv///w////8CAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqqFRR2o/0Qdp/9FHan/Rh6q/0Yeqv9GHqr/Rh6q/0Ye - qv9GHqr/Syqr+0MnlvdBKIryXEem7mdTs+hYO6/iSCKq2UYfqs9GHqrGRh6qu0YeqrBGHqqmRh6qnG1P - u5OVhMyNZ1SfvA0GIf9JOHvYvbPfaruw3lnIwuJYPzRg0AYCDv9IMoHe4t7wQeLc8STBtOIYRh6qEEYe - qglGHqoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqq+MxV//wUCDP8FAg3/CQMX/wwEIf8PBif/Egcu/xQI - Mv8WCTX/HRI//yMXR/8sFWr/KxRn/0Uuif9FNnj/Mx9s/y4Wbv8vE3P/MRR6/zQVf/83F4f/ORiM/z0c - k/9ONZ3/LRln/wYDEP9POZb/Vzyu/1Q3rf9oV63/BgMP/xcKOP9MNpP/Xkew/UkmqvpGHqr2Rh6q80Ye - qu9GHqrkRh6qkkYeqgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrCLxRz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AQEB/woKCv8eGyj/Fg0v/xMJL/8qFWL/IBky/xMTE/8GBgb/AAAA/wAAAP8AAAD/AAAA/wMD - Bf8VExn/Fgo1/w8HJf8pHkf/Eg8a/xIOIP8fGy7/AAAA/xwNRv8yJFz/JBpD/xwNRv8eDEv/IA1Q/yIO - VP8tEm7/Rh6q/0YeqioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrELxRy/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wEBAf8LCwv/IR8n/x0RPf8FAg3/IRBP/yohQf8XFhn/BgQJ/wIBBv8EAQr/BwMS/w8J - H/8lHDr/EAgl/w8HJf8vG2T/LyFS/ysaVv8aETH/AAAA/xwNRv89JH7/Ox+B/zgYh/88GZL/QRye/0Ud - qf87GZH/Rh6q/kYeqhYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrGLxRy/wAAAP8AAAD/AAAA/xkLPf8pE2D/LRZk/zAY - a/8xGW3/NBl1/zIXdP81GH//PiCG/04wmf8jElH/AQAD/xwOQ/9RM53/Syal/0Yeqf9GHqr/Rh6q/0cf - qv9QKq7/Gg44/wMBCP8sFWv/UzKm/1UwsP8jFEj/AAAA/xsMQv9GJpb/TSet/0Yeqv9GHqr/Rh6q/0Ye - qv8wFHf/Rh6q5UYeqgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrJLhNx/wAAAP8AAAD/AwMD/zUbdP9TLq//Tiyl/0Mj - lf9EJJX/US6p/1Isr/9JIav/Rx+q/1Aqrv9OLp//FQkz/wAAAf8qFl//VTCw/0khq/9GHqr/Rh6q/0Ye - qv9MJqz/Mhxo/wAAAP8TCC7/Nxt//1w6sv8fEzz/AAAA/xYKN/9AIY//TSet/0Yeqv9GHqr/Rh6q/0Ic - ov8qEWr/Rh6qwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrLLhNw/wAAAP8DAwP/EBAQ/z8odv89IYf/MBZ1/yYR - Xf8bDEL/Hw9I/0oslf9OJ63/Rx+q/0ojrP9ZNrL/Nh16/wMBCf8GAw//TCyd/0wlrP9GHqr/Rh6q/0Ye - qv9KI6z/UjGl/wYEDP8AAAH/IQ9R/0oulP8hGDr/AAAA/xAHJ/86HYb/TSet/0Yeqv9GHqr/Rh6q/zUW - gP8tFG7/Rh+qlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrNLRNw/wAAAP8ICAj/IR8o/zAZb/8vFXT/HA1G/wkF - E/8LBRv/AwEH/wgFEP9JKZn/SSGr/0cfqv9QKq7/QySR/xIILf8AAAD/Lxln/04nrf9GHqr/Rh6q/0Ye - qv9HH6r/USuv/ysaVv8AAAD/BQIN/y4Vb/8gFjn/AAAA/woEGP82GoD/TSet/0cfqv9IIKv/SiOr/ycU - Vf9AJoz/f2rCbv///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrQLRNv/wAAAP8ICAj/IRc6/zAWdf85I3H/Lxpg/1Qy - qv9AIo3/Fgo2/wAAAP8fEUH/TCWs/0cfqv9NJq3/QySU/xgLPP8AAAD/IBJG/08prv9HH6r/Rh6q/0Ye - qv9GHqr/TSat/1c4pf8GBAv/AAAA/xgLO/8PByb/AAAA/wYDEP80GXz/TSes/0sjrP9TLbD/Ui+p/ykc - S/9gUKT/0MvnUP///wn///8E////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrSLRNu/wAAAP8FBQX/FhMe/z0ke/9NKqP/SySs/04o - rv9FJZf/HA1F/wAAAP8GAwz/TCaq/0cfqv9MJqz/QiOT/xgLPP8AAAD/Fgwv/1Yxsf9JIav/Rh6q/0Ye - qv9GHqr/SySs/1w5tP8lGUT/AAAA/wcDEf8IAxP/AAAA/wkEFv82Gn7/USyv/00rpP8pFlr/HA1F/yYR - XP8wFnT/ZFGYu8zG3UT+/v4R////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrULBJt/wAAAP8BAQH/BQUF/y8Xaf9KIqv/SiOr/1Er - r/9FJpX/GwxC/wAAAP8BAAP/RyWc/0khq/9NJ63/SCiZ/xsMQ/8AAAD/BwMP/1g3qv9OKK3/Rx+q/0Ye - qv9GHqr/SiKr/1k1sv8mF03/AAAA/wAAAP8AAAD/AAAA/xEHKv8+IYj/UDGd/wwHGf8AAAD/DAUd/wwH - Gf8VCy/+KBJj/zEXdfuQgrV4////CP///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrXLBJs/wAAAP8AAAD/AAAA/ygTXf9NJ6z/RiSa/0Ai - jv80Gnn/Ewkw/wAAAP8AAAH/SCuR/1QvsP9RLK//UjKk/yIPU/8AAAD/AAAA/z0lef9XMrL/SSGr/0Ye - qv9GHqr/Tiet/08vn/8GAw//AAAA/wAAAP8AAAD/AAAA/yEPUf9UN5z/GREt/wAAAP8PBiT/Lxlp/1BI - b/+Phr3Sw77PXZmMu4PHwNpG////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrZKxJr/wAAAP8AAAD/AAAA/ykUXf9MKKb/MRZ3/ykT - ZP8VCjX/AwEH/wAAAP8AAAD/CAQS/y0bWf9YNqz/YECy/ywVav8AAAD/AAAA/xQLK/9cOrD/TCWs/0Ye - qv9JIav/VjGx/ysZWv8AAAD/AAAA/wAAAP8AAAD/CAMT/zUcef9MOnn/AAAA/wAAAP8hD1H/KB1D/zwv - a/+Uhsmf////Dv///w3///8I////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrbKxJq/wAAAP8AAAD/AAAA/yYRXP9KI6v/Ui2s/1o6 - qf8tFW3/AgEF/wAAAP8BAAP/BQIN/wAAAP8XDyr/Y0at/zkfgP8GAxD/AAAA/wAAAf86IXn/Tymu/0cf - qv9MJaz/XDqx/w4IH/8AAAD/AAAA/wAAAP8AAAD/GAs8/zEeY/8JBw7/AAAA/wQCCv8uFW7/HBoj/zgf - ff+IcMdw////Af///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrfKhJp/wAAAP8AAAD/AAAA/yMPVv9GHqr/TSet/0Mk - lP8dDUf/AAAA/wAAAP8LBhn/KBJi/wMBCP8AAAD/IRg4/00xlP8VCTT/AAAA/wAAAP8QCCb/Uy+r/0sk - rP9NJq3/TzCd/wIABf8AAAD/AAAA/wAAAP8AAAD/AQAE/wAAAP8AAAD/AAAA/xwNRf8pGFT/Dw4Q/z0d - kP9GHqpFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrgKhFo/wAAAP8AAAD/AAAA/yEOUf9GHqr/TSas/zgb - gf8NBiH/AAAA/wAAAP8qH0X/RyyO/xkLPv8AAAD/AAAA/0w5fv8oEmL/AAAC/wAAAP8AAAH/PSR9/1Uw - sP9QKq7/PiOD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FQk0/zQZe/8rIUX/CggR/0Qe - pPtGHqofAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqriKhFn/wAAAP8AAAD/AAAA/yEOUf9GHqr/TCaq/zIX - d/8EAgz/AAAA/wAAAP8oG0f/YkOv/yoTZ/8BAAL/AAAA/yAZMP9GLIn/Eggs/wAAAP8AAAD/Dwkh/1k5 - qv9XMrH/NR5y/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQAE/w0GIP8iD1T/NRp+/1Evpv8PDRb/DgYj/0Ye - quhGHqoIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrlKRFm/wAAAP8AAAD/AAAA/yEOUf9GHqr/SyWq/zAX - df8EAQr/AAAA/wAAAP8NCRj/YkWs/zUbef8GAg//AAAA/wAAAP8nHUL/Lxdt/wcDEf8AAAD/AAAA/xwQ - O/9dPq7/NiJr/wAAAP8AAAD/AAAA/wAAAf8bDEP/LRVt/zcbgf9FJZf/UCqs/z0eiv8BAQH/Fwk6/0Ye - qsYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrnKRBl/wAAAP8AAAD/AAAA/x0MSP9GHqr/TSas/zYa - f/8MBR7/AAAA/wAAAP8AAAD/Ew0g/y4ZZP8WCjf/AAAA/wAAAP8AAAD/Fgww/w4GIv8AAAD/AAAA/wAA - AP8OCRv/Fw8r/wAAAP8AAAD/AAAA/xIILv86HoL/WTiu/1Itr/9LJKz/Rx+q/yYQXP8AAAD/Iw5W/0Ye - qpwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqrqKBBk/wAAAP8AAAD/AAAA/x0MR/9GHqr/TSas/0Um - lv8jEFf/AQAD/wAAAP8AAAD/AAAA/wAAAv8NBiH/AQAD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAB/ycSYP9SMqL/USqu/0ggqv9GHqr/Rh6q/xMIL/8AAAD/LhNz/0Ye - qnIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHantJxBi/wAAAP8AAAD/AAAA/x0MR/9GHqn/SiOs/1g0 - sf88IIX/IQ9S/wUCDP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/DgYj/zgdf/9fPbX/TSat/0cfqv9GHqr/Qx2k/wQBCv8AAAH/ORiN/0Ye - qkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHanuJw9h/wAAAP8AAAD/AAAA/x0MR/9FHan/Rx+q/04n - rf9ZNrH/RSeS/zAWc/8fDkv/CQQW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/BgIP/y0dWf9ZOqf/VC+w/0ojrP9GHqr/NheD/wAAAP8CAQb/Qxyl+0Ye - qiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHanxJQ5d/wAAAP8AAAD/AAAA/x0MR/9FHan/RR2p/0cf - qv9LI6z/Uiyv/1Y0rf9IKpb/MBd0/xUJM/8AAAH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GAwv/OyN7/1Mvr/9JIav/JRBa/wAAAP8MBCD/Rh6q7EYe - qgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHan0JA5b/wAAAP8AAAD/AAAA/x0MR/9FHar/RR2p/0Ud - qf9GHqn/Rx+q/0sjrP9RLK//VTOp/zkdgf8jEFX/CAQV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAUe/0Ijkf9OKK3/FAkw/wAAAP8XCTv/Rh6qyQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHan1Iw5Z/wAAAP8AAAD/AAAA/x0MR/9FHan/RR2p/0Ud - qf9FHan/RR2p/0Yeqf9HH6r/Tiet/1k3sf9JK5f/Mhh3/yMQVf8TCC//AAAC/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgEF/y8Wcf9QLaX/CAYO/wAAAP8jDlb/Rh6qnwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHan4Ig5X/wAAAP8AAAD/AAAA/x0MR/9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/Rx+q/0sjrP9RK6//WTaw/1EyoP87H4P/GwxE/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yURXP9CKn//CAgI/wAAAP8vE3X/Rh6qdQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHan7IQ1U/wAAAP8AAAD/AAAA/x0MR/9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Yeqf9HH6r/SySs/1Isr/9aN6//NRp7/x4OS/8DAQn/AAAA/wAA - AP8AAAD/MjIy/wQEBP8cHBz/GRkZ/wAAAP8AAAD/AAAB/ycRX/80JVr/CQkJ/wAAAP87GZL/Rh6qTAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHan8IA1S/wAAAP8AAAD/AAAA/xwMRf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/Rh6p/0cfqv9OJ67/WTav/0Upj/8pEmP/BgMQ/wAA - AP8GBgb/gICA/wAAAP8BAQH/hYWF/wAAAP8AAAD/Eggs/zcbfv8rIkD/BgYG/wIABf9EHaf8Rh6qJQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHan/Hg1K/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9HH6r/Tiet/1s3s/9KK5f/LBRr/wwF - Hf8GBgb/qKio/wQEBP8pKSn/ioqK/wEABP8ZCz3/Mhh4/00unf8PDRb/AQEB/w0FIP9GHqrxRh6qBQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUdqQNFHan/Hg1K/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/Rx+q/0skrP9SK6//Syue/zEX - dv8GAg//RERE/5ubm/+Tk5P/FRUV/xcKN/89IIn/VDGq/z4hh/8BAQH/AAAA/xkKP/9GHqrNAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUdqQRFHan/HgxJ/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Yeqf9HH6r/Tiit/1c0 - rv9CKIT/Egsm/wEAAv8DAgj/JRZI/1Mypv9SLa//SySs/yYRWv8AAAD/AAAA/yYPXv9GHqqjAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUdqQdFHan/HQxI/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/Rx+q/0sj - rP9OKK3/Timr/0kmof9LJ6T/Tiit/0skrP9HH6r/Rh6q/xQIMv8AAAD/AAAA/zIVev9GHqp5AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUdqQpFHan/HQxH/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Ye - qf9GHqn/Rh6q/0Yeqv9GHqr/RR6n/zwakf8xFXf/JhBd/wQBCv8AAAD/AAAA/z8am/9GHqpPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUdqQtFHan/HQxH/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9EHaf/QRyf/zcX - hv8sEmv/IA5Q/xYJNv8LBBv/AQAE/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwIU/0Qdp/9GHqokAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUdqQ9FHan/HAtG/wAAAP8AAAD/AAAA/xkKPf9FHan/RR2p/0Ud - qf9FHan/RR2p/0Udqf9FHan/RR2p/0Udqf9EHaX/PxuZ/zQWf/8pEWX/HgxJ/xMILv8IAxX/AAAC/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Egcu/0UdqfZGHqoDAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqhFGHqr/HAtF/wAAAP8AAAD/AAAA/xkKPf9GHqr/Rh6q/0Ye - qv9EHab/PhqX/zQWfv8oEWH/GwtD/xAHKP8HAxH/AAAB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAQr/DQUi/xsLRP8pEWb/OxmS/0YeqsMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqhJGHqr/HAtE/wAAAP8AAAD/AAAA/xIHLP8qEmb/HgxI/xIH - K/8HAxL/AQAD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AwEK/w0FI/8bC0T/KRFm/zcXiP9BG5//Rh6q/0YeqvdGHqrXRh6qpEYeqjAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqhZGHqr/GwtD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMBCf8PBiX/HAtG/yoR - Z/84F4r/Qhyh/0Udqf9GHqr3Rh6q0UYeqqFGHqpvRh6qPUYeqhNGHqoDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqhhGHqr/GwtC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAAn/EAYo/x0MSf8sEm3/ORiN/0McpP9FHan/RR2p90Ud - qctFHaqZRh6qZ0YeqjZGHqoNRh6qAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqhpGHqr/GgtB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8BAAP/BgIS/xMIMf8hDVH/LhNy/zsZkv9FHaj/RR2p/UUdqfBFHanDRR2pkkUdqWBFHakvRR2pBQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqh1GHqr/GgpA/wAAAP8AAAD/AgEH/woEG/8YCTz/JQ9b/zIV - e/8+Gpj/RR2p/0UdqftFHanoRR2pvEUdqYpFHalZRR2pKUUdqQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYeqhFGHqr+LRNx/ygRZP82FoT/QBud/0Udqf9GHqr6Rh6q4UYe - qrRGHqqDRR2pUkUdqSRFHakFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGHqqTRh6q70YeqttGHqqtRh6qfEYeqktGHqodRh6qBQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFHakBRR2pDEYeqgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD/////////8P/////////w//////////D//////gf/8P////4MB//w/////ggH//D////8AAf/8P// - //wAD//w/AAD/AAf//D8AAAAAAP/8PwAAAAAAP/w/AAAAAAA//D8AAAAAAD/8PwAAAAAAP/w/AAAAAAB - //D8AAAAAAH/8PwAAAAAAP/w/AAAAAAAP/D8AAAAAAA/8PwAAAAAAB/w/AAAAAAAP/D8AAAAAAA/8PwA - AAAAAP/w/AAAAAAD//D8AAAAAAP/8PwAAAAAA//w/AAAAAAH//D8AAAAAAf/8PwAAAAAB//w/AAAAAAH - //D8AAAAAAf/8PwAAAAAB//w/AAAAAAP//D8AAAAAA//8PwAAAAAD//w/AAAAAAP//D8AAAAAA//8PwA - AAAAD//w+AAAAAAf//D4AAAAAB//8PgAAAAAH//w+AAAAAAf//D4AAAAAB//8PgAAAAAH//w+AAAAAA/ - //D4AAAAAD//8PgAAAAA///w+AAAAB////D4AAAH////8PgAAP/////w+AAf//////D8A///////8Px/ - ///////w//////////D/////////8P/////////w//////////D/////////8P/////////w//////// - //A= - - - \ No newline at end of file diff --git a/GUIs.Test.GUI_EDMI/frmMain.vb b/GUIs.Test.GUI_EDMI/frmMain.vb deleted file mode 100644 index d44f41f6..00000000 --- a/GUIs.Test.GUI_EDMI/frmMain.vb +++ /dev/null @@ -1,9 +0,0 @@ -Public Class frmMain - Private Sub BarButtonItemEmail_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemEmail.ItemClick - Dim frm As New frmEmailAccount - frm = frmEmailAccount - frm.MdiParent = Me - frm.Show() - frmEmailAccount.Show() - End Sub -End Class diff --git a/GUIs.Test.GUI_EDMI/packages.config b/GUIs.Test.GUI_EDMI/packages.config deleted file mode 100644 index 2c2992ff..00000000 --- a/GUIs.Test.GUI_EDMI/packages.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj b/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj index 08f44e28..c2af876f 100644 --- a/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj +++ b/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj @@ -47,6 +47,22 @@ On + + False + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll @@ -132,24 +148,6 @@ - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64} - Interfaces - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - diff --git a/GUIs.Test.TestGUI/TestGUI.vbproj b/GUIs.Test.TestGUI/TestGUI.vbproj index f0c5358b..bf9f35fc 100644 --- a/GUIs.Test.TestGUI/TestGUI.vbproj +++ b/GUIs.Test.TestGUI/TestGUI.vbproj @@ -73,6 +73,27 @@ + + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + ..\..\DDModules\Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll + + + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + ..\..\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll + + + ..\..\DDModules\Windows\bin\Debug\DigitalData.Modules.Windows.dll + + + ..\..\DDModules\Windream\bin\Debug\DigitalData.Modules.Windream.dll + False D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll @@ -180,12 +201,6 @@ Form - - frmFulltext.vb - - - Form - frmLookup.vb @@ -268,9 +283,6 @@ frmFolderWatcher.vb - - frmFulltext.vb - frmLookup.vb @@ -326,46 +338,14 @@ {3dcd6d1a-c830-4241-b7e4-27430e7ea483} LookupControl - - {10c922fb-dd8d-4e0b-a50c-30ee658fbddc} - FilterReader - {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049} Common - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {af664d85-0a4b-4bab-a2f8-83110c06553a} - Messaging - - - {4c86df8f-a280-40d4-85b0-10b1bf66c15c} - Windream - {a8c3f298-76ab-4359-ab3c-986e313b4336} EDMIService - - {5efaef9b-90b9-4f05-9f70-f79ad77fff86} - Windows - diff --git a/GUIs.Test.TestGUI/frmFulltext.Designer.vb b/GUIs.Test.TestGUI/frmFulltext.Designer.vb deleted file mode 100644 index f2d9bb0d..00000000 --- a/GUIs.Test.TestGUI/frmFulltext.Designer.vb +++ /dev/null @@ -1,71 +0,0 @@ - _ -Partial Class frmFulltext - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.TextBox1 = New System.Windows.Forms.TextBox() - Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() - Me.Button1 = New System.Windows.Forms.Button() - Me.SuspendLayout() - ' - 'TextBox1 - ' - Me.TextBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ - Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TextBox1.Location = New System.Drawing.Point(12, 45) - Me.TextBox1.Multiline = True - Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(776, 393) - Me.TextBox1.TabIndex = 0 - ' - 'OpenFileDialog1 - ' - Me.OpenFileDialog1.FileName = "OpenFileDialog1" - ' - 'Button1 - ' - Me.Button1.Location = New System.Drawing.Point(12, 16) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(75, 23) - Me.Button1.TabIndex = 1 - Me.Button1.Text = "Open" - Me.Button1.UseVisualStyleBackColor = True - ' - 'frmFulltext - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.Button1) - Me.Controls.Add(Me.TextBox1) - Me.Name = "frmFulltext" - Me.Text = "frmFulltext" - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents TextBox1 As TextBox - Friend WithEvents OpenFileDialog1 As OpenFileDialog - Friend WithEvents Button1 As Button -End Class diff --git a/GUIs.Test.TestGUI/frmFulltext.resx b/GUIs.Test.TestGUI/frmFulltext.resx deleted file mode 100644 index 33c7f672..00000000 --- a/GUIs.Test.TestGUI/frmFulltext.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/GUIs.Test.TestGUI/frmFulltext.vb b/GUIs.Test.TestGUI/frmFulltext.vb deleted file mode 100644 index eeafa994..00000000 --- a/GUIs.Test.TestGUI/frmFulltext.vb +++ /dev/null @@ -1,25 +0,0 @@ -Imports DigitalData.Modules.FilterReader - -Public Class frmFulltext - Private Sub frmFulltext_Load(sender As Object, e As EventArgs) Handles MyBase.Load - - End Sub - - Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - Dim oResult = OpenFileDialog1.ShowDialog() - - If oResult = DialogResult.OK Then - Dim oFileName = OpenFileDialog1.FileName - - - Try - Using oReader As New FilterReader(oFileName) - Dim oContents = oReader.ReadToEnd() - TextBox1.Text = oContents - End Using - Catch ex As Exception - TextBox1.Text = $"Fulltext could not be extracted!{vbNewLine}{ex.Message}" - End Try - End If - End Sub -End Class \ No newline at end of file diff --git a/GUIs.Test.TestGUI/frmStart.Designer.vb b/GUIs.Test.TestGUI/frmStart.Designer.vb index 6becaf7f..673304ef 100644 --- a/GUIs.Test.TestGUI/frmStart.Designer.vb +++ b/GUIs.Test.TestGUI/frmStart.Designer.vb @@ -32,7 +32,6 @@ Partial Class frmStart Me.Button8 = New System.Windows.Forms.Button() Me.Button9 = New System.Windows.Forms.Button() Me.Button10 = New System.Windows.Forms.Button() - Me.Button11 = New System.Windows.Forms.Button() Me.btnObjectProperties = New System.Windows.Forms.Button() Me.SuspendLayout() ' @@ -126,18 +125,9 @@ Partial Class frmStart Me.Button10.Text = "MsgBox" Me.Button10.UseVisualStyleBackColor = True ' - 'Button11 - ' - Me.Button11.Location = New System.Drawing.Point(254, 260) - Me.Button11.Name = "Button11" - Me.Button11.Size = New System.Drawing.Size(236, 60) - Me.Button11.TabIndex = 2 - Me.Button11.Text = "Fulltext" - Me.Button11.UseVisualStyleBackColor = True - ' 'btnObjectProperties ' - Me.btnObjectProperties.Location = New System.Drawing.Point(254, 326) + Me.btnObjectProperties.Location = New System.Drawing.Point(254, 260) Me.btnObjectProperties.Name = "btnObjectProperties" Me.btnObjectProperties.Size = New System.Drawing.Size(236, 60) Me.btnObjectProperties.TabIndex = 2 @@ -153,7 +143,6 @@ Partial Class frmStart Me.Controls.Add(Me.Button9) Me.Controls.Add(Me.Button6) Me.Controls.Add(Me.btnObjectProperties) - Me.Controls.Add(Me.Button11) Me.Controls.Add(Me.Button5) Me.Controls.Add(Me.Button4) Me.Controls.Add(Me.Button3) @@ -177,6 +166,5 @@ Partial Class frmStart Friend WithEvents Button8 As Button Friend WithEvents Button9 As Button Friend WithEvents Button10 As Button - Friend WithEvents Button11 As Button Friend WithEvents btnObjectProperties As Button End Class diff --git a/GUIs.Test.TestGUI/frmStart.vb b/GUIs.Test.TestGUI/frmStart.vb index ea323cc3..3f7bc298 100644 --- a/GUIs.Test.TestGUI/frmStart.vb +++ b/GUIs.Test.TestGUI/frmStart.vb @@ -61,11 +61,6 @@ Public Class frmStart oForm.Show() End Sub - Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click - Dim oform As New frmFulltext() - oform.Show() - End Sub - Private Sub btnObjectProperties_Click(sender As Object, e As EventArgs) Handles btnObjectProperties.Click Dim oForm As New frmObjectProperties(LogConfig, Database) oForm.ShowDialog() diff --git a/GUIs.Test.ZUGFeRDTest/ZUGFeRDTest.vbproj b/GUIs.Test.ZUGFeRDTest/ZUGFeRDTest.vbproj index a34f8613..3440a8ef 100644 --- a/GUIs.Test.ZUGFeRDTest/ZUGFeRDTest.vbproj +++ b/GUIs.Test.ZUGFeRDTest/ZUGFeRDTest.vbproj @@ -47,6 +47,22 @@ On + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll + + + False + ..\..\DDModules\Jobs\bin\Debug\DigitalData.Modules.Jobs.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll @@ -131,23 +147,5 @@ - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {ab6f09bf-e794-4f6a-94bb-c97c0ba84d64} - Interfaces - - - {39ec839a-3c30-4922-a41e-6b09d1dde5c3} - Jobs - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - \ No newline at end of file diff --git a/LookupControlGui/App.config b/LookupControlGui/App.config deleted file mode 100644 index 5534e287..00000000 --- a/LookupControlGui/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/LookupControlGui/LookupControlGui.vbproj b/LookupControlGui/LookupControlGui.vbproj deleted file mode 100644 index fc58da83..00000000 --- a/LookupControlGui/LookupControlGui.vbproj +++ /dev/null @@ -1,133 +0,0 @@ - - - - - Debug - AnyCPU - {B65E24B3-D334-455D-A0BF-B33B8358B013} - WinExe - LookupControlGui.My.MyApplication - LookupControlGui - LookupControlGui - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - LookupControlGui.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - LookupControlGui.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - frmLookup.vb - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - frmLookup.vb - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - - - - \ No newline at end of file diff --git a/LookupControlGui/LookupControlGui.vbproj.bak b/LookupControlGui/LookupControlGui.vbproj.bak deleted file mode 100644 index 67dddd2e..00000000 --- a/LookupControlGui/LookupControlGui.vbproj.bak +++ /dev/null @@ -1,132 +0,0 @@ - - - - - Debug - AnyCPU - {B65E24B3-D334-455D-A0BF-B33B8358B013} - WinExe - LookupControlGui.My.MyApplication - LookupControlGui - LookupControlGui - 512 - WindowsForms - v4.6.1 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - LookupControlGui.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - LookupControlGui.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - frmLookup.vb - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - frmLookup.vb - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - - - - \ No newline at end of file diff --git a/LookupControlGui/My Project/Application.Designer.vb b/LookupControlGui/My Project/Application.Designer.vb deleted file mode 100644 index 7eb96be9..00000000 --- a/LookupControlGui/My Project/Application.Designer.vb +++ /dev/null @@ -1,38 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - 'NOTE: This file is auto-generated; do not modify it directly. To make changes, - ' or if you encounter build errors in this file, go to the Project Designer - ' (go to Project Properties or double-click the My Project node in - ' Solution Explorer), and make changes on the Application tab. - ' - Partial Friend Class MyApplication - - _ - 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 - - _ - Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.LookupControlGui.frmLookup - End Sub - End Class -End Namespace diff --git a/LookupControlGui/My Project/Application.myapp b/LookupControlGui/My Project/Application.myapp deleted file mode 100644 index 1243847f..00000000 --- a/LookupControlGui/My Project/Application.myapp +++ /dev/null @@ -1,11 +0,0 @@ - - - true - Form1 - false - 0 - true - 0 - 0 - true - diff --git a/LookupControlGui/My Project/AssemblyInfo.vb b/LookupControlGui/My Project/AssemblyInfo.vb deleted file mode 100644 index 66ae7a4b..00000000 --- a/LookupControlGui/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/LookupControlGui/My Project/Resources.Designer.vb b/LookupControlGui/My Project/Resources.Designer.vb deleted file mode 100644 index 3cf88756..00000000 --- a/LookupControlGui/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("LookupControlGui.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/LookupControlGui/My Project/Resources.resx b/LookupControlGui/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/LookupControlGui/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/LookupControlGui/My Project/Settings.Designer.vb b/LookupControlGui/My Project/Settings.Designer.vb deleted file mode 100644 index dcfe7c8c..00000000 --- a/LookupControlGui/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.LookupControlGui.My.MySettings - Get - Return Global.LookupControlGui.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/LookupControlGui/My Project/Settings.settings b/LookupControlGui/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/LookupControlGui/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/LookupControlGui/frmLookup.Designer.vb b/LookupControlGui/frmLookup.Designer.vb deleted file mode 100644 index 12ca51ed..00000000 --- a/LookupControlGui/frmLookup.Designer.vb +++ /dev/null @@ -1,321 +0,0 @@ - -Partial Class frmLookup - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - - 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. - - Private Sub InitializeComponent() - Dim EditorButtonImageOptions1 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject1 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject2 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject3 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject4 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions2 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject5 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject6 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject7 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject8 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmLookup)) - Dim EditorButtonImageOptions3 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject9 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject10 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject11 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject12 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions4 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject13 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject14 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject15 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject16 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions5 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject17 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject18 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject19 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject20 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions6 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject21 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject22 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject23 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject24 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions7 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject25 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject26 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject27 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject28 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions8 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject29 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject30 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject31 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject32 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions9 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject33 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject34 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject35 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject36 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim EditorButtonImageOptions10 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() - Dim SerializableAppearanceObject37 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject38 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject39 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Dim SerializableAppearanceObject40 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() - Me.Button1 = New System.Windows.Forms.Button() - Me.LookupControl = New DigitalData.Controls.LookupGrid.LookupControl2() - Me.LookupControl21View = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.Label1 = New System.Windows.Forms.Label() - Me.LookupControl21 = New DigitalData.Controls.LookupGrid.LookupControl2() - Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.Label2 = New System.Windows.Forms.Label() - Me.LookupControl22 = New DigitalData.Controls.LookupGrid.LookupControl2() - Me.GridView2 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.Label3 = New System.Windows.Forms.Label() - Me.LookupControl23 = New DigitalData.Controls.LookupGrid.LookupControl2() - Me.GridView3 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.Label4 = New System.Windows.Forms.Label() - Me.LookupControl24 = New DigitalData.Controls.LookupGrid.LookupControl2() - Me.GridView4 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.Label5 = New System.Windows.Forms.Label() - CType(Me.LookupControl.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LookupControl21.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LookupControl22.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LookupControl23.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LookupControl24.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.GridView4, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'Button1 - ' - Me.Button1.Location = New System.Drawing.Point(12, 12) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(94, 23) - Me.Button1.TabIndex = 2 - Me.Button1.Text = "Get Text" - Me.Button1.UseVisualStyleBackColor = True - ' - 'LookupControl - ' - Me.LookupControl.AllowAddNewValues = False - Me.LookupControl.DataSource = Nothing - Me.LookupControl.Location = New System.Drawing.Point(393, 31) - Me.LookupControl.MultiSelect = True - Me.LookupControl.Name = "LookupControl" - Me.LookupControl.PreventDuplicates = False - Me.LookupControl.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions2, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject5, SerializableAppearanceObject6, SerializableAppearanceObject7, SerializableAppearanceObject8, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) - Me.LookupControl.Properties.DataSource = CType(resources.GetObject("LookupControl.Properties.DataSource"), Object) - Me.LookupControl.Properties.NullText = "Keine Datensätze ausgewählt" - Me.LookupControl.Properties.PopupView = Me.LookupControl21View - Me.LookupControl.SelectedValues = CType(resources.GetObject("LookupControl.SelectedValues"), System.Collections.Generic.List(Of String)) - Me.LookupControl.Size = New System.Drawing.Size(342, 20) - Me.LookupControl.TabIndex = 3 - ' - 'LookupControl21View - ' - Me.LookupControl21View.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus - Me.LookupControl21View.Name = "LookupControl21View" - Me.LookupControl21View.OptionsSelection.EnableAppearanceFocusedCell = False - Me.LookupControl21View.OptionsView.ShowGroupPanel = False - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(390, 15) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(91, 13) - Me.Label1.TabIndex = 4 - Me.Label1.Text = "Multiselect = True" - ' - 'LookupControl21 - ' - Me.LookupControl21.AllowAddNewValues = False - Me.LookupControl21.DataSource = Nothing - Me.LookupControl21.Location = New System.Drawing.Point(393, 89) - Me.LookupControl21.MultiSelect = True - Me.LookupControl21.Name = "LookupControl21" - Me.LookupControl21.PreventDuplicates = False - Me.LookupControl21.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions3, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject9, SerializableAppearanceObject10, SerializableAppearanceObject11, SerializableAppearanceObject12, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions4, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject13, SerializableAppearanceObject14, SerializableAppearanceObject15, SerializableAppearanceObject16, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) - Me.LookupControl21.Properties.DataSource = CType(resources.GetObject("LookupControl21.Properties.DataSource"), Object) - Me.LookupControl21.Properties.NullText = "Keine Datensätze ausgewählt" - Me.LookupControl21.Properties.PopupView = Me.GridView1 - Me.LookupControl21.SelectedValues = CType(resources.GetObject("LookupControl21.SelectedValues"), System.Collections.Generic.List(Of String)) - Me.LookupControl21.Size = New System.Drawing.Size(342, 20) - Me.LookupControl21.TabIndex = 3 - ' - 'GridView1 - ' - Me.GridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus - Me.GridView1.Name = "GridView1" - Me.GridView1.OptionsSelection.EnableAppearanceFocusedCell = False - Me.GridView1.OptionsView.ShowGroupPanel = False - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(390, 73) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(88, 13) - Me.Label2.TabIndex = 4 - Me.Label2.Text = "ReadOnly = True" - ' - 'LookupControl22 - ' - Me.LookupControl22.AllowAddNewValues = False - Me.LookupControl22.DataSource = Nothing - Me.LookupControl22.Location = New System.Drawing.Point(393, 147) - Me.LookupControl22.MultiSelect = False - Me.LookupControl22.Name = "LookupControl22" - Me.LookupControl22.PreventDuplicates = False - Me.LookupControl22.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions5, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject17, SerializableAppearanceObject18, SerializableAppearanceObject19, SerializableAppearanceObject20, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions6, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject21, SerializableAppearanceObject22, SerializableAppearanceObject23, SerializableAppearanceObject24, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) - Me.LookupControl22.Properties.DataSource = CType(resources.GetObject("LookupControl22.Properties.DataSource"), Object) - Me.LookupControl22.Properties.NullText = "" - Me.LookupControl22.Properties.PopupView = Me.GridView2 - Me.LookupControl22.SelectedValues = CType(resources.GetObject("LookupControl22.SelectedValues"), System.Collections.Generic.List(Of String)) - Me.LookupControl22.Size = New System.Drawing.Size(342, 20) - Me.LookupControl22.TabIndex = 3 - ' - 'GridView2 - ' - Me.GridView2.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus - Me.GridView2.Name = "GridView2" - Me.GridView2.OptionsSelection.EnableAppearanceFocusedCell = False - Me.GridView2.OptionsView.ShowGroupPanel = False - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(390, 131) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(96, 13) - Me.Label3.TabIndex = 4 - Me.Label3.Text = "MultiSelect = False" - ' - 'LookupControl23 - ' - Me.LookupControl23.AllowAddNewValues = False - Me.LookupControl23.DataSource = Nothing - Me.LookupControl23.Location = New System.Drawing.Point(393, 197) - Me.LookupControl23.MultiSelect = False - Me.LookupControl23.Name = "LookupControl23" - Me.LookupControl23.PreventDuplicates = False - Me.LookupControl23.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions7, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject25, SerializableAppearanceObject26, SerializableAppearanceObject27, SerializableAppearanceObject28, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions8, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject29, SerializableAppearanceObject30, SerializableAppearanceObject31, SerializableAppearanceObject32, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) - Me.LookupControl23.Properties.DataSource = CType(resources.GetObject("LookupControl23.Properties.DataSource"), Object) - Me.LookupControl23.Properties.NullText = "" - Me.LookupControl23.Properties.PopupView = Me.GridView3 - Me.LookupControl23.SelectedValues = CType(resources.GetObject("LookupControl23.SelectedValues"), System.Collections.Generic.List(Of String)) - Me.LookupControl23.Size = New System.Drawing.Size(342, 20) - Me.LookupControl23.TabIndex = 3 - ' - 'GridView3 - ' - Me.GridView3.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus - Me.GridView3.Name = "GridView3" - Me.GridView3.OptionsSelection.EnableAppearanceFocusedCell = False - Me.GridView3.OptionsView.ShowGroupPanel = False - ' - 'Label4 - ' - Me.Label4.AutoSize = True - Me.Label4.Location = New System.Drawing.Point(390, 181) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(89, 13) - Me.Label4.TabIndex = 4 - Me.Label4.Text = "100.000 Records" - ' - 'LookupControl24 - ' - Me.LookupControl24.AllowAddNewValues = True - Me.LookupControl24.DataSource = Nothing - Me.LookupControl24.Location = New System.Drawing.Point(393, 251) - Me.LookupControl24.MultiSelect = False - Me.LookupControl24.Name = "LookupControl24" - Me.LookupControl24.PreventDuplicates = False - Me.LookupControl24.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions9, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject33, SerializableAppearanceObject34, SerializableAppearanceObject35, SerializableAppearanceObject36, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions10, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject37, SerializableAppearanceObject38, SerializableAppearanceObject39, SerializableAppearanceObject40, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) - Me.LookupControl24.Properties.DataSource = CType(resources.GetObject("LookupControl24.Properties.DataSource"), Object) - Me.LookupControl24.Properties.NullText = "" - Me.LookupControl24.Properties.PopupView = Me.GridView4 - Me.LookupControl24.SelectedValues = CType(resources.GetObject("LookupControl24.SelectedValues"), System.Collections.Generic.List(Of String)) - Me.LookupControl24.Size = New System.Drawing.Size(342, 20) - Me.LookupControl24.TabIndex = 3 - ' - 'GridView4 - ' - Me.GridView4.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus - Me.GridView4.Name = "GridView4" - Me.GridView4.OptionsSelection.EnableAppearanceFocusedCell = False - Me.GridView4.OptionsView.ShowGroupPanel = False - ' - 'Label5 - ' - Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(390, 235) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(167, 13) - Me.Label5.TabIndex = 4 - Me.Label5.Text = "Empty List but New Values = True" - ' - 'Form1 - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) - Me.Controls.Add(Me.Label5) - Me.Controls.Add(Me.Label4) - Me.Controls.Add(Me.Label3) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.LookupControl24) - Me.Controls.Add(Me.LookupControl23) - Me.Controls.Add(Me.LookupControl22) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.LookupControl21) - Me.Controls.Add(Me.LookupControl) - Me.Controls.Add(Me.Button1) - Me.Name = "Form1" - Me.Text = "Form1" - CType(Me.LookupControl.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LookupControl21.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LookupControl22.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LookupControl23.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LookupControl24.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridView4, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents Button1 As Button - Friend WithEvents LookupControl As DigitalData.Controls.LookupGrid.LookupControl2 - Friend WithEvents LookupControl21View As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents Label1 As Label - Friend WithEvents LookupControl21 As DigitalData.Controls.LookupGrid.LookupControl2 - Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents Label2 As Label - Friend WithEvents LookupControl22 As DigitalData.Controls.LookupGrid.LookupControl2 - Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents Label3 As Label - Friend WithEvents LookupControl23 As DigitalData.Controls.LookupGrid.LookupControl2 - Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents Label4 As Label - Friend WithEvents LookupControl24 As DigitalData.Controls.LookupGrid.LookupControl2 - Friend WithEvents GridView4 As DevExpress.XtraGrid.Views.Grid.GridView - Friend WithEvents Label5 As Label -End Class diff --git a/LookupControlGui/frmLookup.resx b/LookupControlGui/frmLookup.resx deleted file mode 100644 index aca14e68..00000000 --- a/LookupControlGui/frmLookup.resx +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - - \ No newline at end of file diff --git a/LookupControlGui/frmLookup.vb b/LookupControlGui/frmLookup.vb deleted file mode 100644 index 800e2449..00000000 --- a/LookupControlGui/frmLookup.vb +++ /dev/null @@ -1,60 +0,0 @@ -Public Class frmLookup - Private _Datasource As New List(Of String) - - Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load - For index = 1 To 1000000 - _Datasource.Add($"item-{index}") - Next - - Dim oDatatable = GetDatatable(10) - Dim oSelectedValues = _Datasource.Take(1).ToList() - - LookupControl.DataSource = oDatatable - LookupControl.SelectedValues = oSelectedValues - LookupControl.ReadOnly = False - - LookupControl21.DataSource = oDatatable - LookupControl21.SelectedValues = oSelectedValues - LookupControl21.ReadOnly = True - - LookupControl22.DataSource = oDatatable - LookupControl22.SelectedValues = oSelectedValues - LookupControl22.ReadOnly = False - LookupControl22.MultiSelect = False - - LookupControl22.SelectedValues = New List(Of String) From {"", Nothing, "LOL", "Foo"} - - LookupControl23.DataSource = GetDatatable(100000) - - AddHandler LookupControl.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String)) - MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray)) - End Sub - - AddHandler LookupControl21.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String)) - MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray)) - End Sub - - AddHandler LookupControl22.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String)) - MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray)) - End Sub - End Sub - - Private Function GetDatatable(Limit As Integer) As DataTable - Dim oDatatable As New DataTable - Dim oColumns As New List(Of DataColumn) From { - New DataColumn("Col1", GetType(String)), - New DataColumn("Col2", GetType(String)) - } - - oDatatable.Columns.AddRange(oColumns.ToArray) - - For Each Item In _Datasource.Take(Limit) - Dim oRow = oDatatable.NewRow() - oRow.Item("Col1") = Item - oRow.Item("Col2") = Item & "_" & "SomeLong Random(String) !!!111einself" - oDatatable.Rows.Add(oRow) - Next - - Return oDatatable - End Function -End Class diff --git a/Mailfunctions/Mail.vb b/Mailfunctions/Mail.vb deleted file mode 100644 index a9d612fa..00000000 --- a/Mailfunctions/Mail.vb +++ /dev/null @@ -1,13 +0,0 @@ -Imports DigitalData.Modules.Logging -Public Class Mail - Private LogConfig As LogConfig - Private Logger As DigitalData.Modules.Logging.Logger - Public Sub New(LogConfig As LogConfig) - LogConfig = LogConfig - Logger = LogConfig.GetLogger() - Logger.Info("MailingClass initialized") - End Sub - Public Function Connecttest() - - End Function -End Class diff --git a/Mailfunctions/Mailfunctions.vbproj b/Mailfunctions/Mailfunctions.vbproj deleted file mode 100644 index 6e56ce83..00000000 --- a/Mailfunctions/Mailfunctions.vbproj +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Debug - AnyCPU - {C9827B8D-9EF9-411A-A6BF-4807794F8C8F} - Library - Mailfunctions - Mailfunctions - 512 - Windows - v4.7.2 - true - - - true - full - true - true - bin\Debug\ - Mailfunctions.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - Mailfunctions.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - ..\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll - - - P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll - - - - ..\packages\NLog.4.7.11\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - \ No newline at end of file diff --git a/Mailfunctions/My Project/Application.Designer.vb b/Mailfunctions/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c7..00000000 --- a/Mailfunctions/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Mailfunctions/My Project/Application.myapp b/Mailfunctions/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Mailfunctions/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Mailfunctions/My Project/AssemblyInfo.vb b/Mailfunctions/My Project/AssemblyInfo.vb deleted file mode 100644 index 0d865ee5..00000000 --- a/Mailfunctions/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/Mailfunctions/My Project/Resources.Designer.vb b/Mailfunctions/My Project/Resources.Designer.vb deleted file mode 100644 index 702d170b..00000000 --- a/Mailfunctions/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Mailfunctions.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Mailfunctions/My Project/Resources.resx b/Mailfunctions/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Mailfunctions/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Mailfunctions/My Project/Settings.Designer.vb b/Mailfunctions/My Project/Settings.Designer.vb deleted file mode 100644 index fd3119d4..00000000 --- a/Mailfunctions/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Mailfunctions.My.MySettings - Get - Return Global.Mailfunctions.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Mailfunctions/My Project/Settings.settings b/Mailfunctions/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Mailfunctions/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Mailfunctions/packages.config b/Mailfunctions/packages.config deleted file mode 100644 index 25ba1cdf..00000000 --- a/Mailfunctions/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.Base/Base/Base.vbproj b/Modules.Base/Base/Base.vbproj deleted file mode 100644 index 9a6697eb..00000000 --- a/Modules.Base/Base/Base.vbproj +++ /dev/null @@ -1,119 +0,0 @@ - - - - - Debug - AnyCPU - {6EA0C51F-C2B1-4462-8198-3DE0B32B74F8} - Library - DigitalData.Modules.Base - DigitalData.Modules.Base - 512 - Windows - v4.6.1 - true - - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Base.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Base.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - True - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/Modules.Base/Base/BaseClass.vb b/Modules.Base/Base/BaseClass.vb deleted file mode 100644 index e12a99c1..00000000 --- a/Modules.Base/Base/BaseClass.vb +++ /dev/null @@ -1,16 +0,0 @@ -Imports DigitalData.Modules.Logging - -''' -''' BaseClass that sets up a Logger. -''' -Public Class BaseClass - Protected LogConfig As LogConfig - Protected Logger As Logger - - Public Sub New(LogConfig As LogConfig) - Dim oClassName = Me.GetType().Name - - Me.LogConfig = LogConfig - Me.Logger = LogConfig.GetLogger(oClassName) - End Sub -End Class \ No newline at end of file diff --git a/Modules.Base/Base/ECM.vb b/Modules.Base/Base/ECM.vb deleted file mode 100644 index bf04d74b..00000000 --- a/Modules.Base/Base/ECM.vb +++ /dev/null @@ -1,7 +0,0 @@ -Public Class ECM - Public Enum Product - ProcessManager - GlobalIndexer - ClipboardWatcher - End Enum -End Class diff --git a/Modules.Base/Base/IDB/Attributes.vb b/Modules.Base/Base/IDB/Attributes.vb deleted file mode 100644 index bf7bd740..00000000 --- a/Modules.Base/Base/IDB/Attributes.vb +++ /dev/null @@ -1,15 +0,0 @@ -Namespace IDB - Public Class Attributes - Public Const ATTRIBUTE_DOCTYPE = "Doctype" - Public Const ATTRIBUTE_DYNAMIC_FOLDER = "Dynamic Folder" - - Public Const ATTRIBUTE_ORIGIN_FILENAME = "OriginFileName" - Public Const ATTRIBUTE_ORIGIN_CHANGED = "OriginChangedDatetime" - Public Const ATTRIBUTE_ORIGIN_CREATED = "OriginCreationDatetime" - - Public Const ATTRIBUTE_DISPLAY_FILENAME = "DisplayFileName" - Public Const ATTRIBUTE_DISPLAY_FILENAME1 = "DisplayFileName1" - - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.Base/Base/IDB/Database.vb b/Modules.Base/Base/IDB/Database.vb deleted file mode 100644 index 8afd0a7e..00000000 --- a/Modules.Base/Base/IDB/Database.vb +++ /dev/null @@ -1,11 +0,0 @@ - -Namespace IDB - Public Class Database - Public Enum NamedDatabase - ECM - IDB - End Enum - End Class - -End Namespace - diff --git a/Modules.Base/Base/IDB/FileStore.vb b/Modules.Base/Base/IDB/FileStore.vb deleted file mode 100644 index f1dc29e0..00000000 --- a/Modules.Base/Base/IDB/FileStore.vb +++ /dev/null @@ -1,20 +0,0 @@ -Namespace IDB - Public Class FileStore - Public Const FILE_STORE_INVALID_OBEJCT_ID = 0 - - Public Const FILE_CHANGED_QUESTION = "QUESTION VERSION" - Public Const FILE_CHANGED_OVERWRITE = "AUTO REPLACE" - Public Const FILE_CHANGED_VERSION = "AUTO VERSION" - - Public Const OBJECT_STATE_FILE_ADDED = "File added" - Public Const OBJECT_STATE_FILE_VERSIONED = "File versioned" - Public Const OBJECT_STATE_FILE_CHANGED = "File changed" - Public Const OBJECT_STATE_FILE_OPENED = "File opened" - Public Const OBJECT_STATE_FILE_DELETED = "File deleted" - Public Const OBJECT_STATE_METADATA_CHANGED = "Metadata changed" - Public Const OBJECT_STATE_ATTRIBUTEVALUE_DELETED = "Attributevalue deleted" - Public Const OBJECT_STATE_FILE_CHECKED_OUT = "File Checked Out" - Public Const OBJECT_STATE_FILE_CHECKED_IN = "File Checked In" - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.Base/Base/My Project/Application.Designer.vb b/Modules.Base/Base/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Base/Base/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Base/Base/My Project/Application.myapp b/Modules.Base/Base/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Base/Base/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Base/Base/My Project/AssemblyInfo.vb b/Modules.Base/Base/My Project/AssemblyInfo.vb deleted file mode 100644 index 8d8f92b9..00000000 --- a/Modules.Base/Base/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/Modules.Base/Base/My Project/Resources.Designer.vb b/Modules.Base/Base/My Project/Resources.Designer.vb deleted file mode 100644 index 6d58bf07..00000000 --- a/Modules.Base/Base/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Base.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Base/Base/My Project/Resources.resx b/Modules.Base/Base/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Base/Base/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Base/Base/My Project/Settings.Designer.vb b/Modules.Base/Base/My Project/Settings.Designer.vb deleted file mode 100644 index 4e796c27..00000000 --- a/Modules.Base/Base/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Base.My.MySettings - Get - Return Global.DigitalData.Modules.Base.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Base/Base/My Project/Settings.settings b/Modules.Base/Base/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Base/Base/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Base/Base/README.txt b/Modules.Base/Base/README.txt deleted file mode 100644 index 58cbced4..00000000 --- a/Modules.Base/Base/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -BASE MODULE -=========== - -This module is intended for often used constants and datastructures. -Therefor it is important that this module does not have any dependencies on other modules!! \ No newline at end of file diff --git a/Modules.Config/Config.vbproj b/Modules.Config/Config.vbproj deleted file mode 100644 index 1d94a8cb..00000000 --- a/Modules.Config/Config.vbproj +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Debug - AnyCPU - {44982F9B-6116-44E2-85D0-F39650B1EF99} - Library - DigitalData.Modules.Config - DigitalData.Modules.Config - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Config.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Config.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {8a8f20fc-c46e-41ac-bee7-218366cfff99} - Encryption - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/Modules.Config/ConfigAttributes.vb b/Modules.Config/ConfigAttributes.vb deleted file mode 100644 index a9e1787e..00000000 --- a/Modules.Config/ConfigAttributes.vb +++ /dev/null @@ -1,35 +0,0 @@ -Public Class ConfigAttributes - ''' - ''' The primary connection string. Will not be saved to userconfig. - ''' - Public Class ConnectionStringAttribute - Inherits Attribute - End Class - - ''' - ''' The test connection string. Will not be saved to userconfig. - ''' - Public Class ConnectionStringTestAttribute - Inherits Attribute - End Class - - ''' - ''' The app serverSQL connection string. Will not be saved to userconfig. - ''' - Public Class ConnectionStringAppServerAttribute - Inherits Attribute - End Class - ''' - ''' The EDMIapp server . Will not be saved to userconfig. - ''' - Public Class EDMIAppServerAttribute - Inherits Attribute - End Class - - ''' - ''' Global setting. Will not be saved to userconfig. - ''' - Public Class GlobalSettingAttribute - Inherits Attribute - End Class -End Class diff --git a/Modules.Config/ConfigManager.vb b/Modules.Config/ConfigManager.vb deleted file mode 100644 index 8b24bf69..00000000 --- a/Modules.Config/ConfigManager.vb +++ /dev/null @@ -1,388 +0,0 @@ -Imports System.IO -Imports System.Reflection -Imports System.Xml.Serialization -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Encryption -Imports DigitalData.Modules.Config.ConfigAttributes - -Public Class ConfigManager(Of T) - Private Const USER_CONFIG_NAME As String = "UserConfig.xml" - Private Const COMPUTER_CONFIG_NAME As String = "ComputerConfig.xml" - Private Const APP_CONFIG_NAME As String = "AppConfig.xml" - - Private ReadOnly _LogConfig As LogConfig - Private ReadOnly _Logger As Logger - Private ReadOnly _File As Filesystem.File - - Private ReadOnly _UserDirectory As String - Private ReadOnly _UserConfigPath As String - Private ReadOnly _ComputerDirectory As String - Private ReadOnly _ComputerConfigPath As String - Private ReadOnly _AppConfigDirectory As String - Private ReadOnly _AppConfigPath As String - - Private ReadOnly _TestMode As Boolean = False - - Private ReadOnly _Blueprint As T - Private ReadOnly _BlueprintType As Type - Private ReadOnly _Serializer As XmlSerializer - - Private ReadOnly _ExcludedAttributes = New List(Of Type) From { - GetType(ConnectionStringAttribute), - GetType(ConnectionStringAppServerAttribute), - GetType(ConnectionStringTestAttribute), - GetType(EDMIAppServerAttribute), - GetType(GlobalSettingAttribute) - } - - Private ReadOnly _ConnectionStringAttributes = New List(Of Type) From { - GetType(ConnectionStringAttribute), - GetType(ConnectionStringAppServerAttribute), - GetType(ConnectionStringTestAttribute) - } - - ''' - ''' Signals that all properties will be written to (and read from) the UserConfig.xml - ''' - ''' If Value is `True`: - ''' - AppConfig.xml does NOT exist - ''' - ComputerConfig.xml does NOT exist - ''' - ConnectionStrings will be saved to or read from UserConfig.xml - ''' - ''' If Value is `False`: - ''' - No ConnectionStrings will be saved to or read from UserConfig.xml - ''' - ''' Can be overwritten by optional parameter `ForceUserConfig` - ''' - Private _WriteAllValuesToUserConfig As Boolean = False - - ''' - ''' Returns the currently loaded config object - ''' - ''' - Public ReadOnly Property Config As T - - ''' - ''' Path to the current user config. - ''' - ''' - Public ReadOnly Property UserConfigPath As String - Get - Return _UserConfigPath - End Get - End Property - - ''' - ''' Path to the current computer config. - ''' - ''' - Public ReadOnly Property ComputerConfigPath As String - Get - Return _ComputerConfigPath - End Get - End Property - - ''' - ''' Path to the current Application config. - ''' - ''' - Public ReadOnly Property AppConfigPath As String - Get - Return _AppConfigPath - End Get - End Property - - ''' - ''' Creates a new instance of the ConfigManager - ''' - ''' - ''' LogConfig instance - ''' The path to check for a user config file, eg. AppData (Usually Application.UserAppDataPath or Application.LocalUserAppDataPath) - ''' The path to check for a computer config file, eg. ProgramData (Usually Application.CommonAppDataPath) - ''' The path to check for a third config file. This is useful when running the Application in an environment where AppData/ProgramData directories are not available - ''' Override values from ComputerConfig with UserConfig - Public Sub New(LogConfig As LogConfig, UserConfigPath As String, ComputerConfigPath As String, Optional ApplicationStartupPath As String = "", Optional ForceUserConfig As Boolean = False) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - _File = New Filesystem.File(_LogConfig) - - _Blueprint = Activator.CreateInstance(Of T) - _BlueprintType = _Blueprint.GetType - _Serializer = New XmlSerializer(_BlueprintType) - - _UserDirectory = _File.CreateDirectory(UserConfigPath) - _UserConfigPath = Path.Combine(_UserDirectory, USER_CONFIG_NAME) - - If ComputerConfigPath <> String.Empty Then - If IO.File.Exists(ComputerConfigPath) Then - _ComputerDirectory = _File.CreateDirectory(ComputerConfigPath, False) - Else - _ComputerDirectory = ComputerConfigPath - End If - _ComputerConfigPath = Path.Combine(_ComputerDirectory, COMPUTER_CONFIG_NAME) - End If - - If ApplicationStartupPath <> String.Empty Then - _Logger.Info($"AppConfig is being used: [{ApplicationStartupPath}]") - _AppConfigPath = Path.Combine(ApplicationStartupPath, APP_CONFIG_NAME) - End If - - _WriteAllValuesToUserConfig = ForceUserConfig - - _Config = LoadConfig() - End Sub - - ''' - ''' Creates a new ConfigManager with a single (user)config path - ''' - ''' LogConfig instance - ''' The path to check for a user config file, eg. AppData (Usually Application.UserAppDataPath or Application.LocalUserAppDataPath) - Public Sub New(LogConfig As LogConfig, ConfigPath As String) - MyClass.New(LogConfig, ConfigPath, String.Empty, String.Empty, ForceUserConfig:=True) - End Sub - - ''' - ''' Save the current config object to `UserConfigPath` - ''' - ''' Force saving all attributes including the attributes marked as excluded - ''' True if save was successful, False otherwise - Public Function Save(Optional ForceAll As Boolean = False) As Boolean - Try - WriteToFile(Config, _UserConfigPath, ForceAll) - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - End Function - - ''' - ''' Reloads the config object from file. - ''' - ''' True if reload was successful, False otherwise - Public Function Reload() As Boolean - Try - _Config = LoadConfig() - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - End Function - - ''' - ''' Copies all properties from Source to Target, except those who have an attribute - ''' listed in ExcludedAttributeTypes - ''' - ''' Source config object - ''' Target config object - ''' List of Attribute type to exclude - Private Sub CopyValues(Source As T, Target As T, Optional ExcludedAttributeTypes As List(Of Type) = Nothing) - Dim oType As Type = GetType(T) - Dim oExcludedAttributeTypes = IIf(IsNothing(ExcludedAttributeTypes), New List(Of Type), ExcludedAttributeTypes) - Dim oProperties = oType.GetProperties(). - Where(Function(p) p.CanRead And p.CanWrite). - Where(Function(p) - For Each oAttributeType As Type In oExcludedAttributeTypes - If Attribute.IsDefined(p, oAttributeType) Then - Return False - End If - Next - Return True - End Function) - - For Each oProperty As PropertyInfo In oProperties - ' TODO: Process individual Subfields of class-objects - ' to allow for the PasswordAttribute to be set on class properies aka nested properties - - Dim oValue = oProperty.GetValue(Source, Nothing) - If Not IsNothing(oValue) Then - oProperty.SetValue(Target, oValue, Nothing) - End If - Next - End Sub - - ''' - ''' Filters a config object by copying all values except `ExcludedAttributeTypes` - ''' - ''' Config object - ''' List of Attribute type to exclude - ''' - Private Function FilterValues(ByVal Data As T, ExcludedAttributeTypes As List(Of Type)) As T - Dim oResult As T = Activator.CreateInstance(Of T) - - CopyValues(Data, oResult, ExcludedAttributeTypes) - Return oResult - End Function - - Private Function LoadConfig() As T - ' first create an empty/default config object - Dim oConfig As T = Activator.CreateInstance(_BlueprintType) - - ' try to load the special app config - oConfig = LoadAppConfig(oConfig) - - ' try to load the computer config - oConfig = LoadComputerConfig(oConfig) - - ' now try to load userconfig - oConfig = LoadUserConfig(oConfig) - Return oConfig - End Function - - Private Function LoadAppConfig(ByVal Config As T) As T - If Not String.IsNullOrEmpty(_AppConfigPath) AndAlso File.Exists(_AppConfigPath) Then - Try - Dim oAppConfig = ReadFromFile(_AppConfigPath) - CopyValues(oAppConfig, Config) - - _Logger.Info("AppConfig exists and will be used. [{0}]", _AppConfigPath) - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("ApplicationConfig could not be loaded!") - End Try - - _WriteAllValuesToUserConfig = False - Else - _Logger.Debug("ApplicationConfig does not exist.") - _WriteAllValuesToUserConfig = True - End If - - Return Config - End Function - - Private Function LoadComputerConfig(ByVal Config As T) As T - If _WriteAllValuesToUserConfig = False Then - _Logger.Info("AppConfig exists. ComputerConfig will NOT be used") - ElseIf File.Exists(_ComputerConfigPath) Then - Try - Dim oComputerConfig = ReadFromFile(_ComputerConfigPath) - CopyValues(oComputerConfig, Config) - - _Logger.Info("ComputerConfig exists and will be used. [{0}]", _ComputerConfigPath) - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Computer config could not be loaded!") - End Try - _WriteAllValuesToUserConfig = False - Else - _Logger.Debug("Computer config does not exist.") - _WriteAllValuesToUserConfig = True - End If - - Return Config - End Function - - Private Function LoadUserConfig(ByVal Config As T) As T - If File.Exists(_UserConfigPath) Then - Try - Dim oUserConfig = ReadFromFile(_UserConfigPath) - _Logger.Debug("UserConfig exists and will be used. [{0}]", _UserConfigPath) - - ' if user config exists - If Not IsNothing(oUserConfig) Then - ' Copy values from user config to final config - If _WriteAllValuesToUserConfig Then - CopyValues(oUserConfig, Config, New List(Of Type)) - Else - CopyValues(oUserConfig, Config, _ExcludedAttributes) - End If - End If - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("User config could not be loaded!") - End Try - Else - _Logger.Debug("User config does not exist. Default config will be created") - WriteToFile(Config, _UserConfigPath, False) - End If - - Return Config - End Function - - Private Function TestHasAttribute(Config As T, AttributeType As Type) As Boolean - For Each oProperty As PropertyInfo In Config.GetType.GetProperties() - If Attribute.IsDefined(oProperty, GetType(ConnectionStringAttribute)) Then - Return True - End If - Next - - Return False - End Function - - ''' - ''' Serialize a config object to byte array - ''' - ''' - ''' - Private Function Serialize(Data As T) As Byte() - Try - _Logger.Debug("Serializing config object") - - Using oStream = New MemoryStream() - _Serializer.Serialize(oStream, Data) - _Logger.Debug("Object serialized.") - Return oStream.ToArray() - End Using - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - ''' - ''' Write an object to disk as xml - ''' - ''' The object to write - ''' The file name to write to - Private Sub WriteToFile(Data As T, Path As String, ForceAll As Boolean) - Try - _Logger.Debug("Saving config to: {0}", Path) - - ' If config was loaded from computer config, - ' DO NOT save connection string, etc. to user config - If _WriteAllValuesToUserConfig = False And ForceAll = False Then - Data = FilterValues(Data, _ExcludedAttributes) - End If - - Dim oBytes = Serialize(Data) - - Using oFileStream = New FileStream(Path, FileMode.Create, FileAccess.Write) - oFileStream.Write(oBytes, 0, oBytes.Length) - oFileStream.Flush() - End Using - Catch ex As Exception - _Logger.Warn("Could not save config to {0}", Path) - _Logger.Error(ex) - Throw ex - End Try - End Sub - - ''' - ''' Reads an xml from disk and deserializes to object - ''' - ''' - Private Function ReadFromFile(Path As String) As T - Try - _Logger.Debug("Loading config from: {0}", Path) - Dim oConfig As T - - Using oReader As New StreamReader(Path) - oConfig = _Serializer.Deserialize(oReader) - End Using - - ' If oConfig is Nothing, a config file was created but nothing was written to it. - ' In this case we need to create oConfig from defaults so we have at least some config object - If oConfig Is Nothing Then - _Logger.Debug("Config file is valid but empty. Loading default values") - oConfig = Activator.CreateInstance(_BlueprintType) - End If - - Return oConfig - Catch ex As Exception - _Logger.Warn("Could not load config from {0}", Path) - _Logger.Error(ex) - Throw ex - End Try - End Function -End Class diff --git a/Modules.Config/ConfigSample.vb b/Modules.Config/ConfigSample.vb deleted file mode 100644 index 9bed8b6c..00000000 --- a/Modules.Config/ConfigSample.vb +++ /dev/null @@ -1,20 +0,0 @@ -Imports DigitalData.Modules.Config.ConfigAttributes - -Public Class ConfigSample - - - Public Property ConnectionString As String - - - Public Property ConnectionStringTest As String - - - Public Property ConnectionStringAppServer As String - - - Public Property EDMIAppServer As String - - Public Property GlobalSetting As Integer - - Public Property SomeSetting As Boolean -End Class diff --git a/Modules.Config/ConfigUtils.vb b/Modules.Config/ConfigUtils.vb deleted file mode 100644 index 04fa7773..00000000 --- a/Modules.Config/ConfigUtils.vb +++ /dev/null @@ -1,119 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class ConfigUtils - Private _Logger As Logger - Private _File As Filesystem.File - - Private Const MIGRATE_DIRECTORY As String = "Migrate" - - - Public Sub New(LogConfig As LogConfig) - _Logger = LogConfig.GetLogger() - _File = New Filesystem.File(LogConfig) - End Sub - - Public Function TestMigrationNeeded(TargetDirectory As String) As Boolean - If IO.Directory.Exists(TargetDirectory) Then - Return False - Else - Return True - End If - End Function - - Public Sub MigrateConfig(SourceDirectory As String, TargetDirectory As String, Optional FilePattern As String = "*.*") - If IO.Directory.Exists(TargetDirectory) Then - _Logger.Warn("Config Migration aborted because new config directory [{0}] already exists!", TargetDirectory) - Exit Sub - End If - - _Logger.Debug("Creating TargetDirectory [{0}]", TargetDirectory) - ' Create target directory - Try - IO.Directory.CreateDirectory(TargetDirectory) - Catch ex As Exception - _Logger.Warn("Config Migration aborted because new config directory [{0}] could not be created!", TargetDirectory) - _Logger.Error(ex) - Exit Sub - End Try - - ' Create Migration directory - Dim oMigrationDirectory = IO.Path.Combine(SourceDirectory, MIGRATE_DIRECTORY) - _Logger.Debug("Creating MigrationDirectory [{0}]", oMigrationDirectory) - Try - IO.Directory.CreateDirectory(oMigrationDirectory) - Catch ex As Exception - _Logger.Warn("Config Migration aborted because migration directory [{0}] could not be created!", oMigrationDirectory) - _Logger.Error(ex) - Exit Sub - End Try - - ' Copy individual files from top level directory - For Each oPath In IO.Directory.EnumerateFiles(SourceDirectory, FilePattern) - Dim oFileInfo = New IO.FileInfo(oPath) - - _Logger.NewBlock($"File {oFileInfo.Name}") - _Logger.Debug("Processing file [{0}]", oFileInfo.Name) - - _Logger.Debug("Copying [{0}] to TargetDirectory..", oFileInfo.Name) - ' Copy to target directory - Try - IO.File.Copy(oPath, IO.Path.Combine(TargetDirectory, oFileInfo.Name)) - Catch ex As Exception - _Logger.Warn("Could not move old config file {0} to new config location {1}", oFileInfo.Name, TargetDirectory) - _Logger.Error(ex) - End Try - - _Logger.Debug("Moving [{0}] to MigrationDirectory..", oFileInfo.Name) - ' Move to migration directory - Try - IO.File.Move(oPath, IO.Path.Combine(oMigrationDirectory, oFileInfo.Name)) - Catch ex As Exception - _Logger.Warn("Could not move old config file {0} to migration directory {1}", oFileInfo.Name, oMigrationDirectory) - _Logger.Error(ex) - End Try - Next - - For Each oDirectoryPath In IO.Directory.EnumerateDirectories(SourceDirectory, "*", IO.SearchOption.TopDirectoryOnly) - Dim oDirInfo As New IO.DirectoryInfo(oDirectoryPath) - - _Logger.NewBlock($"Directory {oDirInfo.Name}") - _Logger.Debug("Processing directory [{0}]", oDirInfo.Name) - - ' Don't copy TargetDirectory if subpath of SourceDirectory or if MigrationDirectory - If oDirInfo.FullName = TargetDirectory Or oDirInfo.FullName = oMigrationDirectory Then - _Logger.Debug("Directory [{0}] should not be copied. Skipping.", oDirInfo.Name) - Continue For - End If - - ' Copy directory to TargetDirectory - Dim oNewDirectoryPath = IO.Path.Combine(TargetDirectory, oDirInfo.Name) - _Logger.Debug("Copying [{0}] to TargetDirectory..", oDirInfo.Name) - Try - _File.CopyDirectory(oDirInfo.FullName, oNewDirectoryPath, True) - Catch ex As Exception - _Logger.Warn("Could not move directory [{0}] to new path [{1}]", oDirInfo.FullName, oNewDirectoryPath) - _Logger.Error(ex) - End Try - - _Logger.Debug("Copying [{0}] to MigrationDirectory..", oDirInfo.Name) - ' Copy directory to MigrationDirectory - Dim oMigrationDirectoryPath = IO.Path.Combine(oMigrationDirectory, oDirInfo.Name) - Try - _File.CopyDirectory(oDirInfo.FullName, oMigrationDirectoryPath, True) - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Could not move directory [{0}] to migration directory [{1}]", oDirInfo.FullName, oMigrationDirectoryPath) - End Try - - _Logger.Debug("Deleting [{0}]..", oDirInfo.Name) - ' Delete directory - Try - IO.Directory.Delete(oDirInfo.FullName, True) - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Could not delete directory [{0}]", oDirInfo.FullName) - End Try - Next - End Sub - -End Class diff --git a/Modules.Config/My Project/Application.Designer.vb b/Modules.Config/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Config/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Config/My Project/Application.myapp b/Modules.Config/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Config/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Config/My Project/AssemblyInfo.vb b/Modules.Config/My Project/AssemblyInfo.vb deleted file mode 100644 index d92cd28b..00000000 --- a/Modules.Config/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Config/My Project/Resources.Designer.vb b/Modules.Config/My Project/Resources.Designer.vb deleted file mode 100644 index 3c533e50..00000000 --- a/Modules.Config/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Config.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Config/My Project/Resources.resx b/Modules.Config/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Config/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Config/My Project/Settings.Designer.vb b/Modules.Config/My Project/Settings.Designer.vb deleted file mode 100644 index 323842b0..00000000 --- a/Modules.Config/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Config.My.MySettings - Get - Return Global.DigitalData.Modules.Config.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Config/My Project/Settings.settings b/Modules.Config/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Config/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Config/SampleConfig.vb b/Modules.Config/SampleConfig.vb deleted file mode 100644 index ba775c22..00000000 --- a/Modules.Config/SampleConfig.vb +++ /dev/null @@ -1,70 +0,0 @@ -Imports Config -Imports NLog - -''' -''' Sample Config Class inheriting from BaseConfig -''' -''' -''' -''' Things this class should do: -''' -''' - Provide defaults for all values -''' - Load the current config using the LoadConfig method of BaseConfig -''' - If no configfile was found, it should create a new datatable with only default values -''' - If a configfile was found, it should merge the values from this file with the defaults from this class -''' - For each propertyname defined in PropertyNames -''' - Check for existing value in datatable -''' - If a value is present, use it -''' - If no value is exists, use the default value -''' - Assign the resulting values to class properties -''' - Save the new config to disk -''' -Public Class SampleConfig - Inherits BaseConfig - - Private _logger As Logger - - Public ReadOnly ConnectionString As String - Public ReadOnly UniversalViewer As String - - Public Overloads ReadOnly Property PropertyNames As Dictionary(Of String, String) - Get - Return New Dictionary(Of String, String) From { - {"ConnectionString", ""}, - {"UniversalViewer", ""} - } - End Get - End Property - - Public Sub New(LogFactory As LogFactory) - MyBase.New(LogFactory) - - _logger = LogFactory.GetCurrentClassLogger() - - ' Load the existing values from the config file into PropertyNames - ' overwriting the default values - Dim oDataTable = LoadConfig() - - For Each oRow As DataRow In oDataTable.Rows - Dim oValue = oRow.Item(_configValue) - Dim oKey = oRow.Item(_configKey) - - PropertyNames.Item(oKey) = oValue - Next - - ' Assign the merged properties to class properties, optionally converting them beforehand - For Each oProperty As KeyValuePair(Of String, String) In PropertyNames - Select Case oProperty.Key - Case "ConnectionString" - ConnectionString = oProperty.Value - Case "UniversalViewer" - UniversalViewer = oProperty.Value - Case Else - _logger.Warn("Property {0} was found in PropertyNames but was not assigned to a config property", oProperty.Key) - End Select - Next - - ' Convert the dictionary back to a datatable and save it - SaveConfig(ConvertToDataTable(PropertyNames)) - End Sub -End Class diff --git a/Modules.Config/packages.config b/Modules.Config/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.Config/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.Database/Adapters/Firebird.vb b/Modules.Database/Adapters/Firebird.vb deleted file mode 100644 index a3b24da3..00000000 --- a/Modules.Database/Adapters/Firebird.vb +++ /dev/null @@ -1,350 +0,0 @@ -Imports FirebirdSql.Data.FirebirdClient -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Logging -Imports System.ComponentModel - -''' -''' MODULE: Firebird -''' -''' VERSION: 0.0.0.4 -''' -''' DATE: 18.12.2018 -''' -''' DESCRIPTION: -''' -''' DEPENDENCIES: NLog, >= 4.5.10 -''' -''' EntityFramework.Firebird, >= 6.4.0 -''' -''' FirebirdSql.Data.FirebirdClient, >= 6.4.0 -''' -''' PARAMETERS: LogConfig, DigitalData.Modules.Logging.LogConfig -''' The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class -''' -''' DataSource, String -''' The server where the database lives, for example 127.0.0.1 or dd-vmx09-vm03 -''' -''' Database, String -''' The location of the Database in the format `127.0.0.1:E:\Path\To\Database.FDB` -''' -''' User, String -''' The user name to connect as -''' -''' Password, String -''' The user's password -''' -''' PROPERTIES: ConnectionEstablished, Boolean -''' If the last opened connection was successful -''' -''' ConnectionFailed, Boolean -''' If the last opened connection failed -''' -''' ConnectionString, String -''' The used connectionstring -''' -''' EXAMPLES: -''' -''' REMARKS: If the connection fails due to "wrong username or password", the cause might be that the server harddrive is full.. -''' -Public Class Firebird - Private _Logger As Logger - Private _LogConfig As LogConfig - Private _connectionServer As String - Private _connectionDatabase As String - Private _connectionUsername As String - Private _connectionPassword As String - Private _connectionString As String - Public _DBInitialized As Boolean = False - - Public Const MAX_POOL_SIZE = 1000 - - Public Enum TransactionMode - - NoTransaction - - ExternalTransaction - - WithTransaction - End Enum - - Public ReadOnly Property ConnectionString As String - Get - Return _connectionString - End Get - End Property - - Public ReadOnly Property DatabaseName As String - Get - Dim oRegex As New Regex("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:") - Dim oPath As String = oRegex.Replace(_connectionDatabase, "") - Dim oFileInfo As New IO.FileInfo(oPath) - Return oFileInfo.Name - End Get - End Property - - ''' - ''' - ''' - ''' The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class - ''' The server where the database lives, for example 127.0.0.1 or dd-vmx09-vm03 - ''' The location of the Database in the format `127.0.0.1:E:\Path\To\Database.FDB` - ''' The user name to connect as - ''' The user's password - ''' - Public Sub New(LogConfig As LogConfig, Datasource As String, Database As String, User As String, Password As String) - Try - _LogConfig = LogConfig - _Logger = _LogConfig.GetLogger() - Dim oConnectionString = GetConnectionString(Datasource, Database, User, Password) - - _connectionServer = Datasource - _connectionDatabase = Database - _connectionUsername = User - _connectionPassword = Password - _connectionString = oConnectionString - - _Logger.Debug("Connecting to database..") - - ' Test the connection - Dim oConnection = GetConnection() - ' If initial connection was successfully, close it - oConnection.Close() - - If oConnection Is Nothing Then - Throw New Exceptions.DatabaseException() - Else - _DBInitialized = True - End If - - _Logger.Debug("Connection sucessfully established!") - Catch ex As Exception - _Logger.Error(ex) - End Try - - End Sub - - Public Function GetConnection() As FbConnection - Try - Dim oConnection = New FbConnection(_connectionString) - oConnection.Open() - - Return oConnection - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - End Try - End Function - - ''' - ''' Builds a connectionstring from the provided arguments. - ''' - ''' The database server where to connect to - ''' The datasource, eg. the path of the FDB-file - ''' The user used to connect to the database - ''' The password of the connecting user - ''' A connectionstring - Private Function GetConnectionString(DataSource As String, Database As String, User As String, Password As String) As String - Return New FbConnectionStringBuilder With { - .DataSource = DataSource, - .Database = Database, - .UserID = User, - .Password = Password, - .Charset = "UTF8", - .MaxPoolSize = MAX_POOL_SIZE - }.ToString() - End Function - - Private Function MaybeGetTransaction(Connection As FbConnection, Mode As TransactionMode, Transaction As FbTransaction) As FbTransaction - If Mode = TransactionMode.NoTransaction Then - Return Nothing - ElseIf Mode = TransactionMode.ExternalTransaction Then - Return Transaction - Else - Return Connection.BeginTransaction() - End If - End Function - - Private Function MaybeCommitTransaction(Transaction As FbTransaction, TransactionMode As TransactionMode) As Boolean - Select Case TransactionMode - Case TransactionMode.NoTransaction - Return True - Case TransactionMode.ExternalTransaction - Return True - Case TransactionMode.WithTransaction - Try - Transaction.Commit() - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - Case Else - Return True - End Select - End Function - - ''' - ''' Executes a non-query command. - ''' - ''' The command to execute - ''' The Firebird connection to use - ''' True, if command was executed sucessfully. Otherwise false. - Public Function ExecuteNonQueryWithConnection(SqlCommand As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, Optional Transaction As FbTransaction = Nothing) As Boolean - _Logger.Debug("Executing Non-Query: {0}", SqlCommand) - - If Connection Is Nothing Then - _Logger.Warn("Connection is nothing!") - Return Nothing - End If - - Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction) - - Try - Dim oCommand As New FbCommand With { - .CommandText = SqlCommand, - .Connection = Connection - } - - If Not IsNothing(oTransaction) Then - oCommand.Transaction = oTransaction - End If - - oCommand.ExecuteNonQuery() - _Logger.Debug("Command executed!") - Catch ex As Exception - _Logger.Error(ex, $"Error in ExecuteNonQuery while executing command: [{SqlCommand}]") - _Logger.Warn($"Unexpected error in ExecuteNonQueryWithConnection: [{SqlCommand}]") - Throw ex - Finally - MaybeCommitTransaction(oTransaction, TransactionMode) - End Try - - Return True - End Function - - ''' - ''' Executes a non-query command. - ''' - ''' The command to execute - ''' True, if command was executed sucessfully. Otherwise false. - Public Function ExecuteNonQuery(SqlCommand As String) As Boolean - Using oConnection As FbConnection = GetConnection() - Return ExecuteNonQueryWithConnection(SqlCommand, oConnection) - End Using - End Function - - ''' - ''' Executes a non-query command inside the specified transaction. - ''' - ''' The command to execute - ''' True, if command was executed sucessfully. Otherwise false. - Public Function ExecuteNonQuery(SqlCommand As String, Transaction As FbTransaction) As Boolean - Using oConnection As FbConnection = GetConnection() - Return ExecuteNonQueryWithConnection(SqlCommand, oConnection, TransactionMode.ExternalTransaction, Transaction) - End Using - End Function - - ''' - ''' Executes a sql query resulting in a scalar value. - ''' - ''' The query to execute - ''' The Firebird connection to use - ''' The scalar value if the command was executed successfully. Nothing otherwise. - Public Function GetScalarValueWithConnection(SqlQuery As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, Optional Transaction As FbTransaction = Nothing) As Object - _Logger.Debug("Fetching Scalar-Value: {0}", SqlQuery) - - If Connection Is Nothing Then - _Logger.Warn("Connection is nothing!") - Return Nothing - End If - - Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction) - Dim oResult As Object - - Try - Dim oCommand As New FbCommand With { - .CommandText = SqlQuery, - .Connection = Connection, - .Transaction = oTransaction - } - oResult = oCommand.ExecuteScalar() - Catch ex As Exception - _Logger.Error(ex, $"Error in ReturnScalar while executing command: [{SqlQuery}]") - Throw ex - Finally - MaybeCommitTransaction(oTransaction, TransactionMode) - End Try - - Return oResult - End Function - - ''' - ''' Executes a sql query resulting in a scalar value. - ''' - ''' The query to execute - ''' The scalar value if the command was executed successfully. Nothing otherwise. - Public Function GetScalarValue(SqlQuery As String) As Object - Dim oConnection As FbConnection = GetConnection() - Dim oScalarValue As Object = GetScalarValueWithConnection(SqlQuery, oConnection) - oConnection.Close() - - Return oScalarValue - End Function - - ''' - ''' Executes a sql query resulting in a table of values. - ''' - ''' The query to execute - ''' The Firebird connection to use - ''' A datatable containing the results if the command was executed successfully. Nothing otherwise. - Public Function GetDatatableWithConnection(SqlQuery As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.NoTransaction, Optional Transaction As FbTransaction = Nothing) As DataTable - _Logger.Debug("Fetching Datatable: {0}", SqlQuery) - - If Connection Is Nothing Then - _Logger.Warn("Connection is nothing!") - Return Nothing - End If - - Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction) - Dim oDatatable As New DataTable() With { - .TableName = "DDRESULT" - } - - Try - Dim oAdapter As New FbDataAdapter(New FbCommand With { - .CommandText = SqlQuery, - .Connection = Connection, - .Transaction = oTransaction - }) - - oAdapter.Fill(oDatatable) - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in GetDatatableWithConnection while executing command: [{0}]", SqlQuery) - Throw ex - Finally - MaybeCommitTransaction(oTransaction, TransactionMode) - End Try - - Return oDatatable - End Function - - ''' - ''' Executes a sql query resulting in a table of values. - ''' - ''' The query to execute - ''' A datatable containing the results if the command was executed successfully. Nothing otherwise. - Public Function GetDatatable(SqlQuery As String, Optional TransactionMode As TransactionMode = TransactionMode.NoTransaction, Optional Transaction As FbTransaction = Nothing) As DataTable - Try - Dim oConnection As FbConnection = GetConnection() - Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection, TransactionMode, Transaction) - oConnection.Close() - - Return oDatatable - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in GetDatatable while executing command: '{0}'", SqlQuery) - Throw ex - End Try - End Function -End Class diff --git a/Modules.Database/Adapters/MSSQLServer.vb b/Modules.Database/Adapters/MSSQLServer.vb deleted file mode 100644 index 1b3bf08b..00000000 --- a/Modules.Database/Adapters/MSSQLServer.vb +++ /dev/null @@ -1,539 +0,0 @@ -Imports System.ComponentModel -Imports System.Data.Common -Imports System.Data.SqlClient -Imports DigitalData.Modules.Encryption -Imports DigitalData.Modules.Logging - -Public Class MSSQLServer - Implements IDatabase - - Public DBInitialized As Boolean = False - Public CurrentSQLConnectionString As String = "" - - Public Const TIMEOUT_DEFAULT As Integer = 120 - Public Const TABLE_DEFAULT As String = "DDRESULT" - - Private ReadOnly _Timeout As Integer - Private ReadOnly _Logger As Logger - - Public Enum TransactionMode - - NoTransaction - - ExternalTransaction - - WithTransaction - End Enum - - Public Sub New(LogConfig As LogConfig, ConnectionString As String, Optional Timeout As Integer = 120) - _Logger = LogConfig.GetLogger() - _Timeout = Timeout - - CurrentSQLConnectionString = ConnectionString - - Try - DBInitialized = TestCanConnect() - Catch ex As Exception - DBInitialized = False - _Logger.Error(ex) - End Try - End Sub - - Public Sub New(LogConfig As LogConfig, Server As String, Database As String, UserId As String, Password As String, Optional Timeout As Integer = 120) - _Logger = LogConfig.GetLogger() - _Timeout = Timeout - - CurrentSQLConnectionString = GetConnectionString(Server, Database, UserId, Password) - - Try - DBInitialized = TestCanConnect() - Catch ex As Exception - DBInitialized = False - _Logger.Error(ex) - End Try - End Sub - - ''' - ''' Encrypts a connection string password. - ''' - ''' A connection string with a plain-text password - ''' The connection string with the password encrypted. - - Public Shared Function EncryptConnectionString(ConnectionString As String) As String - Dim oEncryption As New EncryptionLegacy() - Dim oBuilder As New SqlConnectionStringBuilder() With {.ConnectionString = ConnectionString} - Dim oEncryptedPassword = oEncryption.EncryptData(oBuilder.Password) - oBuilder.Password = oEncryptedPassword - - Return oBuilder.ToString() - End Function - - ''' - ''' Decrypts a connection string password. - ''' - ''' A connection string with a encrypted password - ''' The connection string with the password decrypted. - - Public Shared Function DecryptConnectionString(ConnectionString As String) As String - Dim oEncryption As New EncryptionLegacy() - Dim oBuilder As New SqlConnectionStringBuilder() With {.ConnectionString = ConnectionString} - Dim oDecryptedPassword = oEncryption.DecryptData(oBuilder.Password) - oBuilder.Password = oDecryptedPassword - - Return oBuilder.ToString() - End Function - - - Public Function GetConnectionString(Server As String, Database As String, UserId As String, Password As String) As String - Dim oConnectionStringBuilder As New SqlConnectionStringBuilder() With { - .DataSource = Server, - .InitialCatalog = Database, - .UserId = UserId, - .Password = Password - } - - Return oConnectionStringBuilder.ToString - End Function - - - Public Function GetConnection() As SqlConnection - Try - Dim oConnection = GetSQLConnection() - Return oConnection - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - End Try - End Function - - - Private Function MaybeGetTransaction(Connection As SqlConnection, Mode As TransactionMode, Transaction As SqlTransaction) As SqlTransaction - If Connection Is Nothing Then - Throw New ArgumentNullException("Connection") - End If - - If Mode = TransactionMode.NoTransaction Then - Return Nothing - ElseIf Mode = TransactionMode.ExternalTransaction Then - Return Transaction - Else - Return Connection.BeginTransaction() - End If - End Function - - - Private Function MaybeCommitTransaction(Transaction As SqlTransaction, TransactionMode As TransactionMode) As Boolean - Select Case TransactionMode - Case TransactionMode.NoTransaction - Return True - Case TransactionMode.ExternalTransaction - Return True - Case TransactionMode.WithTransaction - Try - Transaction.Commit() - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - Case Else - Return True - End Select - End Function - - Public Function GetConnectionStringForId(pConnectionId As Integer) As String - Return Get_ConnectionStringforID(pConnectionId) - End Function - - Public Function Get_ConnectionStringforID(pConnectionId As Integer) As String - Dim oConnectionString As String = String.Empty - - _Logger.Debug("Getting ConnectionString for ConnectionId [{0}]", pConnectionId) - - If pConnectionId = 0 Then - _Logger.Warn("ConnectionId was 0. Falling back to default connection.") - Return String.Empty - End If - - Try - Dim oTable As DataTable = GetDatatable($"SELECT * FROM TBDD_CONNECTION WHERE GUID = {pConnectionId}") - If oTable.Rows.Count = 1 Then - Dim oRow As DataRow = oTable.Rows(0) - Dim oProvider = oRow.Item("SQL_PROVIDER").ToString.ToUpper - Dim oServer = oRow.Item("SERVER") - Dim oDatabase = oRow.Item("DATENBANK") - Dim oUser = oRow.Item("USERNAME") - Dim oPassword = oRow.Item("PASSWORD") - - Select Case oProvider - Case "MS-SQL" - If oUser = "WINAUTH" Then - oConnectionString = $"Server={oServer};Database={oDatabase};Trusted_Connection=True;" - Else - oConnectionString = $"Server={oServer};Database={oDatabase};User Id={oUser};Password={oPassword};" - End If - - Case "ORACLE" - If oRow.Item("BEMERKUNG").ToString.Contains("without tnsnames") Then - oConnectionString = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={oServer})(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={oDatabase})));User Id={oUser};Password={oPassword};" - Else - oConnectionString = $"Data Source={oServer};Persist Security Info=True;User Id={oUser};Password={oPassword};Unicode=True" - End If - - Case Else - _Logger.Warn("Provider [{0}] not supported!", oProvider) - - End Select - - Else - _Logger.Warn("No entry for Connection-ID: [{0}] ", pConnectionId.ToString) - End If - - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in Get_ConnectionStringforID") - End Try - - Return DecryptConnectionString(oConnectionString) - End Function - - - Private Function TestCanConnect() As Boolean - Return TestCanConnect(CurrentSQLConnectionString) - End Function - - Private Function TestCanConnect(ConnectionString As String) As Boolean - Try - _Logger.Debug("Testing connection to [{0}]", MaskConnectionString(ConnectionString)) - - Dim oDecryptedConnectionString = DecryptConnectionString(ConnectionString) - Dim oConnection As New SqlConnection(oDecryptedConnectionString) - OpenSQLConnection(oConnection) - oConnection.Close() - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - End Function - - Private Function TestCanConnect(Connection As SqlConnection) As Boolean - Try - If Connection Is Nothing Then - _Logger.Warn("TestCanConnect: Connection is nothing!") - Return False - End If - - _Logger.Debug("Testing connection to [{0}]", MaskConnectionString(Connection.ConnectionString)) - - OpenSQLConnection(Connection) - Connection.Close() - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - End Function - - ''' - ''' This Function intentionally has no try..catch block to have any errors caught outside - ''' - ''' - ''' - Private Function OpenSQLConnection(Connection As SqlConnection) As SqlConnection - If Connection.State = ConnectionState.Closed Then - Connection.Open() - End If - - Return Connection - End Function - - - Private Function GetSQLConnection() As SqlConnection - Return GetConnection(CurrentSQLConnectionString) - End Function - - Private Function GetConnection(ConnectionString As String) As SqlConnection - Try - Dim oConnection As New SqlConnection(ConnectionString) - oConnection = OpenSQLConnection(oConnection) - - Dim oMaskedConnectionString = MaskConnectionString(ConnectionString) - _Logger.Debug("The Following Connection is open: {0}", oMaskedConnectionString) - - Return oConnection - Catch ex As Exception - _Logger.Error(ex) - - Return Nothing - End Try - End Function - - - Private Function MaskConnectionString(ConnectionString As String) As String - Try - If ConnectionString Is Nothing OrElse ConnectionString.Length = 0 Then - Throw New ArgumentNullException("ConnectionString") - End If - - Dim oBuilder As New SqlConnectionStringBuilder() With {.ConnectionString = ConnectionString} - Dim oConnectionString = ConnectionString.Replace(oBuilder.Password, "XXXXX") - Return oConnectionString - Catch ex As Exception - _Logger.Error(ex) - Return "Invalid ConnectionString" - End Try - End Function - - ' - Public Function GetDatatable(SqlCommand As String) As DataTable Implements IDatabase.GetDatatable - Return GetDatatable(SqlCommand, _Timeout) - End Function - - ''' - ''' Returns a datatable for a sql-statement - ''' - ''' sqlcommand for datatable (select XYZ from TableORView) - ''' Returns a datatable - Public Function GetDatatable(SqlCommand As String, Timeout As Integer) As DataTable Implements IDatabase.GetDatatable - Using oSqlConnection = GetSQLConnection() - Return GetDatatableWithConnectionObject(SqlCommand, oSqlConnection, TransactionMode.WithTransaction, Nothing, Timeout) - End Using - End Function - - ' - Public Function GetDatatable(SqlCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = 120) As DataTable - Using oSqlConnection = GetSQLConnection() - Return GetDatatableWithConnectionObject(SqlCommand, oSqlConnection, TransactionMode.ExternalTransaction, Transaction, Timeout) - End Using - End Function - - ' - Public Async Function GetDatatableAsync(SqlCommand As String, Optional Timeout As Integer = 120) As Task(Of DataTable) - Return Await Task.Run(Function() GetDatatable(SqlCommand, Timeout)) - End Function - - ' - Public Function GetDatatableWithConnection(SqlCommand As String, ConnectionString As String, Optional Timeout As Integer = 120) As DataTable - Using oConnection = GetConnection(ConnectionString) - Return GetDatatableWithConnectionObject(SqlCommand, oConnection, Timeout:=Timeout) - End Using - End Function - - Public Function GetDatatableWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection, - Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, - Optional Transaction As SqlTransaction = Nothing, - Optional Timeout As Integer = 120) As DataTable - Dim oTransaction As SqlTransaction = MaybeGetTransaction(SqlConnection, TransactionMode, Transaction) - Dim oTable As New DataTable() With {.TableName = TABLE_DEFAULT} - - Try - Dim oAdapter As New SqlDataAdapter(New SqlCommand With { - .CommandText = SqlCommand, - .Connection = SqlConnection, - .Transaction = oTransaction, - .CommandTimeout = Timeout - }) - - _Logger.Debug("GetDatatableWithConnectionObject: Running Query [{0}]", SqlCommand) - - oAdapter.Fill(oTable) - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("GetDatatableWithConnectionObject: Error in GetDatatableWithConnection while executing command: [{0}]", SqlCommand) - Throw ex - Finally - MaybeCommitTransaction(oTransaction, TransactionMode) - End Try - - Return oTable - End Function - - ' - Public Function ExecuteNonQuery(SQLCommand As String) As Boolean Implements IDatabase.ExecuteNonQuery - Using oConnection = GetSQLConnection() - Return ExecuteNonQueryWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, _Timeout) - End Using - End Function - - ' - Public Function ExecuteNonQuery(SQLCommand As String, Timeout As Integer) As Boolean Implements IDatabase.ExecuteNonQuery - Using oConnection = GetSQLConnection() - Return ExecuteNonQueryWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout) - End Using - End Function - - ' - Public Function ExecuteNonQuery(SQLCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = 120) As Boolean - Using oConnection = GetSQLConnection() - Return ExecuteNonQueryWithConnectionObject(SQLCommand, Transaction.Connection, TransactionMode.ExternalTransaction, Transaction, Timeout) - End Using - End Function - - ' - Public Async Function ExecuteNonQueryAsync(SQLCommand As String, Optional Timeout As Integer = 120) As Task(Of Boolean) - Return Await Task.Run(Function() ExecuteNonQuery(SQLCommand, Timeout)) - End Function - - ' - Public Function ExecuteNonQueryWithConnection(pSQLCommand As String, ConnString As String, Optional Timeout As Integer = 120) As Boolean - Using oConnection = GetConnection(ConnString) - Return ExecuteNonQueryWithConnectionObject(pSQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout) - End Using - End Function - - Public Function ExecuteNonQueryWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection, - Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, - Optional Transaction As SqlTransaction = Nothing, - Optional Timeout As Integer = 120) As Boolean - Dim oTransaction As SqlTransaction = MaybeGetTransaction(SqlConnection, TransactionMode, Transaction) - - Try - _Logger.Debug("ExecuteNonQueryWithConnectionObject: Running Command [{0}]", SqlCommand) - - Using oSQLCOmmand = SqlConnection.CreateCommand() - oSQLCOmmand.CommandText = SqlCommand - oSQLCOmmand.CommandTimeout = Timeout - oSQLCOmmand.Transaction = oTransaction - oSQLCOmmand.ExecuteNonQuery() - End Using - - Return True - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("ExecuteNonQueryWithConnectionObject: Error in ExecuteNonQueryWithConnectionObject while executing command: [{0}]-[{1}]", SqlCommand, SqlConnection.ConnectionString) - Return False - Finally - MaybeCommitTransaction(oTransaction, TransactionMode) - End Try - End Function - - ' - Public Function GetScalarValue(SQLQuery As String) As Object Implements IDatabase.GetScalarValue - Using oConnection As SqlConnection = GetSQLConnection() - Return GetScalarValueWithConnectionObject(SQLQuery, oConnection) - End Using - End Function - - ' - Public Function GetScalarValue(SQLCommand As String, Timeout As Integer) As Object Implements IDatabase.GetScalarValue - Using oConnection = GetSQLConnection() - Return GetScalarValueWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout) - End Using - End Function - - ' - Public Function GetScalarValue(SQLCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = 120) As Object - Using oConnection = GetSQLConnection() - Return GetScalarValueWithConnectionObject(SQLCommand, oConnection, TransactionMode.ExternalTransaction, Transaction, Timeout) - End Using - End Function - - ' - Public Async Function GetScalarValueAsync(SQLQuery As String, Optional Timeout As Integer = 120) As Task(Of Object) - Return Await Task.Run(Function() GetScalarValue(SQLQuery, Timeout)) - End Function - - ' - Public Function GetScalarValueWithConnection(SQLCommand As String, ConnectionString As String, Optional Timeout As Integer = 120) As Object - Using oConnection = GetConnection(ConnectionString) - Return GetScalarValueWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout) - End Using - End Function - - Public Function GetScalarValueWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection, - Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, - Optional Transaction As SqlTransaction = Nothing, - Optional Timeout As Integer = 120) As Object - - Dim oTransaction As SqlTransaction = MaybeGetTransaction(SqlConnection, TransactionMode, Transaction) - Dim oResult As Object = Nothing - - Try - Using oSQLCOmmand = SqlConnection.CreateCommand() - oSQLCOmmand.CommandText = SqlCommand - oSQLCOmmand.CommandTimeout = Timeout - oSQLCOmmand.Transaction = oTransaction - - oResult = oSQLCOmmand.ExecuteScalar() - End Using - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("GetDatatableWithConnectionObject: Error in GetDatatableWithConnection while executing command: [{0}]", SqlCommand) - Finally - MaybeCommitTransaction(oTransaction, TransactionMode) - End Try - - Return oResult - End Function - - Public Function GetScalarValue(SQLCommand As SqlCommand, OutputParameter As String, Timeout As Integer) As Object - Try - If TestCanConnect() = False Then - Return Nothing - End If - - _Logger.Debug("GetScalarValue: Running Query [{0}]", SQLCommand) - - If SQLCommand.CommandText.Contains(" ") Then - SQLCommand.CommandType = CommandType.Text - Else - SQLCommand.CommandType = CommandType.StoredProcedure - End If - - Using oConnection As SqlConnection = GetSQLConnection() - - SQLCommand.Connection = oConnection - SQLCommand.Parameters(OutputParameter).Direction = ParameterDirection.Output - SQLCommand.CommandTimeout = Timeout - SQLCommand.ExecuteNonQuery() - oConnection.Close() - - Return SQLCommand.Parameters(OutputParameter).Value - End Using - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn($"GetScalarValue failed SQLCommand [{SQLCommand}]") - - Return Nothing - End Try - End Function - - ' - Public Function GetScalarValue(SQLCommand As SqlCommand, OutputParameter As String) As Object - Return GetScalarValue(SQLCommand, OutputParameter, _Timeout) - End Function - - ''' - ''' Executes the passed sql-statement in asyncmode - ''' - ''' the sql statement - ''' Optional Timeout - ''' - Public Sub NewExecuteNonQueryAsync(SqlCommand As String, Optional commandtimeout As Integer = 120) - _Logger.Debug("NewExecuteNonQueryAsync: Running Query [{0}]", SqlCommand) - - Try - Dim oCallback As New AsyncCallback(AddressOf NewExecuteNonQueryAsync_Callback) - - Using oConnection As SqlConnection = GetSQLConnection() - Using oSQLCOmmand = oConnection.CreateCommand() - oSQLCOmmand.CommandText = SqlCommand - oSQLCOmmand.CommandTimeout = commandtimeout - oSQLCOmmand.BeginExecuteNonQuery(oCallback, oSQLCOmmand) - End Using - End Using - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn($"NewExecuteNonQueryAsync failed SQLCommand [{SqlCommand}]") - - End Try - End Sub - - ' - Private Sub NewExecuteNonQueryAsync_Callback(ByVal result As IAsyncResult) - Dim command As SqlCommand = CType(result.AsyncState, SqlCommand) - Dim res = command.EndExecuteNonQuery(result) - _Logger.Info("Finished executing Async database operation: {0}", command.CommandText) - End Sub -End Class diff --git a/Modules.Database/Adapters/ODBC.vb b/Modules.Database/Adapters/ODBC.vb deleted file mode 100644 index 2d95c07d..00000000 --- a/Modules.Database/Adapters/ODBC.vb +++ /dev/null @@ -1,179 +0,0 @@ -Imports System.Data.Odbc -Imports DigitalData.Modules.Logging - -Public Class ODBC - Private _Logger As Logger - Private _LogConfig As LogConfig - - Private _connectionDatasource As String - Private _connectionUsername As String - Private _connectionPassword As String - Private _connectionString As String - - Public Sub New(LogConfig As LogConfig, Datasource As String, User As String, Password As String) - Try - _LogConfig = LogConfig - _Logger = _LogConfig.GetLogger() - - _connectionDatasource = Datasource - _connectionPassword = Password - _connectionUsername = User - _connectionString = GetConnectionString(Datasource, User, Password) - - _Logger.Debug("Connecting to database..") - - ' Test the connection - Dim oConnection = GetConnection() - - If oConnection Is Nothing Then - Throw New Exceptions.DatabaseException() - End If - - ' If initial connection was successfully, close it - oConnection.Close() - - _Logger.Debug("Connection sucessfully established!") - Catch ex As Exception - _Logger.Error(ex) - End Try - End Sub - - Public Function GetConnection() As OdbcConnection - Try - Dim oConnection As New OdbcConnection(_connectionString) - oConnection.Open() - - Return oConnection - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - End Try - End Function - - Public Function GetConnectionString(Datasource As String, User As String, Password As String) As Object - Return $"DSN={Datasource};UID={User};PWD={Password}" - End Function - - ''' - ''' Executes a non-query command. - ''' - ''' The command to execute - ''' The Firebird connection to use - ''' True, if command was executed sucessfully. Otherwise false. - Public Function ExecuteNonQueryWithConnection(SqlQuery As String, Connection As OdbcConnection) As Object - _Logger.Debug("Fetching Non-Query: {0}", SqlQuery) - - Dim oResult As Object - - If Connection Is Nothing Then - _Logger.Warn("Connection is nothing!") - Return Nothing - End If - - Try - Dim oCommand As New OdbcCommand(SqlQuery, Connection) - oResult = oCommand.ExecuteNonQuery() - Catch ex As Exception - _Logger.Error(ex, $"Error in ExecuteNonQueryWithConnection while executing command: '{SqlQuery}'") - Throw ex - End Try - - Return oResult - End Function - - ''' - ''' Executes a non-query command. - ''' - ''' The command to execute - ''' True, if command was executed sucessfully. Otherwise false. - Public Function ExecuteNonQuery(SqlCommand As String) As Boolean - Dim oConnection As OdbcConnection = GetConnection() - Dim oScalarValue As Object = ExecuteNonQueryWithConnection(SqlCommand, oConnection) - oConnection.Close() - - Return oScalarValue - End Function - - ''' - ''' Executes a sql query resulting in a scalar value. - ''' - ''' The query to execute - ''' The Firebird connection to use - ''' The scalar value if the command was executed successfully. Nothing otherwise. - Public Function GetScalarValueWithConnection(SqlQuery As String, Connection As OdbcConnection) As Object - _Logger.Debug("Fetching Datatable: {0}", SqlQuery) - - Dim oResult As Object - - If Connection Is Nothing Then - _Logger.Warn("Connection is nothing!") - Return Nothing - End If - - Try - Dim oCommand As New OdbcCommand(SqlQuery, Connection) - oResult = oCommand.ExecuteScalar() - Catch ex As Exception - _Logger.Error(ex, $"Error in GetDatatableWithConnection while executing command: '{SqlQuery}'") - Throw ex - End Try - - Return oResult - End Function - - ''' - ''' Executes a sql query resulting in a table of values. - ''' - ''' The query to execute - ''' A datatable containing the results if the command was executed successfully. Nothing otherwise. - Public Function GetScalarValue(SqlQuery As String) As Object - Dim oConnection As OdbcConnection = GetConnection() - Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection) - oConnection.Close() - - Return oDatatable - End Function - - ''' - ''' Executes a sql query resulting in a table of values. - ''' - ''' The query to execute - ''' The Firebird connection to use - ''' A datatable containing the results if the command was executed successfully. Nothing otherwise. - Public Function GetDatatableWithConnection(SqlQuery As String, Connection As OdbcConnection) As DataTable - _Logger.Debug("Fetching Datatable: {0}", SqlQuery) - - Dim oDatatable As New DataTable() With { - .TableName = "DDRESULT" - } - - If Connection Is Nothing Then - _Logger.Warn("Connection is nothing!") - Return Nothing - End If - - Try - - Dim oAdapter As New OdbcDataAdapter(SqlQuery, Connection) - oAdapter.Fill(oDatatable) - Catch ex As Exception - _Logger.Error(ex, $"Error in GetDatatableWithConnection while executing command: '{SqlQuery}'") - Throw ex - End Try - - Return oDatatable - End Function - - ''' - ''' Executes a sql query resulting in a table of values. - ''' - ''' The query to execute - ''' A datatable containing the results if the command was executed successfully. Nothing otherwise. - Public Function GetDatatable(SqlQuery As String) As DataTable - Dim oConnection As OdbcConnection = GetConnection() - Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection) - oConnection.Close() - - Return oDatatable - End Function -End Class diff --git a/Modules.Database/Adapters/Oracle.vb b/Modules.Database/Adapters/Oracle.vb deleted file mode 100644 index d40662ae..00000000 --- a/Modules.Database/Adapters/Oracle.vb +++ /dev/null @@ -1,120 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports Oracle.ManagedDataAccess.Client - -Public Class Oracle - Public DBInitialized As Boolean = False - Public CurrentOracleConnectionString As String = "" - - Private _Timeout As Integer - Private _Logger As Logger - - Public Sub New(LogConfig As LogConfig, ConnectionString As String, Optional Timeout As Integer = 120) - _Timeout = Timeout - _Logger = LogConfig.GetLogger() - - CurrentOracleConnectionString = ConnectionString - DBInitialized = TestCanConnect(CurrentOracleConnectionString) - End Sub - - Public Sub New(LogConfig As LogConfig, Server As String, Database As String, UserId As String, Password As String, Optional Timeout As Integer = 120) - _Timeout = Timeout - _Logger = LogConfig.GetLogger() - - CurrentOracleConnectionString = GetConnectionString(Server, Database, UserId, Password) - DBInitialized = TestCanConnect(CurrentOracleConnectionString) - End Sub - - Private Function TestCanConnect(ConnectionString As String) As Boolean - Try - Dim oSQLconnect As New OracleConnection - oSQLconnect.ConnectionString = ConnectionString - oSQLconnect.Open() - oSQLconnect.Close() - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - End Function - - Public Shared Function GetConnectionString(Server As String, Database As String, UserId As String, Password As String) As String - Dim oConnectionString = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={Server})(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={Database})));User Id={UserId};Password={Password};" - Return oConnectionString - End Function - - ''' - ''' Returns a datatable for a sql-statement - ''' - ''' sqlcommand for datatable (select XYZ from TableORView) - ''' Returns a datatable - Public Function GetDatatable(sqlcommand As String) As DataTable - Try - Dim oSQLconnect As New OracleConnection - Dim oSQLCOmmand As OracleCommand - oSQLconnect.ConnectionString = CurrentOracleConnectionString - oSQLconnect.Open() - oSQLCOmmand = oSQLconnect.CreateCommand() - oSQLCOmmand.CommandText = sqlcommand - oSQLCOmmand.CommandTimeout = _Timeout - Dim adapter1 As OracleDataAdapter = New OracleDataAdapter(oSQLCOmmand) - Dim dt As DataTable = New DataTable() - adapter1.Fill(dt) - oSQLconnect.Close() - Return dt - Catch ex As Exception - _Logger.Error(ex) - _Logger.Debug("sqlcommand: " & sqlcommand) - Return Nothing - End Try - End Function - ''' - ''' Executes the passed sql-statement - ''' - ''' the sql statement - ''' Returns true if properly executed, else false - Public Function NewExecutenonQuery(executeStatement As String) As Boolean - Try - Dim oSQLconnect As New OracleConnection - Dim oSQLCOmmand As OracleCommand - oSQLconnect.ConnectionString = CurrentOracleConnectionString - oSQLconnect.Open() - oSQLCOmmand = oSQLconnect.CreateCommand() - oSQLCOmmand.CommandText = executeStatement - oSQLCOmmand.CommandTimeout = _Timeout - oSQLCOmmand.ExecuteNonQuery() - oSQLCOmmand.Dispose() - oSQLconnect.Close() - Return True - Catch ex As Exception - _Logger.Error(ex) - _Logger.Debug("executeStatement: " & executeStatement) - Return False - End Try - End Function - - ''' - ''' Executes the passed sql-statement as Scalar - ''' - ''' the sql statement - ''' Returns the scalarvalue - Public Function NewExecuteScalar(executeStatement As String) - Dim result - Try - Dim oSQLconnect As New OracleConnection - Dim oSQLCOmmand As OracleCommand - oSQLconnect.ConnectionString = CurrentOracleConnectionString - oSQLconnect.Open() - oSQLCOmmand = oSQLconnect.CreateCommand() - oSQLCOmmand.CommandText = executeStatement - oSQLCOmmand.CommandTimeout = _Timeout - result = oSQLCOmmand.ExecuteScalar() - oSQLCOmmand.Dispose() - oSQLconnect.Close() - Return result - Catch ex As Exception - _Logger.Error(ex) - _Logger.Debug("executeStatement: " & executeStatement) - Throw ex - End Try - End Function -End Class diff --git a/Modules.Database/App.config b/Modules.Database/App.config deleted file mode 100644 index c64db477..00000000 --- a/Modules.Database/App.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - -
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.Database/ConnectionString.vb b/Modules.Database/ConnectionString.vb deleted file mode 100644 index ec5575f1..00000000 --- a/Modules.Database/ConnectionString.vb +++ /dev/null @@ -1,20 +0,0 @@ -Public Class ConnectionString - Public Enum ConnectionStringType - MSSQLServer - ODBC - Oracle - End Enum - - Public Shared Function GetConnectionStringType(pConnectionString As String) As ConnectionStringType - ' This variable only exists to shorten the if-conditions - Dim c = pConnectionString - - If (c.Contains("Server=") Or c.Contains("Data Source=")) And (c.Contains("Database=") Or c.Contains("Initial Catalog=")) Then - Return ConnectionStringType.MSSQLServer - ElseIf (c.Contains("dsn=")) Then - Return ConnectionStringType.ODBC - Else - Return ConnectionStringType.Oracle - End If - End Function -End Class diff --git a/Modules.Database/Constants.vb b/Modules.Database/Constants.vb deleted file mode 100644 index e18e265b..00000000 --- a/Modules.Database/Constants.vb +++ /dev/null @@ -1,7 +0,0 @@ -Public Class Constants - Public Const PROVIDER_MSSQL = "MS-SQL" - Public Const PROVIDER_ORACLE = "ORACLE" - Public Const PROVIDER_ODBC = "ODBC" - - Public Const DEFAULT_TIMEOUT = 120 -End Class diff --git a/Modules.Database/Database.vbproj b/Modules.Database/Database.vbproj deleted file mode 100644 index 6a4c15bd..00000000 --- a/Modules.Database/Database.vbproj +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - Debug - AnyCPU - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Library - DigitalData.Modules.Database - DigitalData.Modules.Database - 512 - Windows - v4.6.1 - - - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Database.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Database.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - - - ..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll - - - ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - P:\Visual Studio Projekte\Bibliotheken\Oracle.ManagedDataAccess.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - Designer - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {8a8f20fc-c46e-41ac-bee7-218366cfff99} - Encryption - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - - - - \ No newline at end of file diff --git a/Modules.Database/Exceptions.vb b/Modules.Database/Exceptions.vb deleted file mode 100644 index 4f86f7e4..00000000 --- a/Modules.Database/Exceptions.vb +++ /dev/null @@ -1,18 +0,0 @@ -Public Class Exceptions - - Public Class DatabaseException - Inherits Exception - - Public Sub New() - End Sub - - Public Sub New(message As String) - MyBase.New(message) - End Sub - - Public Sub New(message As String, innerException As Exception) - MyBase.New(message, innerException) - End Sub - End Class - -End Class diff --git a/Modules.Database/IDatabase.vb b/Modules.Database/IDatabase.vb deleted file mode 100644 index b9c5420f..00000000 --- a/Modules.Database/IDatabase.vb +++ /dev/null @@ -1,12 +0,0 @@ -Imports System.Data.Common - -Public Interface IDatabase - Function GetDatatable(SqlCommand As String, Timeout As Integer) As DataTable - Function GetDatatable(SqlCommand As String) As DataTable - - Function ExecuteNonQuery(SQLCommand As String, Timeout As Integer) As Boolean - Function ExecuteNonQuery(SQLCommand As String) As Boolean - - Function GetScalarValue(SQLQuery As String, Timeout As Integer) As Object - Function GetScalarValue(SQLQuery As String) As Object -End Interface diff --git a/Modules.Database/My Project/Application.Designer.vb b/Modules.Database/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Database/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Database/My Project/Application.myapp b/Modules.Database/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Database/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Database/My Project/AssemblyInfo.vb b/Modules.Database/My Project/AssemblyInfo.vb deleted file mode 100644 index 065bd084..00000000 --- a/Modules.Database/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Database/My Project/Resources.Designer.vb b/Modules.Database/My Project/Resources.Designer.vb deleted file mode 100644 index 975b72a9..00000000 --- a/Modules.Database/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Database.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Database/My Project/Resources.resx b/Modules.Database/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Database/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Database/My Project/Settings.Designer.vb b/Modules.Database/My Project/Settings.Designer.vb deleted file mode 100644 index 50b18d21..00000000 --- a/Modules.Database/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Database.My.MySettings - Get - Return Global.DigitalData.Modules.Database.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Database/My Project/Settings.settings b/Modules.Database/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Database/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Database/TableCache.vb b/Modules.Database/TableCache.vb deleted file mode 100644 index 28a1e39d..00000000 --- a/Modules.Database/TableCache.vb +++ /dev/null @@ -1,17 +0,0 @@ -Public Class TableCache - Private Items As New Dictionary(Of String, DataTable) - - Public Function [Get](SQLCommand As String) - Dim oKey As String = SQLCommand.ToUpper - If Items.ContainsKey(oKey) Then - Return Items.Item(oKey) - Else - - End If - End Function - - Private Function SaveTable() - - End Function - -End Class diff --git a/Modules.Database/packages.config b/Modules.Database/packages.config deleted file mode 100644 index 0cbaa359..00000000 --- a/Modules.Database/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Modules.EDMI.File.Test/EDMI.File.Test.vbproj b/Modules.EDMI.File.Test/EDMI.File.Test.vbproj deleted file mode 100644 index c269bd8e..00000000 --- a/Modules.EDMI.File.Test/EDMI.File.Test.vbproj +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - Debug - AnyCPU - {16857A4E-2609-47E6-9C35-7669D64DD040} - Library - EDMI.File.Test - EDMI.File.Test - 512 - Windows - v4.7.2 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - true - true - bin\Debug\ - EDMI.File.Test.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - EDMI.File.Test.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - ..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - - - ..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {1477032d-7a02-4c5f-b026-a7117da4bc6b} - EDMI.File - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - - - - \ No newline at end of file diff --git a/Modules.EDMI.File.Test/My Project/Application.Designer.vb b/Modules.EDMI.File.Test/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c7..00000000 --- a/Modules.EDMI.File.Test/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.EDMI.File.Test/My Project/Application.myapp b/Modules.EDMI.File.Test/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.EDMI.File.Test/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.EDMI.File.Test/My Project/AssemblyInfo.vb b/Modules.EDMI.File.Test/My Project/AssemblyInfo.vb deleted file mode 100644 index d81985a1..00000000 --- a/Modules.EDMI.File.Test/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - - - - - - - - - - - - -' - - diff --git a/Modules.EDMI.File.Test/My Project/Resources.Designer.vb b/Modules.EDMI.File.Test/My Project/Resources.Designer.vb deleted file mode 100644 index 3a5490d9..00000000 --- a/Modules.EDMI.File.Test/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EDMI.File.Test.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.EDMI.File.Test/My Project/Resources.resx b/Modules.EDMI.File.Test/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.EDMI.File.Test/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.EDMI.File.Test/My Project/Settings.Designer.vb b/Modules.EDMI.File.Test/My Project/Settings.Designer.vb deleted file mode 100644 index 1157b717..00000000 --- a/Modules.EDMI.File.Test/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.EDMI.File.Test.My.MySettings - Get - Return Global.EDMI.File.Test.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.EDMI.File.Test/My Project/Settings.settings b/Modules.EDMI.File.Test/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.EDMI.File.Test/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.EDMI.File.Test/PathTest.vb b/Modules.EDMI.File.Test/PathTest.vb deleted file mode 100644 index b0531bd4..00000000 --- a/Modules.EDMI.File.Test/PathTest.vb +++ /dev/null @@ -1,22 +0,0 @@ -Imports System.Text -Imports DigitalData.Modules.Logging -Imports Microsoft.VisualStudio.TestTools.UnitTesting -Imports DigitalData.Modules.EDMI - - Public Class PathTest - - ' Public Sub TestMethod1() - ' Dim oLogConfig As New LogConfig(LogConfig.PathType.Temp) - ' Dim oTempPath = System.IO.Path.GetTempPath() - ' Dim oPath As New DigitalData.Modules.EDMI.File.Path(oLogConfig, oTempPath) - ' Dim oNow As DateTime = DateTime.Now - ' Dim oYear = oNow.Year - ' Dim oMonth = oNow.Month.ToString.PadLeft(2, "0") - ' Dim oDay = oNow.Day.ToString.PadLeft(2, "0") - - - ' Assert.AreEqual(oPath.GetFullPath("TestDocumentType"), $"{oTempPath}EDMI\Active\TestDocumentType\{oYear}\{oMonth}\{oDay}") - ' Assert.AreEqual(oPath.GetArchivePath("TestDocumentType"), $"{oTempPath}EDMI\Archive\TestDocumentType\{oYear}\{oMonth}\{oDay}") - 'End Sub - -End Class \ No newline at end of file diff --git a/Modules.EDMI.File.Test/packages.config b/Modules.EDMI.File.Test/packages.config deleted file mode 100644 index f84cb106..00000000 --- a/Modules.EDMI.File.Test/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Modules.EDMI.File/Archive.vb b/Modules.EDMI.File/Archive.vb deleted file mode 100644 index ddaddebe..00000000 --- a/Modules.EDMI.File/Archive.vb +++ /dev/null @@ -1,39 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.Logging - -Public Class Archive - Private ReadOnly _LogConfig As LogConfig - Private ReadOnly _Logger As Logger - - Public Sub New(LogConfig As LogConfig) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - End Sub - - ''' - ''' Sets a retention-period for a give file path by setting the file attributes LastAccessTime and ReadOnly - ''' - ''' - ''' If greater than 0, sets this plus the current date as LastAccessTime - ''' If true, sets ReadOnly Attribute - Public Sub SetRetention(FilePath As String, RetentionTimeInDays As Integer, [ReadOnly] As Boolean) - Try - If RetentionTimeInDays > 0 Then - _Logger.Info("Setting LastAccessTime for file [{0}]", FilePath) - IO.File.SetLastAccessTime(FilePath, Date.Now.AddDays(RetentionTimeInDays)) - End If - Catch ex As Exception - _Logger.Error(ex) - End Try - - Try - If [ReadOnly] Then - _Logger.Info("Setting ReadOnly Attribute for file [{0}]", FilePath) - Dim oAttributes = IO.File.GetAttributes(FilePath) Or FileAttributes.ReadOnly - IO.File.SetAttributes(FilePath, oAttributes) - End If - Catch ex As Exception - _Logger.Error(ex) - End Try - End Sub -End Class diff --git a/Modules.EDMI.File/EDMI.File.vbproj b/Modules.EDMI.File/EDMI.File.vbproj deleted file mode 100644 index ba20ad95..00000000 --- a/Modules.EDMI.File/EDMI.File.vbproj +++ /dev/null @@ -1,121 +0,0 @@ - - - - - Debug - AnyCPU - {1477032D-7A02-4C5F-B026-A7117DA4BC6B} - Library - DigitalData.Modules.EDMI.File - DigitalData.Modules.EDMI.File - 512 - Windows - v4.7.2 - true - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.EDMI.File.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.EDMI.File.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - - \ No newline at end of file diff --git a/Modules.EDMI.File/My Project/Application.Designer.vb b/Modules.EDMI.File/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.EDMI.File/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.EDMI.File/My Project/Application.myapp b/Modules.EDMI.File/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.EDMI.File/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.EDMI.File/My Project/AssemblyInfo.vb b/Modules.EDMI.File/My Project/AssemblyInfo.vb deleted file mode 100644 index 3ce8de0f..00000000 --- a/Modules.EDMI.File/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/Modules.EDMI.File/My Project/Resources.Designer.vb b/Modules.EDMI.File/My Project/Resources.Designer.vb deleted file mode 100644 index d1edc291..00000000 --- a/Modules.EDMI.File/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.EDMI.File.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.EDMI.File/My Project/Resources.resx b/Modules.EDMI.File/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.EDMI.File/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.EDMI.File/My Project/Settings.Designer.vb b/Modules.EDMI.File/My Project/Settings.Designer.vb deleted file mode 100644 index f8429069..00000000 --- a/Modules.EDMI.File/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.EDMI.File.My.MySettings - Get - Return Global.DigitalData.Modules.EDMI.File.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.EDMI.File/My Project/Settings.settings b/Modules.EDMI.File/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.EDMI.File/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.EDMI.File/Path.vb b/Modules.EDMI.File/Path.vb deleted file mode 100644 index 3b57e9d6..00000000 --- a/Modules.EDMI.File/Path.vb +++ /dev/null @@ -1,50 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports System.IO - -Public Class Path - Private ReadOnly _LogConfig As LogConfig - Private ReadOnly _Logger As Logger - Private ReadOnly _BasePath As String - - Public Sub New(LogConfig As LogConfig, DatastoreBasePath As String) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - _BasePath = DatastoreBasePath - End Sub - - Public Function GetFullPath(DocumentType As String, Optional FileName As String = "") As String - Dim oParts = New List(Of String) From {_BasePath} - oParts.AddRange(Do_GetRelativePath(DocumentType, FileName)) - - Return IO.Path.Combine(oParts.ToArray()) - End Function - - Public Function GetFullPathFromRelativePath(RelativePath As String) As String - Dim oParts = New List(Of String) From {_BasePath} - oParts.Add(RelativePath) - Return IO.Path.Combine(oParts.ToArray) - End Function - - Public Function GetRelativePath(DocumentType As String, Optional FileName As String = "") As String - Return IO.Path.Combine(Do_GetRelativePath(DocumentType, FileName).ToArray) - End Function - - Private Function Do_GetRelativePath(DocumentType As String, Optional FileName As String = "") As List(Of String) - Dim oPathParts As New List(Of String) From {DocumentType} - oPathParts.AddRange(GetDatePath()) - oPathParts.Add(FileName) - - Return oPathParts - End Function - - Private Function GetDatePath() As List(Of String) - Dim oDate = DateTime.Now - Dim oResultList As New List(Of String) From { - oDate.Year, - oDate.Month.ToString.PadLeft(2, "0"), - oDate.Day.ToString.PadLeft(2, "0") - } - - Return oResultList - End Function -End Class diff --git a/Modules.EDMI.File/packages.config b/Modules.EDMI.File/packages.config deleted file mode 100644 index d4e65ac3..00000000 --- a/Modules.EDMI.File/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb deleted file mode 100644 index e93b60d8..00000000 --- a/Modules.EDMIAPI/Client.vb +++ /dev/null @@ -1,1039 +0,0 @@ -Imports System.IO -Imports System.ServiceModel -Imports DigitalData.Modules.EDMI.API.Constants -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.EDMI.API.Rights -Imports DigitalData.Modules.Language.Utils -Imports DigitalData.Modules.Logging - -Public Class Client - ' Constants - Private Const UPDATE_INTERVAL_IN_MINUTES As Integer = 1 - - Private Const KIND_TYPE_DOC = "DOC" - - ' Helper Classes - Private ReadOnly LogConfig As LogConfig - Private ReadOnly Logger As Logger - Private ReadOnly ChannelManager As Channel - - ' Runtime Variables - Private _ServerAddress As ServerAddressStruct - Private _ClientConfig As GlobalStateClientConfiguration - Private _CachedTables As New List(Of String) - Private _IsOnline As Boolean - Private _Channel As IEDMIServiceChannel - - ' Update Timer - Private WithEvents UpdateTimer As New Timers.Timer - - ' Public Variables - Public ReadOnly Property CachedTables - Get - Return _CachedTables - End Get - End Property - - Public ReadOnly Property ClientConfig As GlobalStateClientConfiguration - Get - If _ClientConfig Is Nothing Then - Throw New ApplicationException("ClientConfig is empty! Please connect to the service before accessing this property") - End If - - Return _ClientConfig - End Get - End Property - - Public ReadOnly Property IsOnline As Boolean - Get - Return _IsOnline - End Get - End Property - - Public ReadOnly Property ServerAddress As String - Get - Return $"{_ServerAddress.Host}:{_ServerAddress.Port}" - End Get - End Property - - ''' - ''' Parse a IPAddress:Port String into its parts - ''' - ''' A Server Address, for example: 192.168.1.50, 192.168.1.50:9000, 192.168.1.50;9000 - Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer) - Dim oConnection As New Connection() - Dim oAddress As ServerAddressStruct = oConnection.ParseServiceAddress(AddressWithOptionalPort) - - Return New Tuple(Of String, Integer)(oAddress.Host, oAddress.Port) - End Function - - ''' - ''' Creates a new EDMI Client object - ''' - ''' LogConfig object - ''' The IP address/hostname and port, separated by semicolon or colon, ex. 1.2.3.4:9000 - Public Sub New(pLogConfig As LogConfig, pServiceAdress As String) - LogConfig = pLogConfig - Logger = pLogConfig.GetLogger() - - UpdateTimer.Interval = 60 * 1000 * UPDATE_INTERVAL_IN_MINUTES - UpdateTimer.Start() - - Try - Dim oConnection = New Connection() - _ServerAddress = oConnection.ParseServiceAddress(pServiceAdress) - ChannelManager = New Channel(pLogConfig, _ServerAddress) - AddHandler ChannelManager.Reconnect, AddressOf Reconnect - - Logger.Debug("Ready for connection to Service at: [{0}:{1}]", _ServerAddress.Host, _ServerAddress.Port) - - Catch ex As Exception - Logger.Error(ex) - End Try - End Sub - - ''' - ''' Creates a new EDMI Client object - ''' - ''' LogConfig object - ''' The IP address to connect to - ''' The Port number to use for the connection - Public Sub New(pLogConfig As LogConfig, pIPAddress As String, pPortNumber As Integer) - LogConfig = pLogConfig - Logger = pLogConfig.GetLogger() - - UpdateTimer.Interval = 60 * 1000 * UPDATE_INTERVAL_IN_MINUTES - UpdateTimer.Start() - - Try - Dim oConnection = New Connection() - _ServerAddress = oConnection.ParseServiceAddress(pIPAddress, pPortNumber) - ChannelManager = New Channel(pLogConfig, _ServerAddress) - AddHandler ChannelManager.Reconnect, AddressOf Reconnect - - Logger.Debug("Ready for connection to Service at: [{0}:{1}]", _ServerAddress.Host, _ServerAddress.Port) - - Catch ex As Exception - Logger.Error(ex) - End Try - End Sub - - ''' - ''' Connect to the service - ''' - ''' True if connection was successful, false otherwise - Public Function Connect() As Boolean - Try - _Channel = ChannelManager.GetChannel() - - Logger.Debug("Opening channel..") - _Channel.Open() - - Dim oResponse = _Channel.GetClientConfig() - If oResponse.OK Then - _ClientConfig = oResponse.ClientConfig - Else - Logger.Warn("Client Configuration could not be loaded: [{0}]", oResponse.ErrorMessage) - End If - - Logger.Info($"Connection to AppService [{ServerAddress}] successfully established!") - - _IsOnline = True - - Return True - Catch ex As Exception - _IsOnline = False - - Logger.Error(ex) - Return False - End Try - End Function - - ''' - ''' Aborts the channel and creates a new connection - ''' - Public Sub Reconnect() - Logger.Warn("Connection faulted. Trying to reconnect..") - - Try - _Channel.Abort() - _Channel = ChannelManager.GetChannel() - _Channel.Open() - - _IsOnline = True - Catch ex As Exception - Logger.Error(ex) - End Try - End Sub - - Private Async Function UpdateTimer_Elapsed(sender As Object, e As Timers.ElapsedEventArgs) As Task Handles UpdateTimer.Elapsed - Try - Dim oTables As String() = Await _Channel.GetCachedTablesAsync() - _CachedTables = oTables. - Select(Function(table) table.ToUpper). - ToList() - Catch ex As Exception - Logger.Warn("Update of CachedTable was not successful!") - Logger.Error(ex) - _CachedTables = New List(Of String) - End Try - End Function - - ''' - ''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object - ''' - ''' Type of ObjectStore. Can be WORK or ARCHIVE. - ''' Business entity that the new file object should belong to. - ''' Other file import options - ''' When local filepath was not found - ''' When there was a error in the Service - ''' The ObjectId of the newly generated filesystem object - Public Async Function NewFileAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pIDBDoctypeId As Long, Optional pImportOptions As Options.NewFileOptions = Nothing) As Task(Of Long) - Try - Dim oNewFile As New Modules.IDB.NewFile(LogConfig, _Channel) - Return Await oNewFile.RunAsync(pFilePath, pObjectStoreName, pObjectKind, pIDBDoctypeId, pImportOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Async Function UpdateFileAsync(pObjectId As Long, pFilePath As String, Optional pImportOptions As Options.UpdateFileOptions = Nothing) As Task(Of Long) - Try - Dim oUpdateFile As New Modules.IDB.UpdateFile(LogConfig, _Channel) - Return Await oUpdateFile.RunAsync(pFilePath, pObjectId, pImportOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Async Function SetObjectStateAsync(pObjectId As Long, pState As String, Optional pOptions As Options.SetObjectStateOptions = Nothing) As Task(Of Boolean) - Try - Dim oSetObjectState As New Modules.IDB.SetObjectState(LogConfig, _Channel) - Return Await oSetObjectState.RunAsync(pObjectId, pState, pOptions) - - Catch ex As Exception - Logger.Error(ex) - Return False - - End Try - End Function - - Public Async Function SetAttributeValueAsync(pObjectId As Long, pName As String, pValue As Object, Optional pOptions As Options.SetAttributeValueOptions = Nothing) As Task(Of Boolean) - Try - Dim oSetAttributeValue As New Modules.IDB.SetAttributeValue(LogConfig, _Channel) - Return Await oSetAttributeValue.RunAsync(pObjectId, pName, pValue, pOptions) - - Catch ex As Exception - Logger.Error(ex) - Return False - - End Try - End Function - - Public Async Function CheckOutFile(pObjectId As Long, pComment As String, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long) - Try - Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, _Channel) - Return Await oCheckOutFile.RunAsync(pObjectId, pComment, pOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Async Function CheckOutFile(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long) - Try - Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, _Channel) - Return Await oCheckOutFile.RunAsync(pObjectId, String.Empty, pOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Async Function CheckInFile(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long) - Try - Dim oCheckInFile As New Modules.IDB.CheckInFile(LogConfig, _Channel) - Return Await oCheckInFile.RunAsync(pObjectId, pOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Async Function ImportFileAsync( - pFilePath As String, - pAttributeValues As List(Of UserAttributeValue), - pObjectStoreName As String, - pObjectKind As String, - pIDBDoctypeId As String, - Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of ImportFileResponse) - Try - Dim oImportFile As New Modules.IDB.ImportFile(LogConfig, _Channel) - Return Await oImportFile.RunAsync(pFilePath, pAttributeValues, pObjectStoreName, pObjectKind, pIDBDoctypeId, pImportOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Async Function Globix_ImportFileAsync( - pFilePath As String, - pProfileId As Integer, - pAttributeValues As List(Of UserAttributeValue), - pObjectStoreName As String, - pObjectKind As String, - pIDBDoctypeId As String, - Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of Globix_ImportFileResponse) - Try - Dim oImportFile As New Modules.Globix.ImportFile(LogConfig, _Channel) - Return Await oImportFile.RunAsync(pFilePath, pProfileId, pAttributeValues, pObjectStoreName, pObjectKind, pIDBDoctypeId, pImportOptions) - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Function Zooflow_GetFileObject(pObjectId As Long, pLoadFileContents As Boolean) As FileObject - Try - Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, _Channel) - Dim oFileObject = oGetFileObject.Run(pObjectId, pLoadFileContents) - Return oFileObject - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - - Public Async Function ZooFlow_GetFileObjectAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject) - Try - Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, Me) - Dim oFileObject = Await oGetFileObject.RunAsync(pObjectId, pLoadFileContents) - Return oFileObject - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - ''' - ''' Sets a value to an attribute - ''' - ''' IDB ObjectId - ''' Name of the attribute - ''' - ''' - ''' - 'Public Function SetVariableValue(pObjectId As Long, pAttributeName As String, pValue As Object, Optional pOptions As Options.SetVariableValueOptions = Nothing) As Boolean - ' Try - ' ' Set default options - ' If pOptions Is Nothing Then - ' pOptions = New Options.SetVariableValueOptions() - ' End If - - ' Dim oOptions As New Options.GetVariableValueOptions With { - ' .Language = pOptions.Language, - ' .Username = pOptions.Username - ' } - - ' Try - ' Dim oResponse = Channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId}) - ' If oResponse.Exists = False Then - ' Return False - ' End If - - ' Catch ex As Exception - ' Logger.Error(ex) - ' Return False - ' End Try - - ' Dim oType = pValue.GetType.Name - - ' If oType = GetType(DataTable).Name Then - ' Dim oValueTable As DataTable = pValue - ' Dim oCurrentValue As VariableValue - - ' ' Get current value - ' oCurrentValue = GetVariableValue(pObjectId, pAttributeName, oOptions) - - ' ' If current value is datatable - ' If oCurrentValue.Type = GetType(DataTable) Then - - ' ' Convert value to Datatable - ' Dim oTable As DataTable = oCurrentValue.Value - - ' If oTable.Rows.Count > 1 Then - - ' 'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues - ' For Each oRow As DataRow In oTable.Rows - ' Dim oExists As Boolean = False - ' For Each oNewValueRow As DataRow In oValueTable.Rows - ' Logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]") - - ' If oNewValueRow.Item(1).ToString.ToUpper = oRow.Item(0).ToString.ToUpper Then - ' oExists = True - ' Exit For - ' End If - ' Next - - ' If oExists = False Then - ' Logger.Debug($"Value [{oRow.Item(0)}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!") - ' DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oRow.Item(0)) - ' End If - - ' Next - ' End If - ' Else - ' If oValueTable.Rows.Count > 1 Then - - ' 'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues - ' Dim oExists As Boolean = False - ' For Each oNewValueRow As DataRow In oValueTable.Rows - ' Logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]") - - ' If oNewValueRow.Item(1).ToString.ToUpper = oCurrentValue.ToString.ToUpper Then - ' oExists = True - ' Exit For - ' End If - - ' Next - ' If oExists = False Then - ' Logger.Debug($"Value [{oCurrentValue}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!") - ' DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue.Value) - ' End If - - ' Else - ' Logger.Debug($"Value [{oCurrentValue}] of Attribute [{pAttributeName}] obviously was updated during runtime - will be deleted!") - ' DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue.Value) - - ' End If - - ' End If - - ' For Each oNewValueRow As DataRow In oValueTable.Rows - ' Dim oResult As Boolean = NewObjectData(pObjectId, pAttributeName, pValue, New Options.NewObjectOptions With { - ' .Language = pOptions.Language, - ' .Username = pOptions.Username - ' }) - - ' If oResult = False Then - ' Return False - ' End If - ' Next - ' Return True - ' Else - ' Return NewObjectData(pObjectId, pAttributeName, pValue, New Options.NewObjectOptions With { - ' .Language = pOptions.Language, - ' .Username = pOptions.Username - ' }) - ' End If - - ' Catch ex As Exception - ' Logger.Error(ex) - ' Return False - ' End Try - 'End Function - - ''' - ''' - ''' - ''' - ''' - ''' - ''' - Public Function GetVariableValue(pObjectId As Long, pAttributeName As String, Optional pOptions As Options.GetVariableValueOptions = Nothing) As VariableValue - If pOptions Is Nothing Then - pOptions = New Options.GetVariableValueOptions() - End If - - Try - Dim oArgs = New GetAttributeValueRequest With { - .ObjectId = pObjectId, - .AttributeName = pAttributeName, - .User = New UserState() With { - .UserName = pOptions.Username, - .Language = pOptions.Language - } - } - Dim oResponse = _Channel.GetAttributeValue(oArgs) - If oResponse.OK = False Then - Return New VariableValue() - - End If - - Return New VariableValue(oResponse.Value) - - Catch ex As Exception - Logger.Error(ex) - Return New VariableValue() - - End Try - End Function - - Private Function GetValueByType(pRow As DataRow, pTypeString As String) As Object - Try - Dim oAttributeValue As Object - - Select Case pTypeString - Case Constants.AttributeTypeName.BIT - oAttributeValue = pRow.Item("ValueBigInt") - - Case Constants.AttributeTypeName.BIG_INTEGER - oAttributeValue = pRow.Item("ValueBigInt") - - Case Constants.AttributeTypeName.DATE - oAttributeValue = pRow.Item("ValueDate") - - Case Constants.AttributeTypeName.DATETIME - oAttributeValue = pRow.Item("ValueDate") - - Case Constants.AttributeTypeName.DECIMAL - oAttributeValue = pRow.Item("ValueDecimal") - - Case Constants.AttributeTypeName.FLOAT - oAttributeValue = pRow.Item("ValueDecimal") - - Case Constants.AttributeTypeName.VARCHAR - oAttributeValue = pRow.Item("ValueText") - - Case Constants.AttributeTypeName.VECTOR_INTEGER - oAttributeValue = pRow.Item("ValueBigInt") - - Case Constants.AttributeTypeName.VECTOR_STRING - oAttributeValue = pRow.Item("ValueText") - - Case Else - oAttributeValue = Nothing - End Select - - Return oAttributeValue - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Private Function GetAttributesForObject(pObjectId As Long, pLanguage As String) As List(Of ObjectAttribute) - Dim oAttributes As New List(Of ObjectAttribute) - - Try - Dim oResult As TableResult = _Channel.ReturnDatatable_MSSQL_IDB($"EXEC [PRIDB_GET_VALUE_DT] {pObjectId}, '{pLanguage}'") - - If oResult.OK = False Then - Throw New ApplicationException(oResult.ErrorMessage) - End If - - If oResult.Table Is Nothing OrElse oResult.Table.Rows.Count = 0 Then - Return Nothing - End If - - For Each oRow As DataRow In oResult.Table.Rows - Dim oAttribute As New ObjectAttribute With { - .Id = oRow.Item("AttributeId"), - .Title = oRow.Item("AttributeTitle"), - .Type = oRow.Item("AttributeType"), - .ValueBigInt = NotNull(oRow.Item("ValueBigInt"), Nothing), - .ValueDate = NotNull(oRow.Item("ValueDate"), Nothing), - .ValueDecimal = NotNull(oRow.Item("ValueDecimal"), Nothing), - .ValueText = NotNull(oRow.Item("ValueText"), Nothing) - } - - oAttributes.Add(oAttribute) - Next - - Return oAttributes - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - Private Function NewObjectData(pObjectId As Long, pAttributeName As String, pValue As Object, pOptions As Options.NewObjectOptions) - If pOptions Is Nothing Then - pOptions = New Options.NewObjectOptions() - End If - - Dim oLanguage = GetUserLanguage(pOptions.Language) - Dim oUsername = GetUserName(pOptions.Username) - - Dim oSql = $"DECLARE @NEW_OBJ_MD_ID BIGINT - EXEC PRIDB_NEW_OBJ_DATA({pObjectId}, '{pAttributeName}', '{oUsername}', '{pValue}', '{oLanguage}', 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT)" - Dim oResult = _Channel.ExecuteNonQuery_MSSQL_IDB(oSql) - - If oResult.OK = False Then - Logger.Warn("Error while deleting Term object") - Logger.Error(oResult.ErrorMessage) - End If - - Return oResult.OK - End Function - - Private Function DeleteTermObjectFromMetadata(pObjectId As Long, pAttributeName As String, pTerm2Delete As String, Optional pUsername As String = "", Optional pLanguage As String = "") As Boolean - Try - Dim oLanguage = GetUserLanguage(pLanguage) - Dim oUsername = GetUserName(pUsername) - - Dim oIdIsForeign As Integer = 1 - Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {pObjectId},'{pAttributeName}','{pTerm2Delete}','{oUsername}','{oLanguage}',{oIdIsForeign}" - Dim oResult = _Channel.ExecuteNonQuery_MSSQL_IDB(oDELSQL) - - If oResult.OK = False Then - Logger.Warn("Error while deleting Term object") - Logger.Error(oResult.ErrorMessage) - End If - - Return oResult.OK - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function - -#Region "GetDatatable" - Public Function GetDatatableFromIDB(pSQL As String) As GetDatatableResponse - Try - Dim oResponse = _Channel.ReturnDatatable(New GetDatatableRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.IDB - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetDatatableFromECM(pSQL As String) As GetDatatableResponse - Try - Dim oResponse = _Channel.ReturnDatatable(New GetDatatableRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.ECM - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetDatatableFromConnection(pSQL As String, pConnectionId As Integer) As GetDatatableResponse - Try - Dim oResponse = _Channel.ReturnDatatable(New GetDatatableRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.None, - .ConnectionId = pConnectionId - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetDatatableFromIDBAsync(pSQL As String) As Task(Of GetDatatableResponse) - Try - Dim oResponse = Await _Channel.ReturnDatatableAsync(New GetDatatableRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.IDB - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetDatatableFromECMAsync(pSQL As String) As Task(Of GetDatatableResponse) - Try - Dim oResponse = Await _Channel.ReturnDatatableAsync(New GetDatatableRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.ECM - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetDatatableFromConnectionAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetDatatableResponse) - Try - Dim oResponse = Await _Channel.ReturnDatatableAsync(New GetDatatableRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.None, - .ConnectionId = pConnectionId - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function -#End Region - -#Region "GetScalarValue" - Public Function GetScalarValueFromIDB(pSQL As String) As GetScalarValueResponse - Try - Dim oResponse = _Channel.ReturnScalarValue(New GetScalarValueRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.IDB - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetScalarValueFromECM(pSQL As String) As GetScalarValueResponse - Try - Dim oResponse = _Channel.ReturnScalarValue(New GetScalarValueRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.ECM - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetScalarValueFromConnection(pSQL As String, pConnectionId As Integer) As GetScalarValueResponse - Try - Dim oResponse = _Channel.ReturnScalarValue(New GetScalarValueRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.None, - .ConnectionId = pConnectionId - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetScalarValueFromIDBAsync(pSQL As String) As Task(Of GetScalarValueResponse) - Try - Dim oResponse = Await _Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.IDB - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetScalarValueFromECMAsync(pSQL As String) As Task(Of GetScalarValueResponse) - Try - Dim oResponse = Await _Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.ECM - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetScalarValueFromConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of GetScalarValueResponse) - Try - Dim oResponse = Await _Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.None, - .ConnectionId = pConnectionId - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function -#End Region - -#Region "ExecuteNonQuery" - Public Function ExecuteNonQueryFromIDB(pSQL As String) As ExecuteNonQueryResponse - Try - Dim oResponse = _Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.IDB - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function ExecuteNonQueryFromECM(pSQL As String) As ExecuteNonQueryResponse - Try - Dim oResponse = _Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.ECM - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function ExecuteNonQueryFromConnection(pSQL As String, pConnectionId As Integer) As ExecuteNonQueryResponse - Try - Dim oResponse = _Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.None, - .ConnectionId = pConnectionId - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function ExecuteNonQueryFromIDBAsync(pSQL As String) As Task(Of ExecuteNonQueryResponse) - Try - Dim oResponse = Await _Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.IDB - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function ExecuteNonQueryFromECMAsync(pSQL As String) As Task(Of ExecuteNonQueryResponse) - Try - Dim oResponse = Await _Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.ECM - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function ExecuteNonQueryFromConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of ExecuteNonQueryResponse) - Try - Dim oResponse = Await _Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With { - .SqlCommand = pSQL, - .NamedDatabase = DatabaseName.None, - .ConnectionId = pConnectionId - }) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function -#End Region - - - Public Function GetDatatableByName(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As TableResult - Try - Dim oResponse = _Channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Public Async Function GetDatatableByNameAsync(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As Task(Of TableResult) - Try - Dim oResponse = Await _Channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn) - Return oResponse - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - - - ''' - ''' Return infos about a file object - ''' - ''' - ''' - ''' - Public Function GetDocumentInfo(UserId As Long, ObjectId As Long) As DocumentInfo - Try - Dim oResponse As DocumentInfoResponse = _Channel.GetFileInfoByObjectId(New DocumentInfoRequest With { - .ObjectId = ObjectId, - .UserId = UserId - }) - - Return New DocumentInfo With { - .AccessRight = oResponse.FileRight, - .FullPath = oResponse.FullPath - } - - Catch ex As FaultException(Of ObjectDoesNotExistFault) - Logger.Error(ex) - Throw ex - - Catch ex As FaultException - Logger.Error(ex) - Throw ex - - Catch ex As Exception - Logger.Error(ex) - Throw ex - - End Try - End Function - - Public Async Function GetDocumentInfoAsync(UserId As Long, ObjectId As Long) As Task(Of DocumentInfo) - Try - Dim oParams = New DocumentInfoRequest With { - .ObjectId = ObjectId, - .UserId = UserId - } - Dim oResponse As DocumentInfoResponse = Await _Channel.GetFileInfoByObjectIdAsync(oParams) - - Return New DocumentInfo With { - .AccessRight = oResponse.FileRight, - .FullPath = oResponse.FullPath - } - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - -#Region "Private Functions" - - - Private Function GetUserLanguage(pOverrideLanguage As String) As String - Return NotNull(pOverrideLanguage, Threading.Thread.CurrentThread.CurrentUICulture.Name) - End Function - - Private Function GetUserName(pOverrideName) As String - Return NotNull(pOverrideName, Environment.UserName) - End Function -#End Region - -#Region "Response Classes" - Public Class StreamedFile - Public Stream As MemoryStream - Public FileName As String - End Class - - Public Class FileList - Public Datatable As DataTable - End Class - - Public Class DocumentInfo - Public Id As Long - Public FullPath As String - Public AccessRight As AccessRight - End Class - - Public Class VariableValue - Public ReadOnly Property IsVector As Boolean = False - - Public Property Value As Object - Public Property Type As Type - - Public Sub New() - MyClass.New(Nothing) - End Sub - - Public Sub New(pValue As Object) - ' Check if value is a collection - If TypeOf pValue Is IEnumerable Then - IsVector = True - End If - - ' Try to determine the type - If IsNothing(pValue) Then - Type = Nothing - Else - Type = pValue.GetType - End If - - Value = pValue - End Sub - End Class - - -#End Region - - Public Class ObjectAttribute - Public Property Id As Long - Public Property Title As String - Public Property Type As String - - Public Property ValueBigInt As Long - Public Property ValueText As String - Public Property ValueDecimal As Decimal - Public Property ValueDate As DateTime - - Public ReadOnly Property Value As Object - Get - Return GetValue() - End Get - End Property - - Private Function GetValue() As Object - Select Case Type - Case AttributeTypeName.VECTOR_INTEGER - Return ValueBigInt - - Case AttributeTypeName.BIG_INTEGER - Return ValueBigInt - - Case AttributeTypeName.VECTOR_STRING - Return ValueText - - Case AttributeTypeName.VARCHAR - Return ValueText - - Case AttributeTypeName.BIT - Return IIf(ValueBigInt = 1, True, False) - - Case AttributeTypeName.DATE - Return ValueDate - - Case AttributeTypeName.DATETIME - Return ValueDate - - Case AttributeTypeName.DECIMAL - Return ValueDecimal - - Case AttributeTypeName.FLOAT - Return ValueDecimal - - Case Else - Return Nothing - End Select - End Function - End Class -End Class diff --git a/Modules.EDMIAPI/Client/Channel.vb b/Modules.EDMIAPI/Client/Channel.vb deleted file mode 100644 index 8a8f1d41..00000000 --- a/Modules.EDMIAPI/Client/Channel.vb +++ /dev/null @@ -1,64 +0,0 @@ -Imports System.ServiceModel -Imports System.Xml -Imports DigitalData.Modules.Base -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Public Class Channel - Inherits BaseClass - - Private ReadOnly ChannelFactory As ChannelFactory(Of IEDMIServiceChannel) - - Public Event Reconnect As EventHandler - - Public Shared Function GetBinding(Optional AuthenticationMode As TcpClientCredentialType = TcpClientCredentialType.Windows) As NetTcpBinding - Return New NetTcpBinding() With { - .MaxReceivedMessageSize = Constants.ChannelSettings.MAX_RECEIVED_MESSAGE_SIZE, - .MaxBufferSize = Constants.ChannelSettings.MAX_BUFFER_SIZE, - .MaxBufferPoolSize = Constants.ChannelSettings.MAX_BUFFER_POOL_SIZE, - .TransferMode = TransferMode.Streamed, - .Security = New NetTcpSecurity() With { - .Mode = SecurityMode.Transport, - .Transport = New TcpTransportSecurity() With { - .ClientCredentialType = AuthenticationMode - } - }, - .ReaderQuotas = New XmlDictionaryReaderQuotas() With { - .MaxArrayLength = Constants.ChannelSettings.MAX_ARRAY_LENGTH, - .MaxStringContentLength = Constants.ChannelSettings.MAX_STRING_CONTENT_LENGTH - } - } - End Function - - Public Sub New(pLogConfig As LogConfig, pServerAddress As ServerAddressStruct) - MyBase.New(pLogConfig) - ChannelFactory = GetChannelFactory(pServerAddress) - End Sub - - ''' - ''' Creates a channel and adds a Faulted-Handler - ''' - ''' A channel object - Public Function GetChannel() As IEDMIServiceChannel - Try - Logger.Debug("Creating channel.") - Dim oChannel = ChannelFactory.CreateChannel() - - AddHandler oChannel.Faulted, Sub() RaiseEvent Reconnect(Me, Nothing) - - Return oChannel - Catch ex As Exception - Logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetChannelFactory(pServerAddress As ServerAddressStruct) As ChannelFactory(Of IEDMIServiceChannel) - Dim oBinding = GetBinding() - Dim oAddress = New EndpointAddress($"net.tcp://{pServerAddress.Host}:{pServerAddress.Port}/DigitalData/Services/Main") - Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress) - Return oFactory - End Function -End Class - - diff --git a/Modules.EDMIAPI/Client/Connection.vb b/Modules.EDMIAPI/Client/Connection.vb deleted file mode 100644 index 09ba6276..00000000 --- a/Modules.EDMIAPI/Client/Connection.vb +++ /dev/null @@ -1,31 +0,0 @@ -Imports DigitalData.Modules.Base -Imports DigitalData.Modules.Logging - -Public Class Connection - Public Function ParseServiceAddress(pHost As String, pPort As Integer) As ServerAddressStruct - Dim oAddress As ServerAddressStruct - - oAddress.Host = pHost - oAddress.Port = pPort - - Return oAddress - End Function - - Public Function ParseServiceAddress(pAddress As String) As ServerAddressStruct - Dim oAddressList As List(Of String) - Dim oAddress As ServerAddressStruct - - If pAddress.Contains(";"c) Then - oAddressList = pAddress.Split(";"c).ToList - ElseIf pAddress.Contains(":"c) Then - oAddressList = pAddress.Split(":"c).ToList - Else - oAddressList = New List(Of String) From {pAddress, Constants.DEFAULT_SERVICE_PORT} - End If - - oAddress.Host = oAddressList.First() - oAddress.Port = oAddressList.Item(1) - - Return oAddress - End Function -End Class diff --git a/Modules.EDMIAPI/Client/NewFile.vb b/Modules.EDMIAPI/Client/NewFile.vb deleted file mode 100644 index 7410fcff..00000000 --- a/Modules.EDMIAPI/Client/NewFile.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class NewFile - Private ReadOnly LogConfig As LogConfig - Private ReadOnly Logger As Logger - - Public Sub New(pLogConfig As LogConfig) - LogConfig = pLogConfig - Logger = LogConfig.GetLogger() - End Sub -End Class diff --git a/Modules.EDMIAPI/Client/Options.vb b/Modules.EDMIAPI/Client/Options.vb deleted file mode 100644 index 5ded31a1..00000000 --- a/Modules.EDMIAPI/Client/Options.vb +++ /dev/null @@ -1,78 +0,0 @@ -Public Class Options - - Public MustInherit Class BaseOptions - ''' - ''' Windows username of the user responsible for the request. Defaults to the currently logged in user. - ''' - Public Property Username As String = Environment.UserName - - ''' - ''' Language code of the client responsible for the request. Defaults to the language of the current client. - ''' - ''' - Public Property Language As String = Threading.Thread.CurrentThread.CurrentUICulture.Name - End Class - - ''' - ''' Import options for NewFileAsync. - ''' - Public Class NewFileOptions - Inherits BaseOptions - - ''' - ''' Date when the file was imported. Can be in the past. Defaults to now. - ''' - Public Property DateImported As Date = Date.Now - End Class - - ''' - ''' Import options for NewFileAsync. - ''' - Public Class CheckOutInOptions - Inherits BaseOptions - End Class - - Public Class UpdateFileOptions - Inherits BaseOptions - - ''' - ''' Should the changes in the file result in a new version? Otherwise the old file will be overridden. - ''' - Public Property CreateNewFileVersion As Boolean = False - End Class - - Public Class ImportFileOptions - Inherits BaseOptions - - ''' - ''' Date when the file was imported. Can be in the past. Defaults to now. - ''' - Public Property DateImported As Date = Date.Now - End Class - - Public Class SetObjectStateOptions - Inherits BaseOptions - - ''' - ''' Date when the file was imported. Can be in the past. Defaults to now. - ''' - Public Property DateImported As Date = Date.Now - End Class - - Public Class SetAttributeValueOptions - Inherits BaseOptions - End Class - - - Public Class GetVariableValueOptions - Inherits BaseOptions - End Class - - Public Class SetVariableValueOptions - Inherits BaseOptions - End Class - - Public Class NewObjectOptions - Inherits BaseOptions - End Class -End Class \ No newline at end of file diff --git a/Modules.EDMIAPI/Client/Rights.vb b/Modules.EDMIAPI/Client/Rights.vb deleted file mode 100644 index dc6ce6bf..00000000 --- a/Modules.EDMIAPI/Client/Rights.vb +++ /dev/null @@ -1,7 +0,0 @@ -Public Class Rights - Public Enum AccessRight - VIEW_ONLY = 1 - VIEW_EXPORT = 2 - FULL = 4 - End Enum -End Class diff --git a/Modules.EDMIAPI/Client/ServerAddressStruct.vb b/Modules.EDMIAPI/Client/ServerAddressStruct.vb deleted file mode 100644 index a4e9d386..00000000 --- a/Modules.EDMIAPI/Client/ServerAddressStruct.vb +++ /dev/null @@ -1,4 +0,0 @@ -Public Structure ServerAddressStruct - Public Host As String - Public Port As Integer -End Structure \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Arrays.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Arrays.xsd deleted file mode 100644 index c7a5d70f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Arrays.xsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource deleted file mode 100644 index 8cee8348..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse.datasource deleted file mode 100644 index 0f899425..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse1.datasource deleted file mode 100644 index 0f899425..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse.datasource deleted file mode 100644 index ba63f700..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse1.datasource deleted file mode 100644 index ba63f700..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource deleted file mode 100644 index 9c6b26fa..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse1.datasource deleted file mode 100644 index 9c6b26fa..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse.datasource deleted file mode 100644 index 8bb4d79f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse1.datasource deleted file mode 100644 index 8bb4d79f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ExecuteNonQueryResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse.datasource deleted file mode 100644 index 396f87b7..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse1.datasource deleted file mode 100644 index 396f87b7..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse.datasource deleted file mode 100644 index 8d9e62a6..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse1.datasource deleted file mode 100644 index 8d9e62a6..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetClientConfigResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse.datasource deleted file mode 100644 index 47b7add3..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse1.datasource deleted file mode 100644 index 47b7add3..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetDatatableResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse.datasource deleted file mode 100644 index df13dd7d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse1.datasource deleted file mode 100644 index df13dd7d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetFileObjectResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse.datasource deleted file mode 100644 index 4df80cb8..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse1.datasource deleted file mode 100644 index 4df80cb8..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.GetScalarValueResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.Globix_ImportFileResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.Globix_ImportFileResponse.datasource deleted file mode 100644 index 6a352c0d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.Globix_ImportFileResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.Globix_ImportFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse.datasource deleted file mode 100644 index d3e7710e..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse1.datasource deleted file mode 100644 index d3e7710e..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource deleted file mode 100644 index bebd9f37..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse1.datasource deleted file mode 100644 index bebd9f37..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult.datasource deleted file mode 100644 index 08cbd66d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult1.datasource deleted file mode 100644 index 08cbd66d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.NonQueryResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight.datasource deleted file mode 100644 index b7dc0d4c..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight1.datasource deleted file mode 100644 index b7dc0d4c..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.RightsAccessRight, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult.datasource deleted file mode 100644 index b025563c..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult1.datasource deleted file mode 100644 index b025563c..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ScalarResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse.datasource deleted file mode 100644 index f00b50c6..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse1.datasource deleted file mode 100644 index f00b50c6..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.SetAttributeValueResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult.datasource deleted file mode 100644 index ec10938e..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult1.datasource deleted file mode 100644 index ec10938e..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.TableResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource deleted file mode 100644 index d646db66..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse1.datasource deleted file mode 100644 index d646db66..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.TestObjectIdExistsResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse.datasource deleted file mode 100644 index e22df5f3..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse1.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse1.datasource deleted file mode 100644 index e22df5f3..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse1.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.UpdateFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.xsd deleted file mode 100644 index b79942a2..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - 1 - - - - - - - 2 - - - - - - - 4 - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.ZooFlow.State.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.ZooFlow.State.xsd deleted file mode 100644 index 631e9bfc..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.ZooFlow.State.xsd +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Exceptions.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Exceptions.xsd deleted file mode 100644 index 1b35f58a..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Exceptions.xsd +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd deleted file mode 100644 index 3a7241eb..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Base.GetClientConfig.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Base.GetClientConfig.xsd deleted file mode 100644 index c3b34d10..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Base.GetClientConfig.xsd +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.ExecuteNonQuery.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.ExecuteNonQuery.xsd deleted file mode 100644 index 145bef4f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.ExecuteNonQuery.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.GetDatatable.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.GetDatatable.xsd deleted file mode 100644 index 68b9405d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.GetDatatable.xsd +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue.xsd deleted file mode 100644 index 2453f626..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.xsd deleted file mode 100644 index bdacc43e..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.Database.xsd +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile.xsd deleted file mode 100644 index e1de3685..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile.xsd +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd deleted file mode 100644 index 5464821b..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd deleted file mode 100644 index 42fbf75b..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetFileObject.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetFileObject.xsd deleted file mode 100644 index cfdf11f8..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetFileObject.xsd +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.ImportFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.ImportFile.xsd deleted file mode 100644 index d602e42f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.ImportFile.xsd +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.NewFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.NewFile.xsd deleted file mode 100644 index bc77b760..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.NewFile.xsd +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.SetAttributeValue.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.SetAttributeValue.xsd deleted file mode 100644 index 1e183ac1..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.SetAttributeValue.xsd +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.UpdateFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.UpdateFile.xsd deleted file mode 100644 index df44e7f6..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.UpdateFile.xsd +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.xsd deleted file mode 100644 index 70b45152..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.xsd +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl deleted file mode 100644 index b2a391ba..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd deleted file mode 100644 index 4ac19ce4..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd deleted file mode 100644 index 326edd8a..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Message.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Message.xsd deleted file mode 100644 index 6a19fc3f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Message.xsd +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap deleted file mode 100644 index bc5505c0..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap +++ /dev/null @@ -1,58 +0,0 @@ - - - - false - true - true - - false - false - false - - - true - Auto - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb deleted file mode 100644 index b7ca66f0..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb +++ /dev/null @@ -1,3401 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System -Imports System.Runtime.Serialization - -Namespace EDMIServiceReference - - _ - Partial Public Class BaseResponse - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ErrorDetailsField As String - - _ - Private ErrorMessageField As String - - _ - Private OKField As Boolean - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ErrorDetails() As String - Get - Return Me.ErrorDetailsField - End Get - Set - If (Object.ReferenceEquals(Me.ErrorDetailsField, value) <> true) Then - Me.ErrorDetailsField = value - Me.RaisePropertyChanged("ErrorDetails") - End If - End Set - End Property - - _ - Public Property ErrorMessage() As String - Get - Return Me.ErrorMessageField - End Get - Set - If (Object.ReferenceEquals(Me.ErrorMessageField, value) <> true) Then - Me.ErrorMessageField = value - Me.RaisePropertyChanged("ErrorMessage") - End If - End Set - End Property - - _ - Public Property OK() As Boolean - Get - Return Me.OKField - End Get - Set - If (Me.OKField.Equals(value) <> true) Then - Me.OKField = value - Me.RaisePropertyChanged("OK") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class TableResult - Inherits EDMIServiceReference.BaseResponse - - _ - Private TableField As System.Data.DataTable - - _ - Public Property Table() As System.Data.DataTable - Get - Return Me.TableField - End Get - Set - If (Object.ReferenceEquals(Me.TableField, value) <> true) Then - Me.TableField = value - Me.RaisePropertyChanged("Table") - End If - End Set - End Property - End Class - - _ - Partial Public Class ScalarResult - Inherits EDMIServiceReference.BaseResponse - - _ - Private ScalarField As Object - - _ - Public Property Scalar() As Object - Get - Return Me.ScalarField - End Get - Set - If (Object.ReferenceEquals(Me.ScalarField, value) <> true) Then - Me.ScalarField = value - Me.RaisePropertyChanged("Scalar") - End If - End Set - End Property - End Class - - _ - Partial Public Class NonQueryResult - Inherits EDMIServiceReference.BaseResponse - End Class - - _ - Partial Public Class GetDatatableResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private TableField As System.Data.DataTable - - _ - Public Property Table() As System.Data.DataTable - Get - Return Me.TableField - End Get - Set - If (Object.ReferenceEquals(Me.TableField, value) <> true) Then - Me.TableField = value - Me.RaisePropertyChanged("Table") - End If - End Set - End Property - End Class - - _ - Partial Public Class GetScalarValueResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ScalarField As Object - - _ - Public Property Scalar() As Object - Get - Return Me.ScalarField - End Get - Set - If (Object.ReferenceEquals(Me.ScalarField, value) <> true) Then - Me.ScalarField = value - Me.RaisePropertyChanged("Scalar") - End If - End Set - End Property - End Class - - _ - Partial Public Class ExecuteNonQueryResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ResultField As Boolean - - _ - Public Property Result() As Boolean - Get - Return Me.ResultField - End Get - Set - If (Me.ResultField.Equals(value) <> true) Then - Me.ResultField = value - Me.RaisePropertyChanged("Result") - End If - End Set - End Property - End Class - - _ - Partial Public Class NewFileResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - End Class - - _ - Partial Public Class UpdateFileResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - End Class - - _ - Partial Public Class SetAttributeValueResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - End Class - - _ - Partial Public Class GetAttributeValueResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Private ValueField As Object - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - - _ - Public Property Value() As Object - Get - Return Me.ValueField - End Get - Set - If (Object.ReferenceEquals(Me.ValueField, value) <> true) Then - Me.ValueField = value - Me.RaisePropertyChanged("Value") - End If - End Set - End Property - End Class - - _ - Partial Public Class GetFileObjectResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private FileObjectField As EDMIServiceReference.FileObject - - _ - Public Property FileObject() As EDMIServiceReference.FileObject - Get - Return Me.FileObjectField - End Get - Set - If (Object.ReferenceEquals(Me.FileObjectField, value) <> true) Then - Me.FileObjectField = value - Me.RaisePropertyChanged("FileObject") - End If - End Set - End Property - End Class - - _ - Partial Public Class CheckInOutFileResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - End Class - - _ - Partial Public Class ImportFileResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - End Class - - _ - Partial Public Class Globix_ImportFileResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ObjectIdField As Long - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - End Class - - _ - Partial Public Class GetClientConfigResponse - Inherits EDMIServiceReference.BaseResponse - - _ - Private ClientConfigField As EDMIServiceReference.GlobalStateClientConfiguration - - _ - Public Property ClientConfig() As EDMIServiceReference.GlobalStateClientConfiguration - Get - Return Me.ClientConfigField - End Get - Set - If (Object.ReferenceEquals(Me.ClientConfigField, value) <> true) Then - Me.ClientConfigField = value - Me.RaisePropertyChanged("ClientConfig") - End If - End Set - End Property - End Class - - _ - Partial Public Class GlobalStateClientConfiguration - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ConnectionStringECMField As String - - _ - Private ConnectionStringIDBField As String - - _ - Private DocumentTypesField() As EDMIServiceReference.GlobalStateDoctype - - _ - Private ForceDirectDatabaseAccessField As Boolean - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ConnectionStringECM() As String - Get - Return Me.ConnectionStringECMField - End Get - Set - If (Object.ReferenceEquals(Me.ConnectionStringECMField, value) <> true) Then - Me.ConnectionStringECMField = value - Me.RaisePropertyChanged("ConnectionStringECM") - End If - End Set - End Property - - _ - Public Property ConnectionStringIDB() As String - Get - Return Me.ConnectionStringIDBField - End Get - Set - If (Object.ReferenceEquals(Me.ConnectionStringIDBField, value) <> true) Then - Me.ConnectionStringIDBField = value - Me.RaisePropertyChanged("ConnectionStringIDB") - End If - End Set - End Property - - _ - Public Property DocumentTypes() As EDMIServiceReference.GlobalStateDoctype() - Get - Return Me.DocumentTypesField - End Get - Set - If (Object.ReferenceEquals(Me.DocumentTypesField, value) <> true) Then - Me.DocumentTypesField = value - Me.RaisePropertyChanged("DocumentTypes") - End If - End Set - End Property - - _ - Public Property ForceDirectDatabaseAccess() As Boolean - Get - Return Me.ForceDirectDatabaseAccessField - End Get - Set - If (Me.ForceDirectDatabaseAccessField.Equals(value) <> true) Then - Me.ForceDirectDatabaseAccessField = value - Me.RaisePropertyChanged("ForceDirectDatabaseAccess") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GlobalStateDoctype - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private FileChangedActionField As String - - _ - Private NameField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property FileChangedAction() As String - Get - Return Me.FileChangedActionField - End Get - Set - If (Object.ReferenceEquals(Me.FileChangedActionField, value) <> true) Then - Me.FileChangedActionField = value - Me.RaisePropertyChanged("FileChangedAction") - End If - End Set - End Property - - _ - Public Property Name() As String - Get - Return Me.NameField - End Get - Set - If (Object.ReferenceEquals(Me.NameField, value) <> true) Then - Me.NameField = value - Me.RaisePropertyChanged("Name") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class UnexpectedErrorFault - Inherits EDMIServiceReference.BaseFault - End Class - - _ - Partial Public Class BaseFault - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ErrorMessageField As String - - _ - Private InnerExceptionField As System.Exception - - _ - Private IsRecoverableField As Boolean - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ErrorMessage() As String - Get - Return Me.ErrorMessageField - End Get - Set - If (Object.ReferenceEquals(Me.ErrorMessageField, value) <> true) Then - Me.ErrorMessageField = value - Me.RaisePropertyChanged("ErrorMessage") - End If - End Set - End Property - - _ - Public Property InnerException() As System.Exception - Get - Return Me.InnerExceptionField - End Get - Set - If (Object.ReferenceEquals(Me.InnerExceptionField, value) <> true) Then - Me.InnerExceptionField = value - Me.RaisePropertyChanged("InnerException") - End If - End Set - End Property - - _ - Public Property IsRecoverable() As Boolean - Get - Return Me.IsRecoverableField - End Get - Set - If (Me.IsRecoverableField.Equals(value) <> true) Then - Me.IsRecoverableField = value - Me.RaisePropertyChanged("IsRecoverable") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class DataTableDoesNotExistFault - Inherits EDMIServiceReference.BaseFault - End Class - - _ - Partial Public Class ObjectDoesNotExistFault - Inherits EDMIServiceReference.BaseFault - End Class - - _ - Partial Public Class GetDatatableRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ConnectionIdField As Integer - - _ - Private DatabaseTypeField As EDMIServiceReference.DatabaseType - - _ - Private NamedDatabaseField As EDMIServiceReference.DatabaseName - - _ - Private SqlCommandField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ConnectionId() As Integer - Get - Return Me.ConnectionIdField - End Get - Set - If (Me.ConnectionIdField.Equals(value) <> true) Then - Me.ConnectionIdField = value - Me.RaisePropertyChanged("ConnectionId") - End If - End Set - End Property - - _ - Public Property DatabaseType() As EDMIServiceReference.DatabaseType - Get - Return Me.DatabaseTypeField - End Get - Set - If (Me.DatabaseTypeField.Equals(value) <> true) Then - Me.DatabaseTypeField = value - Me.RaisePropertyChanged("DatabaseType") - End If - End Set - End Property - - _ - Public Property NamedDatabase() As EDMIServiceReference.DatabaseName - Get - Return Me.NamedDatabaseField - End Get - Set - If (Me.NamedDatabaseField.Equals(value) <> true) Then - Me.NamedDatabaseField = value - Me.RaisePropertyChanged("NamedDatabase") - End If - End Set - End Property - - _ - Public Property SqlCommand() As String - Get - Return Me.SqlCommandField - End Get - Set - If (Object.ReferenceEquals(Me.SqlCommandField, value) <> true) Then - Me.SqlCommandField = value - Me.RaisePropertyChanged("SqlCommand") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Public Enum DatabaseType As Integer - - _ - MSSQL = 0 - - _ - Oracle = 1 - - _ - ODBC = 2 - End Enum - - _ - Public Enum DatabaseName As Integer - - _ - None = 0 - - _ - ECM = 1 - - _ - IDB = 2 - End Enum - - _ - Partial Public Class GetScalarValueRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ConnectionIdField As Integer - - _ - Private DatabaseTypeField As EDMIServiceReference.DatabaseType - - _ - Private NamedDatabaseField As EDMIServiceReference.DatabaseName - - _ - Private SqlCommandField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ConnectionId() As Integer - Get - Return Me.ConnectionIdField - End Get - Set - If (Me.ConnectionIdField.Equals(value) <> true) Then - Me.ConnectionIdField = value - Me.RaisePropertyChanged("ConnectionId") - End If - End Set - End Property - - _ - Public Property DatabaseType() As EDMIServiceReference.DatabaseType - Get - Return Me.DatabaseTypeField - End Get - Set - If (Me.DatabaseTypeField.Equals(value) <> true) Then - Me.DatabaseTypeField = value - Me.RaisePropertyChanged("DatabaseType") - End If - End Set - End Property - - _ - Public Property NamedDatabase() As EDMIServiceReference.DatabaseName - Get - Return Me.NamedDatabaseField - End Get - Set - If (Me.NamedDatabaseField.Equals(value) <> true) Then - Me.NamedDatabaseField = value - Me.RaisePropertyChanged("NamedDatabase") - End If - End Set - End Property - - _ - Public Property SqlCommand() As String - Get - Return Me.SqlCommandField - End Get - Set - If (Object.ReferenceEquals(Me.SqlCommandField, value) <> true) Then - Me.SqlCommandField = value - Me.RaisePropertyChanged("SqlCommand") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ExecuteNonQueryRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ConnectionIdField As Integer - - _ - Private DatabaseTypeField As EDMIServiceReference.DatabaseType - - _ - Private NamedDatabaseField As EDMIServiceReference.DatabaseName - - _ - Private SqlCommandField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ConnectionId() As Integer - Get - Return Me.ConnectionIdField - End Get - Set - If (Me.ConnectionIdField.Equals(value) <> true) Then - Me.ConnectionIdField = value - Me.RaisePropertyChanged("ConnectionId") - End If - End Set - End Property - - _ - Public Property DatabaseType() As EDMIServiceReference.DatabaseType - Get - Return Me.DatabaseTypeField - End Get - Set - If (Me.DatabaseTypeField.Equals(value) <> true) Then - Me.DatabaseTypeField = value - Me.RaisePropertyChanged("DatabaseType") - End If - End Set - End Property - - _ - Public Property NamedDatabase() As EDMIServiceReference.DatabaseName - Get - Return Me.NamedDatabaseField - End Get - Set - If (Me.NamedDatabaseField.Equals(value) <> true) Then - Me.NamedDatabaseField = value - Me.RaisePropertyChanged("NamedDatabase") - End If - End Set - End Property - - _ - Public Property SqlCommand() As String - Get - Return Me.SqlCommandField - End Get - Set - If (Object.ReferenceEquals(Me.SqlCommandField, value) <> true) Then - Me.SqlCommandField = value - Me.RaisePropertyChanged("SqlCommand") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class NewFileRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private FileField As EDMIServiceReference.FileProperties - - _ - Private IDBDoctypeIdField As Long - - _ - Private KindTypeField As String - - _ - Private StoreNameField As String - - _ - Private UserField As EDMIServiceReference.UserState - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property File() As EDMIServiceReference.FileProperties - Get - Return Me.FileField - End Get - Set - If (Object.ReferenceEquals(Me.FileField, value) <> true) Then - Me.FileField = value - Me.RaisePropertyChanged("File") - End If - End Set - End Property - - _ - Public Property IDBDoctypeId() As Long - Get - Return Me.IDBDoctypeIdField - End Get - Set - If (Me.IDBDoctypeIdField.Equals(value) <> true) Then - Me.IDBDoctypeIdField = value - Me.RaisePropertyChanged("IDBDoctypeId") - End If - End Set - End Property - - _ - Public Property KindType() As String - Get - Return Me.KindTypeField - End Get - Set - If (Object.ReferenceEquals(Me.KindTypeField, value) <> true) Then - Me.KindTypeField = value - Me.RaisePropertyChanged("KindType") - End If - End Set - End Property - - _ - Public Property StoreName() As String - Get - Return Me.StoreNameField - End Get - Set - If (Object.ReferenceEquals(Me.StoreNameField, value) <> true) Then - Me.StoreNameField = value - Me.RaisePropertyChanged("StoreName") - End If - End Set - End Property - - _ - Public Property User() As EDMIServiceReference.UserState - Get - Return Me.UserField - End Get - Set - If (Object.ReferenceEquals(Me.UserField, value) <> true) Then - Me.UserField = value - Me.RaisePropertyChanged("User") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class FileProperties - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private FileChangedAtField As String - - _ - Private FileChecksumField As String - - _ - Private FileContentsField() As Byte - - _ - Private FileCreatedAtField As String - - _ - Private FileImportedAtField As Date - - _ - Private FileInfoRawField As System.IO.FileInfo - - _ - Private FileNameField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property FileChangedAt() As String - Get - Return Me.FileChangedAtField - End Get - Set - If (Object.ReferenceEquals(Me.FileChangedAtField, value) <> true) Then - Me.FileChangedAtField = value - Me.RaisePropertyChanged("FileChangedAt") - End If - End Set - End Property - - _ - Public Property FileChecksum() As String - Get - Return Me.FileChecksumField - End Get - Set - If (Object.ReferenceEquals(Me.FileChecksumField, value) <> true) Then - Me.FileChecksumField = value - Me.RaisePropertyChanged("FileChecksum") - End If - End Set - End Property - - _ - Public Property FileContents() As Byte() - Get - Return Me.FileContentsField - End Get - Set - If (Object.ReferenceEquals(Me.FileContentsField, value) <> true) Then - Me.FileContentsField = value - Me.RaisePropertyChanged("FileContents") - End If - End Set - End Property - - _ - Public Property FileCreatedAt() As String - Get - Return Me.FileCreatedAtField - End Get - Set - If (Object.ReferenceEquals(Me.FileCreatedAtField, value) <> true) Then - Me.FileCreatedAtField = value - Me.RaisePropertyChanged("FileCreatedAt") - End If - End Set - End Property - - _ - Public Property FileImportedAt() As Date - Get - Return Me.FileImportedAtField - End Get - Set - If (Me.FileImportedAtField.Equals(value) <> true) Then - Me.FileImportedAtField = value - Me.RaisePropertyChanged("FileImportedAt") - End If - End Set - End Property - - _ - Public Property FileInfoRaw() As System.IO.FileInfo - Get - Return Me.FileInfoRawField - End Get - Set - If (Object.ReferenceEquals(Me.FileInfoRawField, value) <> true) Then - Me.FileInfoRawField = value - Me.RaisePropertyChanged("FileInfoRaw") - End If - End Set - End Property - - _ - Public Property FileName() As String - Get - Return Me.FileNameField - End Get - Set - If (Object.ReferenceEquals(Me.FileNameField, value) <> true) Then - Me.FileNameField = value - Me.RaisePropertyChanged("FileName") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class UserAttributeValue - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ControlNameField As String - - _ - Private IdField As Integer - - _ - Private NameField As String - - _ - Private ValuesField() As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property ControlName() As String - Get - Return Me.ControlNameField - End Get - Set - If (Object.ReferenceEquals(Me.ControlNameField, value) <> true) Then - Me.ControlNameField = value - Me.RaisePropertyChanged("ControlName") - End If - End Set - End Property - - _ - Public Property Id() As Integer - Get - Return Me.IdField - End Get - Set - If (Me.IdField.Equals(value) <> true) Then - Me.IdField = value - Me.RaisePropertyChanged("Id") - End If - End Set - End Property - - _ - Public Property Name() As String - Get - Return Me.NameField - End Get - Set - If (Object.ReferenceEquals(Me.NameField, value) <> true) Then - Me.NameField = value - Me.RaisePropertyChanged("Name") - End If - End Set - End Property - - _ - Public Property Values() As String() - Get - Return Me.ValuesField - End Get - Set - If (Object.ReferenceEquals(Me.ValuesField, value) <> true) Then - Me.ValuesField = value - Me.RaisePropertyChanged("Values") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class UserState - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private DateFormatField As String - - _ - Private EmailField As String - - _ - Private GivenNameField As String - - _ - Private HideBasicConfigField As Boolean - - _ - Private IsAdminField As Boolean - - _ - Private LanguageField As String - - _ - Private LanguageIdField As Integer - - _ - Private MachineNameField As String - - _ - Private ShortNameField As String - - _ - Private SurnameField As String - - _ - Private UserIdField As Integer - - _ - Private UserNameField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property DateFormat() As String - Get - Return Me.DateFormatField - End Get - Set - If (Object.ReferenceEquals(Me.DateFormatField, value) <> true) Then - Me.DateFormatField = value - Me.RaisePropertyChanged("DateFormat") - End If - End Set - End Property - - _ - Public Property Email() As String - Get - Return Me.EmailField - End Get - Set - If (Object.ReferenceEquals(Me.EmailField, value) <> true) Then - Me.EmailField = value - Me.RaisePropertyChanged("Email") - End If - End Set - End Property - - _ - Public Property GivenName() As String - Get - Return Me.GivenNameField - End Get - Set - If (Object.ReferenceEquals(Me.GivenNameField, value) <> true) Then - Me.GivenNameField = value - Me.RaisePropertyChanged("GivenName") - End If - End Set - End Property - - _ - Public Property HideBasicConfig() As Boolean - Get - Return Me.HideBasicConfigField - End Get - Set - If (Me.HideBasicConfigField.Equals(value) <> true) Then - Me.HideBasicConfigField = value - Me.RaisePropertyChanged("HideBasicConfig") - End If - End Set - End Property - - _ - Public Property IsAdmin() As Boolean - Get - Return Me.IsAdminField - End Get - Set - If (Me.IsAdminField.Equals(value) <> true) Then - Me.IsAdminField = value - Me.RaisePropertyChanged("IsAdmin") - End If - End Set - End Property - - _ - Public Property Language() As String - Get - Return Me.LanguageField - End Get - Set - If (Object.ReferenceEquals(Me.LanguageField, value) <> true) Then - Me.LanguageField = value - Me.RaisePropertyChanged("Language") - End If - End Set - End Property - - _ - Public Property LanguageId() As Integer - Get - Return Me.LanguageIdField - End Get - Set - If (Me.LanguageIdField.Equals(value) <> true) Then - Me.LanguageIdField = value - Me.RaisePropertyChanged("LanguageId") - End If - End Set - End Property - - _ - Public Property MachineName() As String - Get - Return Me.MachineNameField - End Get - Set - If (Object.ReferenceEquals(Me.MachineNameField, value) <> true) Then - Me.MachineNameField = value - Me.RaisePropertyChanged("MachineName") - End If - End Set - End Property - - _ - Public Property ShortName() As String - Get - Return Me.ShortNameField - End Get - Set - If (Object.ReferenceEquals(Me.ShortNameField, value) <> true) Then - Me.ShortNameField = value - Me.RaisePropertyChanged("ShortName") - End If - End Set - End Property - - _ - Public Property Surname() As String - Get - Return Me.SurnameField - End Get - Set - If (Object.ReferenceEquals(Me.SurnameField, value) <> true) Then - Me.SurnameField = value - Me.RaisePropertyChanged("Surname") - End If - End Set - End Property - - _ - Public Property UserId() As Integer - Get - Return Me.UserIdField - End Get - Set - If (Me.UserIdField.Equals(value) <> true) Then - Me.UserIdField = value - Me.RaisePropertyChanged("UserId") - End If - End Set - End Property - - _ - Public Property UserName() As String - Get - Return Me.UserNameField - End Get - Set - If (Object.ReferenceEquals(Me.UserNameField, value) <> true) Then - Me.UserNameField = value - Me.RaisePropertyChanged("UserName") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class UpdateFileRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private CreateNewVersionField As Boolean - - _ - Private FileField As EDMIServiceReference.FileProperties - - _ - Private ObjectIdField As Long - - _ - Private UserField As EDMIServiceReference.UserState - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property CreateNewVersion() As Boolean - Get - Return Me.CreateNewVersionField - End Get - Set - If (Me.CreateNewVersionField.Equals(value) <> true) Then - Me.CreateNewVersionField = value - Me.RaisePropertyChanged("CreateNewVersion") - End If - End Set - End Property - - _ - Public Property File() As EDMIServiceReference.FileProperties - Get - Return Me.FileField - End Get - Set - If (Object.ReferenceEquals(Me.FileField, value) <> true) Then - Me.FileField = value - Me.RaisePropertyChanged("File") - End If - End Set - End Property - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - - _ - Public Property User() As EDMIServiceReference.UserState - Get - Return Me.UserField - End Get - Set - If (Object.ReferenceEquals(Me.UserField, value) <> true) Then - Me.UserField = value - Me.RaisePropertyChanged("User") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetAttributeValueRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private AttributeNameField As String - - _ - Private AttributeValueField As String - - _ - Private LanguageField As String - - _ - Private ObjectIdField As Long - - _ - Private WhoField As String - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property AttributeName() As String - Get - Return Me.AttributeNameField - End Get - Set - If (Object.ReferenceEquals(Me.AttributeNameField, value) <> true) Then - Me.AttributeNameField = value - Me.RaisePropertyChanged("AttributeName") - End If - End Set - End Property - - _ - Public Property AttributeValue() As String - Get - Return Me.AttributeValueField - End Get - Set - If (Object.ReferenceEquals(Me.AttributeValueField, value) <> true) Then - Me.AttributeValueField = value - Me.RaisePropertyChanged("AttributeValue") - End If - End Set - End Property - - _ - Public Property Language() As String - Get - Return Me.LanguageField - End Get - Set - If (Object.ReferenceEquals(Me.LanguageField, value) <> true) Then - Me.LanguageField = value - Me.RaisePropertyChanged("Language") - End If - End Set - End Property - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - - _ - Public Property Who() As String - Get - Return Me.WhoField - End Get - Set - If (Object.ReferenceEquals(Me.WhoField, value) <> true) Then - Me.WhoField = value - Me.RaisePropertyChanged("Who") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetAttributeValueRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private AttributeNameField As String - - _ - Private ObjectIdField As Long - - _ - Private UserField As EDMIServiceReference.UserState - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property AttributeName() As String - Get - Return Me.AttributeNameField - End Get - Set - If (Object.ReferenceEquals(Me.AttributeNameField, value) <> true) Then - Me.AttributeNameField = value - Me.RaisePropertyChanged("AttributeName") - End If - End Set - End Property - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - - _ - Public Property User() As EDMIServiceReference.UserState - Get - Return Me.UserField - End Get - Set - If (Object.ReferenceEquals(Me.UserField, value) <> true) Then - Me.UserField = value - Me.RaisePropertyChanged("User") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetFileObjectRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private LoadFileContentsField As Boolean - - _ - Private ObjectIdField As Long - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property LoadFileContents() As Boolean - Get - Return Me.LoadFileContentsField - End Get - Set - If (Me.LoadFileContentsField.Equals(value) <> true) Then - Me.LoadFileContentsField = value - Me.RaisePropertyChanged("LoadFileContents") - End If - End Set - End Property - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class FileObject - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - Private _AccessRightsField As String - - Private _FileContentsField() As Byte - - Private _FileExtensionField As String - - Private _FileHashField As String - - Private _FilePathField As String - - Private _FileSizeField As Long - - Private _ObjectIdField As Long - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property _AccessRights() As String - Get - Return Me._AccessRightsField - End Get - Set - If (Object.ReferenceEquals(Me._AccessRightsField, value) <> true) Then - Me._AccessRightsField = value - Me.RaisePropertyChanged("_AccessRights") - End If - End Set - End Property - - _ - Public Property _FileContents() As Byte() - Get - Return Me._FileContentsField - End Get - Set - If (Object.ReferenceEquals(Me._FileContentsField, value) <> true) Then - Me._FileContentsField = value - Me.RaisePropertyChanged("_FileContents") - End If - End Set - End Property - - _ - Public Property _FileExtension() As String - Get - Return Me._FileExtensionField - End Get - Set - If (Object.ReferenceEquals(Me._FileExtensionField, value) <> true) Then - Me._FileExtensionField = value - Me.RaisePropertyChanged("_FileExtension") - End If - End Set - End Property - - _ - Public Property _FileHash() As String - Get - Return Me._FileHashField - End Get - Set - If (Object.ReferenceEquals(Me._FileHashField, value) <> true) Then - Me._FileHashField = value - Me.RaisePropertyChanged("_FileHash") - End If - End Set - End Property - - _ - Public Property _FilePath() As String - Get - Return Me._FilePathField - End Get - Set - If (Object.ReferenceEquals(Me._FilePathField, value) <> true) Then - Me._FilePathField = value - Me.RaisePropertyChanged("_FilePath") - End If - End Set - End Property - - _ - Public Property _FileSize() As Long - Get - Return Me._FileSizeField - End Get - Set - If (Me._FileSizeField.Equals(value) <> true) Then - Me._FileSizeField = value - Me.RaisePropertyChanged("_FileSize") - End If - End Set - End Property - - _ - Public Property _ObjectId() As Long - Get - Return Me._ObjectIdField - End Get - Set - If (Me._ObjectIdField.Equals(value) <> true) Then - Me._ObjectIdField = value - Me.RaisePropertyChanged("_ObjectId") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class CheckInOutFileRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private ActionField As EDMIServiceReference.CheckInOutFileAction - - _ - Private CommentField As String - - _ - Private ObjectIdField As Long - - _ - Private UserField As EDMIServiceReference.UserState - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property Action() As EDMIServiceReference.CheckInOutFileAction - Get - Return Me.ActionField - End Get - Set - If (Me.ActionField.Equals(value) <> true) Then - Me.ActionField = value - Me.RaisePropertyChanged("Action") - End If - End Set - End Property - - _ - Public Property Comment() As String - Get - Return Me.CommentField - End Get - Set - If (Object.ReferenceEquals(Me.CommentField, value) <> true) Then - Me.CommentField = value - Me.RaisePropertyChanged("Comment") - End If - End Set - End Property - - _ - Public Property ObjectId() As Long - Get - Return Me.ObjectIdField - End Get - Set - If (Me.ObjectIdField.Equals(value) <> true) Then - Me.ObjectIdField = value - Me.RaisePropertyChanged("ObjectId") - End If - End Set - End Property - - _ - Public Property User() As EDMIServiceReference.UserState - Get - Return Me.UserField - End Get - Set - If (Object.ReferenceEquals(Me.UserField, value) <> true) Then - Me.UserField = value - Me.RaisePropertyChanged("User") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Public Enum CheckInOutFileAction As Integer - - _ - CheckIn = 0 - - _ - CheckOut = 1 - End Enum - - _ - Partial Public Class ImportFileRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private AttributeValuesField() As EDMIServiceReference.UserAttributeValue - - _ - Private FileField As EDMIServiceReference.FileProperties - - _ - Private IDBDoctypeIdField As Long - - _ - Private KindTypeField As String - - _ - Private ProfileIdField As Integer - - _ - Private StoreNameField As String - - _ - Private UserField As EDMIServiceReference.UserState - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property AttributeValues() As EDMIServiceReference.UserAttributeValue() - Get - Return Me.AttributeValuesField - End Get - Set - If (Object.ReferenceEquals(Me.AttributeValuesField, value) <> true) Then - Me.AttributeValuesField = value - Me.RaisePropertyChanged("AttributeValues") - End If - End Set - End Property - - _ - Public Property File() As EDMIServiceReference.FileProperties - Get - Return Me.FileField - End Get - Set - If (Object.ReferenceEquals(Me.FileField, value) <> true) Then - Me.FileField = value - Me.RaisePropertyChanged("File") - End If - End Set - End Property - - _ - Public Property IDBDoctypeId() As Long - Get - Return Me.IDBDoctypeIdField - End Get - Set - If (Me.IDBDoctypeIdField.Equals(value) <> true) Then - Me.IDBDoctypeIdField = value - Me.RaisePropertyChanged("IDBDoctypeId") - End If - End Set - End Property - - _ - Public Property KindType() As String - Get - Return Me.KindTypeField - End Get - Set - If (Object.ReferenceEquals(Me.KindTypeField, value) <> true) Then - Me.KindTypeField = value - Me.RaisePropertyChanged("KindType") - End If - End Set - End Property - - _ - Public Property ProfileId() As Integer - Get - Return Me.ProfileIdField - End Get - Set - If (Me.ProfileIdField.Equals(value) <> true) Then - Me.ProfileIdField = value - Me.RaisePropertyChanged("ProfileId") - End If - End Set - End Property - - _ - Public Property StoreName() As String - Get - Return Me.StoreNameField - End Get - Set - If (Object.ReferenceEquals(Me.StoreNameField, value) <> true) Then - Me.StoreNameField = value - Me.RaisePropertyChanged("StoreName") - End If - End Set - End Property - - _ - Public Property User() As EDMIServiceReference.UserState - Get - Return Me.UserField - End Get - Set - If (Object.ReferenceEquals(Me.UserField, value) <> true) Then - Me.UserField = value - Me.RaisePropertyChanged("User") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class Globix_ImportFileRequest - Inherits Object - Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged - - _ - Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject - - _ - Private AttributeValuesField() As EDMIServiceReference.UserAttributeValue - - _ - Private FileField As EDMIServiceReference.FileProperties - - _ - Private IDBDoctypeIdField As Long - - _ - Private KindTypeField As String - - _ - Private ProfileIdField As Integer - - _ - Private StoreNameField As String - - _ - Private UserField As EDMIServiceReference.UserState - - _ - Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData - Get - Return Me.extensionDataField - End Get - Set - Me.extensionDataField = value - End Set - End Property - - _ - Public Property AttributeValues() As EDMIServiceReference.UserAttributeValue() - Get - Return Me.AttributeValuesField - End Get - Set - If (Object.ReferenceEquals(Me.AttributeValuesField, value) <> true) Then - Me.AttributeValuesField = value - Me.RaisePropertyChanged("AttributeValues") - End If - End Set - End Property - - _ - Public Property File() As EDMIServiceReference.FileProperties - Get - Return Me.FileField - End Get - Set - If (Object.ReferenceEquals(Me.FileField, value) <> true) Then - Me.FileField = value - Me.RaisePropertyChanged("File") - End If - End Set - End Property - - _ - Public Property IDBDoctypeId() As Long - Get - Return Me.IDBDoctypeIdField - End Get - Set - If (Me.IDBDoctypeIdField.Equals(value) <> true) Then - Me.IDBDoctypeIdField = value - Me.RaisePropertyChanged("IDBDoctypeId") - End If - End Set - End Property - - _ - Public Property KindType() As String - Get - Return Me.KindTypeField - End Get - Set - If (Object.ReferenceEquals(Me.KindTypeField, value) <> true) Then - Me.KindTypeField = value - Me.RaisePropertyChanged("KindType") - End If - End Set - End Property - - _ - Public Property ProfileId() As Integer - Get - Return Me.ProfileIdField - End Get - Set - If (Me.ProfileIdField.Equals(value) <> true) Then - Me.ProfileIdField = value - Me.RaisePropertyChanged("ProfileId") - End If - End Set - End Property - - _ - Public Property StoreName() As String - Get - Return Me.StoreNameField - End Get - Set - If (Object.ReferenceEquals(Me.StoreNameField, value) <> true) Then - Me.StoreNameField = value - Me.RaisePropertyChanged("StoreName") - End If - End Set - End Property - - _ - Public Property User() As EDMIServiceReference.UserState - Get - Return Me.UserField - End Get - Set - If (Object.ReferenceEquals(Me.UserField, value) <> true) Then - Me.UserField = value - Me.RaisePropertyChanged("User") - End If - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Public Enum RightsAccessRight As Integer - - _ - VIEW_ONLY = 1 - - _ - VIEW_EXPORT = 2 - - _ - FULL = 4 - End Enum - - _ - Public Interface IEDMIService - - _ - Function Heartbeat() As Boolean - - _ - Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean) - - _ - Function GetClientConfig() As EDMIServiceReference.GetClientConfigResponse - - _ - Function GetClientConfigAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.GetClientConfigResponse) - - _ - Function GetCachedTables() As String() - - _ - Function GetCachedTablesAsync() As System.Threading.Tasks.Task(Of String()) - - _ - Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult - - _ - Function ReturnDatatableFromCacheAsync(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) - - _ - Function ReturnDatatable(ByVal pData As EDMIServiceReference.GetDatatableRequest) As EDMIServiceReference.GetDatatableResponse - - _ - Function ReturnDatatableAsync(ByVal pData As EDMIServiceReference.GetDatatableRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetDatatableResponse) - - _ - Function ReturnScalarValue(ByVal pData As EDMIServiceReference.GetScalarValueRequest) As EDMIServiceReference.GetScalarValueResponse - - _ - Function ReturnScalarValueAsync(ByVal pData As EDMIServiceReference.GetScalarValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetScalarValueResponse) - - _ - Function ExecuteNonQuery(ByVal pData As EDMIServiceReference.ExecuteNonQueryRequest) As EDMIServiceReference.ExecuteNonQueryResponse - - _ - Function ExecuteNonQueryAsync(ByVal pData As EDMIServiceReference.ExecuteNonQueryRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ExecuteNonQueryResponse) - - _ - Function ReturnDatatable_Firebird(ByVal SQL As String) As EDMIServiceReference.TableResult - - _ - Function ReturnDatatable_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) - - _ - Function ReturnScalar_Firebird(ByVal SQL As String) As EDMIServiceReference.ScalarResult - - _ - Function ReturnScalar_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) - - _ - Function ExecuteNonQuery_Firebird(ByVal SQL As String) As EDMIServiceReference.NonQueryResult - - _ - Function ExecuteNonQuery_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) - - _ - Function ReturnDatatable_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.TableResult - - _ - Function ReturnDatatable_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) - - _ - Function ReturnScalar_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.ScalarResult - - _ - Function ReturnScalar_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) - - _ - Function ExecuteNonQuery_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.NonQueryResult - - _ - Function ExecuteNonQuery_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) - - _ - Function ReturnDatatable_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.TableResult - - _ - Function ReturnDatatable_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) - - _ - Function ReturnScalar_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.ScalarResult - - _ - Function ReturnScalar_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) - - _ - Function ExecuteNonQuery_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.NonQueryResult - - _ - Function ExecuteNonQuery_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) - - _ - Function NewFile(ByVal Data As EDMIServiceReference.NewFileRequest) As EDMIServiceReference.NewFileResponse - - _ - Function NewFileAsync(ByVal Data As EDMIServiceReference.NewFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileResponse) - - _ - Function UpdateFile(ByVal Data As EDMIServiceReference.UpdateFileRequest) As EDMIServiceReference.UpdateFileResponse - - _ - Function UpdateFileAsync(ByVal Data As EDMIServiceReference.UpdateFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.UpdateFileResponse) - - _ - Function SetAttributeValue(ByVal Data As EDMIServiceReference.SetAttributeValueRequest) As EDMIServiceReference.SetAttributeValueResponse - - _ - Function SetAttributeValueAsync(ByVal Data As EDMIServiceReference.SetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.SetAttributeValueResponse) - - _ - Function GetAttributeValue(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As EDMIServiceReference.GetAttributeValueResponse - - _ - Function GetAttributeValueAsync(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetAttributeValueResponse) - - _ - Function GetFileObject(ByVal Data As EDMIServiceReference.GetFileObjectRequest) As EDMIServiceReference.GetFileObjectResponse - - _ - Function GetFileObjectAsync(ByVal Data As EDMIServiceReference.GetFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetFileObjectResponse) - - _ - Function CheckInOutFile(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As EDMIServiceReference.CheckInOutFileResponse - - _ - Function CheckInOutFileAsync(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.CheckInOutFileResponse) - - _ - Function ImportFile(ByVal Data As EDMIServiceReference.ImportFileRequest) As EDMIServiceReference.ImportFileResponse - - _ - Function ImportFileAsync(ByVal Data As EDMIServiceReference.ImportFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileResponse) - - _ - Function Globix_ImportFile(ByVal Data As EDMIServiceReference.Globix_ImportFileRequest) As EDMIServiceReference.Globix_ImportFileResponse - - _ - Function Globix_ImportFileAsync(ByVal Data As EDMIServiceReference.Globix_ImportFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.Globix_ImportFileResponse) - - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentStreamRequest) von Nachricht "DocumentStreamRequest" nicht mit dem Standardwert (GetFileByObjectId) übereinstimmt. - _ - Function GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse - - _ - Function GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) - - _ - Function GetFileInfoByObjectId(ByVal request As EDMIServiceReference.DocumentInfoRequest) As EDMIServiceReference.DocumentInfoResponse - - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Vorgang mehrere Rückgabewerte aufweist. - _ - Function GetFileInfoByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentInfoRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentInfoResponse) - - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Vorgang ListFilesForUser weder in RPC noch in einem Dokument eingeschlossen ist. - _ - Function ListFilesForUser(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As EDMIServiceReference.DocumentListResponse - - _ - Function ListFilesForUserAsync(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) - - _ - Function TestObjectIdExists(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As EDMIServiceReference.TestObjectIdExistsResponse - - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Vorgang mehrere Rückgabewerte aufweist. - _ - Function TestObjectIdExistsAsync(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.TestObjectIdExistsResponse) - End Interface - - _ - Partial Public Class DocumentStreamRequest - - _ - Public ObjectId As Long - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ObjectId As Long) - MyBase.New - Me.ObjectId = ObjectId - End Sub - End Class - - _ - Partial Public Class DocumentStreamResponse - - _ - Public FileName As String - - _ - Public FileContents As System.IO.Stream - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal FileName As String, ByVal FileContents As System.IO.Stream) - MyBase.New - Me.FileName = FileName - Me.FileContents = FileContents - End Sub - End Class - - _ - Partial Public Class DocumentInfoRequest - - _ - Public ObjectId As Long - - _ - Public UserId As Long - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ObjectId As Long, ByVal UserId As Long) - MyBase.New - Me.ObjectId = ObjectId - Me.UserId = UserId - End Sub - End Class - - _ - Partial Public Class DocumentInfoResponse - - _ - Public FileRight As EDMIServiceReference.RightsAccessRight - - _ - Public FullPath As String - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal FileRight As EDMIServiceReference.RightsAccessRight, ByVal FullPath As String) - MyBase.New - Me.FileRight = FileRight - Me.FullPath = FullPath - End Sub - End Class - - _ - Partial Public Class ListFilesForUserRequest - - Public Sub New() - MyBase.New - End Sub - End Class - - _ - Partial Public Class DocumentListResponse - - _ - Public Datatable As System.Data.DataTable - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Datatable As System.Data.DataTable) - MyBase.New - Me.Datatable = Datatable - End Sub - End Class - - _ - Partial Public Class TestObjectIdExistsRequest - - _ - Public ObjectId As Long - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ObjectId As Long) - MyBase.New - Me.ObjectId = ObjectId - End Sub - End Class - - _ - Partial Public Class TestObjectIdExistsResponse - - _ - Public Deleted As Boolean - - _ - Public Exists As Boolean - - _ - Public Inactive As Boolean - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Deleted As Boolean, ByVal Exists As Boolean, ByVal Inactive As Boolean) - MyBase.New - Me.Deleted = Deleted - Me.Exists = Exists - Me.Inactive = Inactive - End Sub - End Class - - _ - Public Interface IEDMIServiceChannel - Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel - End Interface - - _ - Partial Public Class EDMIServiceClient - Inherits System.ServiceModel.ClientBase(Of EDMIServiceReference.IEDMIService) - Implements EDMIServiceReference.IEDMIService - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal endpointConfigurationName As String) - MyBase.New(endpointConfigurationName) - End Sub - - Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String) - MyBase.New(endpointConfigurationName, remoteAddress) - End Sub - - Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As System.ServiceModel.EndpointAddress) - MyBase.New(endpointConfigurationName, remoteAddress) - End Sub - - Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, ByVal remoteAddress As System.ServiceModel.EndpointAddress) - MyBase.New(binding, remoteAddress) - End Sub - - Public Function Heartbeat() As Boolean Implements EDMIServiceReference.IEDMIService.Heartbeat - Return MyBase.Channel.Heartbeat - End Function - - Public Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean) Implements EDMIServiceReference.IEDMIService.HeartbeatAsync - Return MyBase.Channel.HeartbeatAsync - End Function - - Public Function GetClientConfig() As EDMIServiceReference.GetClientConfigResponse Implements EDMIServiceReference.IEDMIService.GetClientConfig - Return MyBase.Channel.GetClientConfig - End Function - - Public Function GetClientConfigAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.GetClientConfigResponse) Implements EDMIServiceReference.IEDMIService.GetClientConfigAsync - Return MyBase.Channel.GetClientConfigAsync - End Function - - Public Function GetCachedTables() As String() Implements EDMIServiceReference.IEDMIService.GetCachedTables - Return MyBase.Channel.GetCachedTables - End Function - - Public Function GetCachedTablesAsync() As System.Threading.Tasks.Task(Of String()) Implements EDMIServiceReference.IEDMIService.GetCachedTablesAsync - Return MyBase.Channel.GetCachedTablesAsync - End Function - - Public Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCache - Return MyBase.Channel.ReturnDatatableFromCache(Name, FilterExpression, SortByColumn) - End Function - - Public Function ReturnDatatableFromCacheAsync(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCacheAsync - Return MyBase.Channel.ReturnDatatableFromCacheAsync(Name, FilterExpression, SortByColumn) - End Function - - Public Function ReturnDatatable(ByVal pData As EDMIServiceReference.GetDatatableRequest) As EDMIServiceReference.GetDatatableResponse Implements EDMIServiceReference.IEDMIService.ReturnDatatable - Return MyBase.Channel.ReturnDatatable(pData) - End Function - - Public Function ReturnDatatableAsync(ByVal pData As EDMIServiceReference.GetDatatableRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetDatatableResponse) Implements EDMIServiceReference.IEDMIService.ReturnDatatableAsync - Return MyBase.Channel.ReturnDatatableAsync(pData) - End Function - - Public Function ReturnScalarValue(ByVal pData As EDMIServiceReference.GetScalarValueRequest) As EDMIServiceReference.GetScalarValueResponse Implements EDMIServiceReference.IEDMIService.ReturnScalarValue - Return MyBase.Channel.ReturnScalarValue(pData) - End Function - - Public Function ReturnScalarValueAsync(ByVal pData As EDMIServiceReference.GetScalarValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetScalarValueResponse) Implements EDMIServiceReference.IEDMIService.ReturnScalarValueAsync - Return MyBase.Channel.ReturnScalarValueAsync(pData) - End Function - - Public Function ExecuteNonQuery(ByVal pData As EDMIServiceReference.ExecuteNonQueryRequest) As EDMIServiceReference.ExecuteNonQueryResponse Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery - Return MyBase.Channel.ExecuteNonQuery(pData) - End Function - - Public Function ExecuteNonQueryAsync(ByVal pData As EDMIServiceReference.ExecuteNonQueryRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ExecuteNonQueryResponse) Implements EDMIServiceReference.IEDMIService.ExecuteNonQueryAsync - Return MyBase.Channel.ExecuteNonQueryAsync(pData) - End Function - - Public Function ReturnDatatable_Firebird(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_Firebird - Return MyBase.Channel.ReturnDatatable_Firebird(SQL) - End Function - - Public Function ReturnDatatable_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_FirebirdAsync - Return MyBase.Channel.ReturnDatatable_FirebirdAsync(SQL) - End Function - - Public Function ReturnScalar_Firebird(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_Firebird - Return MyBase.Channel.ReturnScalar_Firebird(SQL) - End Function - - Public Function ReturnScalar_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_FirebirdAsync - Return MyBase.Channel.ReturnScalar_FirebirdAsync(SQL) - End Function - - Public Function ExecuteNonQuery_Firebird(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_Firebird - Return MyBase.Channel.ExecuteNonQuery_Firebird(SQL) - End Function - - Public Function ExecuteNonQuery_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_FirebirdAsync - Return MyBase.Channel.ExecuteNonQuery_FirebirdAsync(SQL) - End Function - - Public Function ReturnDatatable_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_IDB - Return MyBase.Channel.ReturnDatatable_MSSQL_IDB(SQL) - End Function - - Public Function ReturnDatatable_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_IDBAsync - Return MyBase.Channel.ReturnDatatable_MSSQL_IDBAsync(SQL) - End Function - - Public Function ReturnScalar_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_IDB - Return MyBase.Channel.ReturnScalar_MSSQL_IDB(SQL) - End Function - - Public Function ReturnScalar_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_IDBAsync - Return MyBase.Channel.ReturnScalar_MSSQL_IDBAsync(SQL) - End Function - - Public Function ExecuteNonQuery_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_IDB - Return MyBase.Channel.ExecuteNonQuery_MSSQL_IDB(SQL) - End Function - - Public Function ExecuteNonQuery_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_IDBAsync - Return MyBase.Channel.ExecuteNonQuery_MSSQL_IDBAsync(SQL) - End Function - - Public Function ReturnDatatable_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_ECM - Return MyBase.Channel.ReturnDatatable_MSSQL_ECM(SQL) - End Function - - Public Function ReturnDatatable_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_ECMAsync - Return MyBase.Channel.ReturnDatatable_MSSQL_ECMAsync(SQL) - End Function - - Public Function ReturnScalar_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_ECM - Return MyBase.Channel.ReturnScalar_MSSQL_ECM(SQL) - End Function - - Public Function ReturnScalar_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_ECMAsync - Return MyBase.Channel.ReturnScalar_MSSQL_ECMAsync(SQL) - End Function - - Public Function ExecuteNonQuery_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_ECM - Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECM(SQL) - End Function - - Public Function ExecuteNonQuery_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_ECMAsync - Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECMAsync(SQL) - End Function - - Public Function NewFile(ByVal Data As EDMIServiceReference.NewFileRequest) As EDMIServiceReference.NewFileResponse Implements EDMIServiceReference.IEDMIService.NewFile - Return MyBase.Channel.NewFile(Data) - End Function - - Public Function NewFileAsync(ByVal Data As EDMIServiceReference.NewFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileResponse) Implements EDMIServiceReference.IEDMIService.NewFileAsync - Return MyBase.Channel.NewFileAsync(Data) - End Function - - Public Function UpdateFile(ByVal Data As EDMIServiceReference.UpdateFileRequest) As EDMIServiceReference.UpdateFileResponse Implements EDMIServiceReference.IEDMIService.UpdateFile - Return MyBase.Channel.UpdateFile(Data) - End Function - - Public Function UpdateFileAsync(ByVal Data As EDMIServiceReference.UpdateFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.UpdateFileResponse) Implements EDMIServiceReference.IEDMIService.UpdateFileAsync - Return MyBase.Channel.UpdateFileAsync(Data) - End Function - - Public Function SetAttributeValue(ByVal Data As EDMIServiceReference.SetAttributeValueRequest) As EDMIServiceReference.SetAttributeValueResponse Implements EDMIServiceReference.IEDMIService.SetAttributeValue - Return MyBase.Channel.SetAttributeValue(Data) - End Function - - Public Function SetAttributeValueAsync(ByVal Data As EDMIServiceReference.SetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.SetAttributeValueResponse) Implements EDMIServiceReference.IEDMIService.SetAttributeValueAsync - Return MyBase.Channel.SetAttributeValueAsync(Data) - End Function - - Public Function GetAttributeValue(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As EDMIServiceReference.GetAttributeValueResponse Implements EDMIServiceReference.IEDMIService.GetAttributeValue - Return MyBase.Channel.GetAttributeValue(Data) - End Function - - Public Function GetAttributeValueAsync(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetAttributeValueResponse) Implements EDMIServiceReference.IEDMIService.GetAttributeValueAsync - Return MyBase.Channel.GetAttributeValueAsync(Data) - End Function - - Public Function GetFileObject(ByVal Data As EDMIServiceReference.GetFileObjectRequest) As EDMIServiceReference.GetFileObjectResponse Implements EDMIServiceReference.IEDMIService.GetFileObject - Return MyBase.Channel.GetFileObject(Data) - End Function - - Public Function GetFileObjectAsync(ByVal Data As EDMIServiceReference.GetFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetFileObjectResponse) Implements EDMIServiceReference.IEDMIService.GetFileObjectAsync - Return MyBase.Channel.GetFileObjectAsync(Data) - End Function - - Public Function CheckInOutFile(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As EDMIServiceReference.CheckInOutFileResponse Implements EDMIServiceReference.IEDMIService.CheckInOutFile - Return MyBase.Channel.CheckInOutFile(Data) - End Function - - Public Function CheckInOutFileAsync(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.CheckInOutFileResponse) Implements EDMIServiceReference.IEDMIService.CheckInOutFileAsync - Return MyBase.Channel.CheckInOutFileAsync(Data) - End Function - - Public Function ImportFile(ByVal Data As EDMIServiceReference.ImportFileRequest) As EDMIServiceReference.ImportFileResponse Implements EDMIServiceReference.IEDMIService.ImportFile - Return MyBase.Channel.ImportFile(Data) - End Function - - Public Function ImportFileAsync(ByVal Data As EDMIServiceReference.ImportFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileResponse) Implements EDMIServiceReference.IEDMIService.ImportFileAsync - Return MyBase.Channel.ImportFileAsync(Data) - End Function - - Public Function Globix_ImportFile(ByVal Data As EDMIServiceReference.Globix_ImportFileRequest) As EDMIServiceReference.Globix_ImportFileResponse Implements EDMIServiceReference.IEDMIService.Globix_ImportFile - Return MyBase.Channel.Globix_ImportFile(Data) - End Function - - Public Function Globix_ImportFileAsync(ByVal Data As EDMIServiceReference.Globix_ImportFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.Globix_ImportFileResponse) Implements EDMIServiceReference.IEDMIService.Globix_ImportFileAsync - Return MyBase.Channel.Globix_ImportFileAsync(Data) - End Function - - _ - Function EDMIServiceReference_IEDMIService_GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse Implements EDMIServiceReference.IEDMIService.GetFileByObjectId - Return MyBase.Channel.GetFileByObjectId(request) - End Function - - Public Function GetFileByObjectId(ByVal ObjectId As Long, ByRef FileContents As System.IO.Stream) As String - Dim inValue As EDMIServiceReference.DocumentStreamRequest = New EDMIServiceReference.DocumentStreamRequest() - inValue.ObjectId = ObjectId - Dim retVal As EDMIServiceReference.DocumentStreamResponse = CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectId(inValue) - FileContents = retVal.FileContents - Return retVal.FileName - End Function - - _ - Function EDMIServiceReference_IEDMIService_GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) Implements EDMIServiceReference.IEDMIService.GetFileByObjectIdAsync - Return MyBase.Channel.GetFileByObjectIdAsync(request) - End Function - - Public Function GetFileByObjectIdAsync(ByVal ObjectId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) - Dim inValue As EDMIServiceReference.DocumentStreamRequest = New EDMIServiceReference.DocumentStreamRequest() - inValue.ObjectId = ObjectId - Return CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue) - End Function - - _ - Function EDMIServiceReference_IEDMIService_GetFileInfoByObjectId(ByVal request As EDMIServiceReference.DocumentInfoRequest) As EDMIServiceReference.DocumentInfoResponse Implements EDMIServiceReference.IEDMIService.GetFileInfoByObjectId - Return MyBase.Channel.GetFileInfoByObjectId(request) - End Function - - Public Function GetFileInfoByObjectId(ByVal ObjectId As Long, ByVal UserId As Long, ByRef FullPath As String) As EDMIServiceReference.RightsAccessRight - Dim inValue As EDMIServiceReference.DocumentInfoRequest = New EDMIServiceReference.DocumentInfoRequest() - inValue.ObjectId = ObjectId - inValue.UserId = UserId - Dim retVal As EDMIServiceReference.DocumentInfoResponse = CType(Me,EDMIServiceReference.IEDMIService).GetFileInfoByObjectId(inValue) - FullPath = retVal.FullPath - Return retVal.FileRight - End Function - - Public Function GetFileInfoByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentInfoRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentInfoResponse) Implements EDMIServiceReference.IEDMIService.GetFileInfoByObjectIdAsync - Return MyBase.Channel.GetFileInfoByObjectIdAsync(request) - End Function - - _ - Function EDMIServiceReference_IEDMIService_ListFilesForUser(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As EDMIServiceReference.DocumentListResponse Implements EDMIServiceReference.IEDMIService.ListFilesForUser - Return MyBase.Channel.ListFilesForUser(request) - End Function - - Public Function ListFilesForUser() As System.Data.DataTable - Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest() - Dim retVal As EDMIServiceReference.DocumentListResponse = CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUser(inValue) - Return retVal.Datatable - End Function - - _ - Function EDMIServiceReference_IEDMIService_ListFilesForUserAsync(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) Implements EDMIServiceReference.IEDMIService.ListFilesForUserAsync - Return MyBase.Channel.ListFilesForUserAsync(request) - End Function - - Public Function ListFilesForUserAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) - Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest() - Return CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUserAsync(inValue) - End Function - - _ - Function EDMIServiceReference_IEDMIService_TestObjectIdExists(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As EDMIServiceReference.TestObjectIdExistsResponse Implements EDMIServiceReference.IEDMIService.TestObjectIdExists - Return MyBase.Channel.TestObjectIdExists(request) - End Function - - Public Function TestObjectIdExists(ByVal ObjectId As Long, ByRef Exists As Boolean, ByRef Inactive As Boolean) As Boolean - Dim inValue As EDMIServiceReference.TestObjectIdExistsRequest = New EDMIServiceReference.TestObjectIdExistsRequest() - inValue.ObjectId = ObjectId - Dim retVal As EDMIServiceReference.TestObjectIdExistsResponse = CType(Me,EDMIServiceReference.IEDMIService).TestObjectIdExists(inValue) - Exists = retVal.Exists - Inactive = retVal.Inactive - Return retVal.Deleted - End Function - - Public Function TestObjectIdExistsAsync(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.TestObjectIdExistsResponse) Implements EDMIServiceReference.IEDMIService.TestObjectIdExistsAsync - Return MyBase.Channel.TestObjectIdExistsAsync(request) - End Function - End Class -End Namespace diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.Data.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.Data.xsd deleted file mode 100644 index 8c8a3c0c..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.Data.xsd +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.IO.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.IO.xsd deleted file mode 100644 index 68a2b9b7..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.IO.xsd +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.xsd deleted file mode 100644 index bdecebdc..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/System.xsd +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/configuration.svcinfo b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/configuration.svcinfo deleted file mode 100644 index 42412f6c..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/configuration.svcinfo +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/configuration91.svcinfo b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/configuration91.svcinfo deleted file mode 100644 index fe0f5a59..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/configuration91.svcinfo +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - NetTcpBinding_IEDMIService - - - - - - - - - - - - - - - False - - - Streamed - - - OleTransactions - - - StrongWildcard - - - 0 - - - - - - 65536 - - - 0 - - - - - - False - - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement - - - True - - - 00:10:00 - - - False - - - System.ServiceModel.Configuration.NetTcpSecurityElement - - - Transport - - - System.ServiceModel.Configuration.TcpTransportSecurityElement - - - Windows - - - EncryptAndSign - - - System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - - - Never - - - TransportSelected - - - (Sammlung) - - - None - - - System.ServiceModel.Configuration.MessageSecurityOverTcpElement - - - Windows - - - Default - - - - - - - - - net.tcp://localhost:9000/DigitalData/Services/Main - - - - - - netTcpBinding - - - NetTcpBinding_IEDMIService - - - EDMIServiceReference.IEDMIService - - - System.ServiceModel.Configuration.AddressHeaderCollectionElement - - - <Header /> - - - System.ServiceModel.Configuration.IdentityElement - - - System.ServiceModel.Configuration.UserPrincipalNameElement - - - Administrator@dd-san01.dd-gan.local.digitaldata.works - - - System.ServiceModel.Configuration.ServicePrincipalNameElement - - - - - - System.ServiceModel.Configuration.DnsElement - - - - - - System.ServiceModel.Configuration.RsaElement - - - - - - System.ServiceModel.Configuration.CertificateElement - - - - - - System.ServiceModel.Configuration.CertificateReferenceElement - - - My - - - LocalMachine - - - FindBySubjectDistinguishedName - - - - - - False - - - NetTcpBinding_IEDMIService - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl deleted file mode 100644 index a8ce2f52..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - EncryptAndSign - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - net.tcp://localhost:9000/DigitalData/Services/Main - - Administrator@dd-san01.dd-gan.local.digitaldata.works - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.xsd deleted file mode 100644 index b4d5ff0f..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.xsd +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Constants.vb b/Modules.EDMIAPI/Constants.vb deleted file mode 100644 index 14311119..00000000 --- a/Modules.EDMIAPI/Constants.vb +++ /dev/null @@ -1,49 +0,0 @@ -Public Class Constants - Public Const DEFAULT_SERVICE_PORT = 9000 - Public Const INVALID_OBEJCT_ID As Long = 0 - - Public Enum DatabaseType - None - ECM - IDB - End Enum - - Public Enum AttributeType - Varchar = 1 - BigInteger = 2 - Float = 3 - [Decimal] = 4 - [Date] = 5 - [DateTime] = 6 - Bit = 7 - VectorString = 8 - VectorInteger = 9 - End Enum - - Public Class AttributeTypeName - Public Const VARCHAR = "VARCHAR" - Public Const BIG_INTEGER = "BIG INTEGER" - Public Const FLOAT = "FLOAT" - Public Const [DECIMAL] = "DECIMAL" - Public Const [DATE] = "DATE" - Public Const [DATETIME] = "DATETIME" - Public Const BIT = "BIT" - Public Const VECTOR_STRING = "VECTOR STRING" - Public Const VECTOR_INTEGER = "VECTOR INTEGER" - End Class - - ''' - ''' Infos about MaxBufferSize and MaxBufferPoolSize - ''' https://social.msdn.microsoft.com/Forums/vstudio/en-US/d6e234d3-942f-4e9d-8470-32618d3f3212/maxbufferpoolsize-vs-maxbuffersize?forum=wcf - ''' - Public Class ChannelSettings - Public Const MAX_RECEIVED_MESSAGE_SIZE = 2147483647 ' 1GB - Public Const MAX_BUFFER_SIZE = 104857600 ' 100MB - Public Const MAX_BUFFER_POOL_SIZE = 1048576 ' 1MB - - Public Const MAX_CONNECTIONS = 500 - Public Const MAX_ARRAY_LENGTH = 2147483647 - Public Const MAX_STRING_CONTENT_LENGTH = 2147483647 - End Class - -End Class diff --git a/Modules.EDMIAPI/DatabaseWithFallback.vb b/Modules.EDMIAPI/DatabaseWithFallback.vb deleted file mode 100644 index 771fdee7..00000000 --- a/Modules.EDMIAPI/DatabaseWithFallback.vb +++ /dev/null @@ -1,480 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.EDMI.API -Imports DigitalData.Modules.EDMI.API.Constants -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language.Utils - -Public Class DatabaseWithFallback - Private ReadOnly _Logger As Logger - Private ReadOnly _Client As Client - Private ReadOnly _ClientConfig As GlobalStateClientConfiguration - Private ReadOnly _DatabaseECM As MSSQLServer - Private _DatabaseIDB As MSSQLServer - - ''' - ''' Options for GetDatatable - ''' - Public Class GetDatatableOptions - Public ReadOnly FallbackSQL - Public ReadOnly FallbackType - - ''' - ''' Filter expression for the cached Datatable - ''' - Public Property FilterExpression As String = "" - ''' - ''' Columns to sort the cached Datatable by - ''' - Public Property SortByColumn As String = "" - ''' - ''' Force the fallback, skipping the service completely - ''' - Public Property ForceFallback As Boolean = False - ''' - ''' Connection Id to use, references TBDD_CONNECTION - ''' - Public Property ConnectionId As Integer = 0 - - ''' - ''' Creates a new options object for GetDatatable options - ''' - ''' SQL Command to execute as fallback - ''' Named Database to use for the fallback SQL Command - Public Sub New(pFallbackSQL As String, pFallbackType As Constants.DatabaseType) - FallbackSQL = pFallbackSQL - FallbackType = pFallbackType - End Sub - End Class - - Public Sub New(LogConfig As LogConfig, Client As Client, DatabaseECM As MSSQLServer, DatabaseIDB As MSSQLServer) - _Logger = LogConfig.GetLogger() - _Client = Client - _DatabaseECM = DatabaseECM - _DatabaseIDB = DatabaseIDB - - _Logger.Debug("Client exists: [{0}]", Not IsNothing(Client)) - _Logger.Debug("DatabaseECM exists: [{0}]", Not IsNothing(DatabaseECM)) - _Logger.Debug("DatabaseIDB exists: [{0}]", Not IsNothing(DatabaseIDB)) - - ' Load client config, will throw if client is not yet connected to service - _ClientConfig = Client?.ClientConfig - End Sub - - ''' - ''' Set the IDB Database class after initializing the class. - ''' It is now your responsibility to make sure to not use any IDB calls before calling this method. - ''' - Public Sub InitializeIDB(pDatabaseIDB As MSSQLServer) - _DatabaseIDB = pDatabaseIDB - End Sub - - Public Function GetConnectionString(pConnectionId As Integer) As String - Return _DatabaseECM.GetConnectionStringForId(pConnectionId) - End Function - -#Region "GetDatatable" - Public Function GetDatatableECM(pSQL As String) As DataTable - Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.ECM)) - End Function - - Public Async Function GetDatatableECMAsync(pSQL As String) As Task(Of DataTable) - Return Await Task.Run(Function() GetDatatableECM(pSQL)) - End Function - - Public Function GetDatatableIDB(pSQL As String) As DataTable - Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.IDB)) - End Function - - Public Async Function GetDatatableIDBAsync(pSQL As String) As Task(Of DataTable) - Return Await Task.Run(Function() GetDatatableIDB(pSQL)) - End Function - - Public Function GetDatatableWithConnection(pSQL As String, pConnectionId As Integer) As DataTable - Return GetDatatable(New GetDatatableOptions(pSQL, Constants.DatabaseType.None) With {.ConnectionId = pConnectionId}) - End Function - - Public Async Function GetDatatableWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of DataTable) - Return Await Task.Run(Function() GetDatatableWithConnection(pSQL, pConnectionId)) - End Function -#End Region - -#Region "GetScalarValue" - Public Function GetScalarValueECM(pSQL As String) As Object - Return GetScalarValue(pSQL, Constants.DatabaseType.ECM) - End Function - - Public Async Function GetScalarValueECMAsync(pSQL As String) As Task(Of Object) - Return Await Task.Run(Function() GetScalarValueECM(pSQL)) - End Function - - Public Function GetScalarValueIDB(pSQL As String) As Object - Return GetScalarValue(pSQL, Constants.DatabaseType.IDB) - End Function - - Public Async Function GetScalarValueIDBAsync(pSQL As String) As Task(Of Object) - Return Await Task.Run(Function() GetScalarValueIDB(pSQL)) - End Function - - Public Function GetScalarValueWithConnection(pSQL As String, pConnectionId As Integer) As Object - Return GetScalarValue(pSQL, Constants.DatabaseType.None, pConnectionId:=pConnectionId) - End Function - - Public Async Function GetScalarValueWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of Object) - Return Await Task.Run(Function() GetScalarValueWithConnection(pSQL, pConnectionId)) - End Function -#End Region - -#Region "ExecuteNonQuery" - Public Function ExecuteNonQueryECM(pSQL As String) As Boolean - Return ExecuteNonQuery(pSQL, Constants.DatabaseType.ECM) - End Function - - Public Async Function ExecuteNonQueryECMAsync(pSQL As String) As Task(Of Boolean) - Return Await Task.Run(Function() ExecuteNonQueryECM(pSQL)) - End Function - - Public Function ExecuteNonQueryIDB(pSQL As String) As Boolean - Return ExecuteNonQuery(pSQL, Constants.DatabaseType.IDB) - End Function - - Public Async Function ExecuteNonQueryIDBAsync(pSQL As String) As Task(Of Boolean) - Return Await Task.Run(Function() ExecuteNonQueryIDB(pSQL)) - End Function - - Public Function ExecuteNonQueryWithConnection(pSQL As String, pConnectionId As Integer) As Boolean - Return ExecuteNonQuery(pSQL, Constants.DatabaseType.None, pConnectionId:=pConnectionId) - End Function - - Public Async Function ExecuteNonQueryWithConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of Boolean) - Return Await Task.Run(Function() ExecuteNonQueryWithConnection(pSQL, pConnectionId)) - End Function -#End Region - - - ''' - ''' Returns a Datatable by trying to fetch a cached version from the service, then querying the database through the service and querying the database directly as fallback. - ''' - ''' Name of the Cached Datatable - ''' Options object - Public Function GetDatatable(pDataTableName As String, pOptions As GetDatatableOptions) As DataTable - Return GetDatatable(pDataTableName, pOptions.FallbackSQL, pOptions.FallbackType, pOptions.FilterExpression, pOptions.SortByColumn, pOptions.ForceFallback, pOptions.ConnectionId) - End Function - - Public Function GetDatatable(pSQL As String, pConnectionId As Integer) As DataTable - Return GetDatatable("FORCE_FALLBACK", pSQL, Constants.DatabaseType.ECM, pSortByColumn:=Nothing, pForceFallback:=False, pConnectionId:=pConnectionId) - End Function - - ''' - ''' Returns a datatable directly from the database. - ''' - ''' Options object - Public Function GetDatatable(pOptions As GetDatatableOptions) As DataTable - Dim oForceFallback = True - Return GetDatatable("FORCE_FALLBACK", pOptions.FallbackSQL, pOptions.FallbackType, pOptions.FilterExpression, pOptions.SortByColumn, oForceFallback, pOptions.ConnectionId) - End Function - - ''' - ''' Returns a Datatable by trying to fetch a cached version from the service, then querying the database through the service and querying the database directly as fallback. - ''' - ''' Name of the Cached Datatable - ''' SQL Command to execute as fallback - ''' Named Database to use for the fallback SQL Command - ''' Filter expression for the cached Datatable - ''' Columns to sort the cached Datatable by - ''' Force the fallback, skipping the service completely - ''' Connection Id to use, references TBDD_CONNECTION - Public Function GetDatatable(pDataTableName As String, pFallbackSQL As String, pFallbackType As Constants.DatabaseType, Optional pFilterExpression As String = "", Optional pSortByColumn As String = "", Optional pForceFallback As Boolean = False, Optional pConnectionId As Integer = 0) As DataTable - Try - Dim oResult As DataTable = Nothing - Dim oTableResult As TableResult = Nothing - - ' If there is no client, we assume there is no service (configured) - If _Client Is Nothing Then - Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId) - End If - - ' If ForceFallback flag is set, we go to database immediately - If pForceFallback Or _ClientConfig.ForceDirectDatabaseAccess Then - Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId) - End If - - ' If the table is not cached, we try going through the service - If Not IsTableCached(pDataTableName) Then - Return GetDatatableFromService(pFallbackSQL, pFallbackType, pConnectionId) - End If - - ' If there is a proper ConnectionId, we try going through the service - If pConnectionId > 0 Then - Return GetDatatableFromService(pFallbackSQL, pFallbackType, pConnectionId) - End If - - Try - oTableResult = _Client.GetDatatableByName(pDataTableName, pFilterExpression, pSortByColumn) - Catch ex As Exception - _Logger.Error(ex) - oTableResult = Nothing - End Try - - If oTableResult Is Nothing OrElse oTableResult.OK = False Then - _Logger.Warn("Datatable [{0}] could not be fetched from AppServer Cache. Falling back to direct Database Access.", pDataTableName) - Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId) - Else - Return oTableResult.Table - End If - - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - - End Try - End Function - - ''' - ''' Returns a Scalar Value by querying the database through the service and querying the database directly as fallback. - ''' - ''' SQL Command to execute as fallback - ''' Named Database to use for the fallback SQL Command - ''' Force the fallback, skipping the service completely - ''' Connection Id to use, references TBDD_CONNECTION - Public Function GetScalarValue(pSQL As String, pDatabaseType As Constants.DatabaseType, Optional pForceFallback As Boolean = False, Optional pConnectionId As Integer = 0) As Object - Try - ' If there is no client, we assume there is no service (configured) - If _Client Is Nothing Then - Return GetScalarValueFromDatabase(pSQL, pDatabaseType, pConnectionId) - End If - - ' If ForceFallback flag is set, we go to database immediately - If pForceFallback Or _ClientConfig.ForceDirectDatabaseAccess Then - Return GetScalarValueFromDatabase(pSQL, pDatabaseType, pConnectionId) - End If - - Return GetScalarValueFromService(pSQL, pDatabaseType, pConnectionId) - - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - - End Try - End Function - - ''' - ''' Returns a Scalar Value by querying the database through the service and querying the database directly as fallback. - ''' - ''' SQL Command to execute as fallback - ''' Named Database to use for the fallback SQL Command - ''' Force the fallback, skipping the service completely - ''' Connection Id to use, references TBDD_CONNECTION - Public Function ExecuteNonQuery(pSQL As String, pDatabaseType As Constants.DatabaseType, Optional pForceFallback As Boolean = False, Optional pConnectionId As Integer = 0) As Boolean - Try - Dim oResult As DataTable = Nothing - Dim oTableResult As TableResult = Nothing - - ' If there is no client, we assume there is no service (configured) - If _Client Is Nothing Then - Return ExecuteNonQueryFromDatabase(pSQL, pDatabaseType, pConnectionId) - End If - - ' If ForceFallback flag is set, we go to database immediately - If pForceFallback Or _ClientConfig.ForceDirectDatabaseAccess Then - Return ExecuteNonQueryFromDatabase(pSQL, pDatabaseType, pConnectionId) - End If - - Return ExecuteNonQueryFromService(pSQL, pDatabaseType, pConnectionId) - - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - - End Try - End Function - - Private Function IsTableCached(pName As String) As Boolean - If _Client Is Nothing Then - Return False - End If - - Return _Client.CachedTables.Contains(pName.ToUpper) - End Function - - Private Function GetDatatableFromService(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As DataTable - Try - Dim oResult As GetDatatableResponse = Nothing - - Select Case DatabaseType - Case Constants.DatabaseType.ECM - oResult = _Client.GetDatatableFromECM(pSQLCommand) - - Case Constants.DatabaseType.IDB - oResult = _Client.GetDatatableFromIDB(pSQLCommand) - - Case Else - Return GetDatatableFromDatabase(pSQLCommand, DatabaseType, pConnectionId) - - End Select - - If oResult Is Nothing Then - Throw New ApplicationException("Unexpected server error ocurred!") - End If - - If oResult.OK = False Then - Throw New ApplicationException(oResult.ErrorMessage) - End If - - Return oResult.Table - - Catch ex As Exception - _Logger.Warn("GetDatatableFromService failed. Falling back to direct database access.") - _Logger.Error(ex) - Return GetDatatableFromDatabase(pSQLCommand, DatabaseType, pConnectionId) - - End Try - End Function - - - Private Function GetDatatableFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As DataTable - Try - Dim oResult As ExecuteNonQueryResponse = Nothing - - Select Case DatabaseType - Case Constants.DatabaseType.ECM - Return _DatabaseECM.GetDatatable(pSQLCommand) - - Case Constants.DatabaseType.IDB - Return _DatabaseIDB.GetDatatable(pSQLCommand) - - Case Else - Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) - If oConnectionString = String.Empty Then - Return _DatabaseECM.GetDatatable(pSQLCommand) - Else - Return _DatabaseECM.GetDatatableWithConnection(pSQLCommand, oConnectionString) - End If - - End Select - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - - End Try - End Function - - Private Function GetScalarValueFromService(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Object - Try - Dim oResult As GetScalarValueResponse = Nothing - - Select Case DatabaseType - Case Constants.DatabaseType.ECM - oResult = _Client.GetScalarValueFromECM(pSQLCommand) - - Case Constants.DatabaseType.IDB - oResult = _Client.GetScalarValueFromIDB(pSQLCommand) - - Case Else - Return GetScalarValueFromDatabase(pSQLCommand, DatabaseType, pConnectionId) - - End Select - - If oResult Is Nothing Then - Throw New ApplicationException("Unexpected server error ocurred!") - End If - - If oResult.OK = False Then - Throw New ApplicationException(oResult.ErrorMessage) - End If - - Return oResult.Scalar - - Catch ex As Exception - _Logger.Warn("GetScalarValueFromService failed. Falling back to direct database access.") - _Logger.Error(ex) - Return GetScalarValueFromDatabase(pSQLCommand, DatabaseType, pConnectionId) - - End Try - End Function - - - Private Function GetScalarValueFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Object - Try - Select Case DatabaseType - Case Constants.DatabaseType.ECM - Return _DatabaseECM.GetScalarValue(pSQLCommand) - - Case Constants.DatabaseType.IDB - Return _DatabaseIDB.GetScalarValue(pSQLCommand) - - Case Else - Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) - If oConnectionString = String.Empty Then - Return _DatabaseECM.GetScalarValue(pSQLCommand) - Else - Return _DatabaseECM.GetScalarValueWithConnection(pSQLCommand, oConnectionString) - End If - End Select - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - - End Try - End Function - - Private Function ExecuteNonQueryFromService(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Boolean - Try - Dim oResult As ExecuteNonQueryResponse = Nothing - - Select Case DatabaseType - Case Constants.DatabaseType.ECM - oResult = _Client.ExecuteNonQueryFromECM(pSQLCommand) - - Case Constants.DatabaseType.IDB - oResult = _Client.ExecuteNonQueryFromIDB(pSQLCommand) - - Case Else - Return ExecuteNonQueryFromDatabase(pSQLCommand, DatabaseType, pConnectionId) - - End Select - - If oResult Is Nothing Then - Throw New ApplicationException("Unexpected server error ocurred!") - End If - - If oResult.OK = False Then - Throw New ApplicationException(oResult.ErrorMessage) - End If - - Return oResult.Result - - Catch ex As Exception - _Logger.Warn("ExecuteNonQueryFromService failed. Falling back to direct database access.") - _Logger.Error(ex) - Return ExecuteNonQueryFromDatabase(pSQLCommand, DatabaseType, pConnectionId) - - End Try - End Function - - Private Function ExecuteNonQueryFromDatabase(pSQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer) As Boolean - Try - Select Case DatabaseType - Case Constants.DatabaseType.ECM - Return _DatabaseECM.ExecuteNonQuery(pSQLCommand) - - Case Constants.DatabaseType.IDB - Return _DatabaseIDB.ExecuteNonQuery(pSQLCommand) - - Case Else - Dim oConnectionString = _DatabaseECM.Get_ConnectionStringforID(pConnectionId) - If oConnectionString = String.Empty Then - Return _DatabaseECM.ExecuteNonQuery(pSQLCommand) - Else - Return _DatabaseECM.ExecuteNonQueryWithConnection(pSQLCommand, oConnectionString) - End If - - End Select - Catch ex As Exception - _Logger.Error(ex) - Return False - - End Try - End Function -End Class - diff --git a/Modules.EDMIAPI/EDMI.API.vbproj b/Modules.EDMIAPI/EDMI.API.vbproj deleted file mode 100644 index 74b1b138..00000000 --- a/Modules.EDMIAPI/EDMI.API.vbproj +++ /dev/null @@ -1,320 +0,0 @@ - - - - - Debug - AnyCPU - {25017513-0D97-49D3-98D7-BA76D9B251B0} - Library - DigitalData.Modules.EDMI.API - DigitalData.Modules.EDMI.API - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.EDMI.API.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.EDMI.API.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Reference.svcmap - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - Designer - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - - Designer - - - Designer - - - Designer - - - - Designer - - - Designer - - - Designer - - - Designer - - - MyApplicationCodeGenerator - Application.Designer.vb - - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - - - {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} - Base - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - - - - - - - - - - WCF Proxy Generator - Reference.vb - - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/EDMIAPI.vbproj b/Modules.EDMIAPI/EDMIAPI.vbproj deleted file mode 100644 index 37518408..00000000 --- a/Modules.EDMIAPI/EDMIAPI.vbproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - AnyCPU - {5B1171DC-FFFE-4813-A20D-786AAE47B320} - Library - DigitalData.Modules.EDMIAPI - DigitalData.Modules.EDMIAPI - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.EDMIAPI.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.EDMIAPI.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.6.8\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Reference.svcmap - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Designer - - - - Designer - - - Designer - - - - Designer - - - Designer - - - Designer - - - Designer - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - - - - - - - - - - WCF Proxy Generator - Reference.vb - - - - \ No newline at end of file diff --git a/Modules.EDMIAPI/Helpers.vb b/Modules.EDMIAPI/Helpers.vb deleted file mode 100644 index 65ce1b6d..00000000 --- a/Modules.EDMIAPI/Helpers.vb +++ /dev/null @@ -1,48 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - - -Public Class Helpers - Private ReadOnly LogConfig As LogConfig - Private ReadOnly Logger As Logger - Private ReadOnly FileEx As Filesystem.File - - Public Sub New(pLogConfig As LogConfig) - LogConfig = pLogConfig - Logger = pLogConfig.GetLogger() - FileEx = New Filesystem.File(pLogConfig) - End Sub - - Public Function GetFileProperties(pFilePath As String, pDateImportedAt As Date) As FileProperties - Try - Using oFileStream As New IO.FileStream(pFilePath, IO.FileMode.Open, IO.FileAccess.Read) - Using oMemoryStream As New IO.MemoryStream() - oFileStream.CopyTo(oMemoryStream) - Dim oContents = oMemoryStream.ToArray() - - Dim oFileInfo As New IO.FileInfo(pFilePath) - Dim oExtension As String = oFileInfo.Extension - - Dim oFileName As String = oFileInfo.Name - Dim oFileCreatedAt As Date = oFileInfo?.CreationTime - Dim oFileModifiedAt As Date = oFileInfo?.LastWriteTime - Dim oFileHash As String = FileEx.GetChecksum(oFileInfo.FullName) - - Return New FileProperties With { - .FileName = oFileInfo.Name, - .FileCreatedAt = oFileCreatedAt, - .FileChangedAt = oFileModifiedAt, - .FileContents = oContents, - .FileImportedAt = pDateImportedAt, - .FileChecksum = oFileHash, - .FileInfoRaw = oFileInfo - } - End Using - End Using - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function -End Class - diff --git a/Modules.EDMIAPI/Modules/BaseMethod.vb b/Modules.EDMIAPI/Modules/BaseMethod.vb deleted file mode 100644 index 09893e6f..00000000 --- a/Modules.EDMIAPI/Modules/BaseMethod.vb +++ /dev/null @@ -1,21 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Namespace Modules - Public Class BaseMethod - Friend ReadOnly LogConfig As LogConfig - Friend ReadOnly Logger As Logger - Friend ReadOnly Channel As IEDMIServiceChannel - Friend ReadOnly FileEx As Filesystem.File - Friend ReadOnly Helpers As Helpers - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - LogConfig = pLogConfig - Logger = pLogConfig.GetLogger() - Channel = pChannel - FileEx = New Filesystem.File(pLogConfig) - Helpers = New Helpers(pLogConfig) - End Sub - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.EDMIAPI/Modules/Globix/ImportFile.vb b/Modules.EDMIAPI/Modules/Globix/ImportFile.vb deleted file mode 100644 index d5f60477..00000000 --- a/Modules.EDMIAPI/Modules/Globix/ImportFile.vb +++ /dev/null @@ -1,61 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Namespace Modules.Globix - Public Class ImportFile - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pFilePath As String, - pProfileId As Integer, - pAttributeValues As List(Of UserAttributeValue), - pObjectStoreName As String, - pObjectKind As String, - pIDBDoctypeId As Long, - pImportOptions As Options.ImportFileOptions) As Task(Of Globix_ImportFileResponse) - Try - ' Set default options - If pImportOptions Is Nothing Then - pImportOptions = New Options.ImportFileOptions() - End If - - ' Check if file exists - If File.Exists(pFilePath) = False Then - Throw New FileNotFoundException("Path does not exist") - End If - - ' Try to load file properties - Dim oFileProperties = Helpers.GetFileProperties(pFilePath, pImportOptions.DateImported) - If oFileProperties Is Nothing Then - Throw New IOException("File could not be read!") - End If - - ' Importing the file now - Dim oFileImportResponse = Await Channel.Globix_ImportFileAsync(New Globix_ImportFileRequest With { - .IDBDoctypeId = pIDBDoctypeId, - .File = oFileProperties, - .KindType = pObjectKind, - .StoreName = pObjectStoreName, - .User = New UserState() With { - .UserName = pImportOptions.Username, - .Language = pImportOptions.Language - }, - .ProfileId = pProfileId, - .AttributeValues = pAttributeValues.ToArray - }) - - Return oFileImportResponse - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - End Class -End Namespace - diff --git a/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb b/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb deleted file mode 100644 index 4fe96ac2..00000000 --- a/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb +++ /dev/null @@ -1,34 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Namespace Modules.IDB - Public Class CheckInFile - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long) - ' Set default options - If pOptions Is Nothing Then - pOptions = New Options.CheckOutInOptions() - End If - - Dim oCheckInFileResponse = Await Channel.CheckInOutFileAsync(New CheckInOutFileRequest With { - .User = New UserState With { - .Language = pOptions.Language, - .UserName = pOptions.Username - }, - .Action = CheckInOutFileAction.CheckIn, - .ObjectId = pObjectId - }) - - If oCheckInFileResponse.OK = False Then - Throw New ApplicationException(oCheckInFileResponse.ErrorMessage) - End If - - Return oCheckInFileResponse.ObjectId - End Function - End Class -End Namespace diff --git a/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb b/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb deleted file mode 100644 index 1980cd73..00000000 --- a/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb +++ /dev/null @@ -1,37 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Namespace Modules.IDB - Public Class CheckOutFile - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pObjectId As Long, Optional pComment As String = "", Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long) - ' Set default options - If pOptions Is Nothing Then - pOptions = New Options.CheckOutInOptions() - End If - - Dim oArgs = New CheckInOutFileRequest With { - .User = New UserState With { - .Language = pOptions.Language, - .UserName = pOptions.Username - }, - .Action = CheckInOutFileAction.CheckOut, - .Comment = pComment, - .ObjectId = pObjectId - } - Dim oCheckOutFileResponse = Await Channel.CheckInOutFileAsync(oArgs) - - If oCheckOutFileResponse.OK = False Then - Throw New ApplicationException(oCheckOutFileResponse.ErrorMessage) - End If - - Return oCheckOutFileResponse.ObjectId - End Function - End Class - -End Namespace diff --git a/Modules.EDMIAPI/Modules/IDB/ImportFile.vb b/Modules.EDMIAPI/Modules/IDB/ImportFile.vb deleted file mode 100644 index b7891e59..00000000 --- a/Modules.EDMIAPI/Modules/IDB/ImportFile.vb +++ /dev/null @@ -1,60 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Namespace Modules.IDB - Public Class ImportFile - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pFilePath As String, - pAttributeValues As List(Of UserAttributeValue), - pObjectStoreName As String, - pObjectKind As String, - pIDBDoctypeId As Long, - pImportOptions As Options.ImportFileOptions) As Task(Of ImportFileResponse) - Try - ' Set default options - If pImportOptions Is Nothing Then - pImportOptions = New Options.ImportFileOptions() - End If - - ' Check if file exists - If File.Exists(pFilePath) = False Then - Throw New FileNotFoundException("Path does not exist") - End If - - ' Try to load file properties - Dim oFileProperties = Helpers.GetFileProperties(pFilePath, pImportOptions.DateImported) - If oFileProperties Is Nothing Then - Throw New IOException("File could not be read!") - End If - - ' Importing the file now - Dim oFileImportResponse = Await Channel.ImportFileAsync(New ImportFileRequest With { - .IDBDoctypeId = pIDBDoctypeId, - .File = oFileProperties, - .KindType = pObjectKind, - .StoreName = pObjectStoreName, - .User = New UserState() With { - .UserName = pImportOptions.Username, - .Language = pImportOptions.Language - }, - .ProfileId = -1, - .AttributeValues = pAttributeValues.ToArray - }) - - Return oFileImportResponse - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - End Class -End Namespace - diff --git a/Modules.EDMIAPI/Modules/IDB/NewFile.vb b/Modules.EDMIAPI/Modules/IDB/NewFile.vb deleted file mode 100644 index 0908415e..00000000 --- a/Modules.EDMIAPI/Modules/IDB/NewFile.vb +++ /dev/null @@ -1,49 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Filesystem - -Namespace Modules.IDB - Public Class NewFile - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pIDBDoctypeId As Long, Optional pOptions As Options.NewFileOptions = Nothing) As Task(Of Long) - Try - ' Set default options - If pOptions Is Nothing Then - pOptions = New Options.NewFileOptions() - End If - - ' Check if file exists - If IO.File.Exists(pFilePath) = False Then - Throw New IO.FileNotFoundException("Path does not exist") - End If - - ' Importing the file now - Dim oFileProperties = Helpers.GetFileProperties(pFilePath, pOptions.DateImported) - Dim oFileImportResponse = Await Channel.NewFileAsync(New NewFileRequest With { - .IDBDoctypeId = pIDBDoctypeId, - .File = oFileProperties, - .KindType = pObjectKind, - .StoreName = pObjectStoreName, - .User = New UserState With { - .Language = pOptions.Language, - .UserName = pOptions.Username - } - }) - - If oFileImportResponse.OK = False Then - Throw New ApplicationException("Could not Import File Contents!") - End If - - Return oFileImportResponse.ObjectId - Catch ex As Exception - Logger.Error(ex) - Return Constants.INVALID_OBEJCT_ID - End Try - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Modules.EDMIAPI/Modules/IDB/SetAttributeValue.vb b/Modules.EDMIAPI/Modules/IDB/SetAttributeValue.vb deleted file mode 100644 index 2504720e..00000000 --- a/Modules.EDMIAPI/Modules/IDB/SetAttributeValue.vb +++ /dev/null @@ -1,38 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.EDMI.API.Options -Imports DigitalData.Modules.Logging - -Namespace Modules.IDB - Public Class SetAttributeValue - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pObjectId As String, pAttributeName As String, pAttributeValue As Object, Optional pOptions As SetAttributeValueOptions = Nothing) As Task(Of Boolean) - Try - Dim oParams As New SetAttributeValueRequest With { - .ObjectId = pObjectId, - .Language = pOptions.Language, - .Who = pOptions.Username, - .AttributeName = pAttributeName, - .AttributeValue = pAttributeValue - } - Dim oResponse As SetAttributeValueResponse = Await Channel.SetAttributeValueAsync(oParams) - - If oResponse.OK Then - Return True - End If - - Logger.Warn("Error while setting Attribute Value: [{0}]", oResponse.ErrorMessage) - Return False - - Catch ex As Exception - Logger.Error(ex) - Return False - - End Try - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Modules.EDMIAPI/Modules/IDB/SetObjectState.vb b/Modules.EDMIAPI/Modules/IDB/SetObjectState.vb deleted file mode 100644 index 63caed95..00000000 --- a/Modules.EDMIAPI/Modules/IDB/SetObjectState.vb +++ /dev/null @@ -1,34 +0,0 @@ - -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.EDMI.API.Options -Imports DigitalData.Modules.Logging - -Namespace Modules.IDB - Public Class SetObjectState - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pObjectId As String, pState As String, Optional pOptions As SetObjectStateOptions = Nothing) As Task(Of Boolean) - Try - - Dim oSql As String = $"EXEC PRIDB_OBJECT_SET_STATE {pObjectId}, '{pState}', '{pOptions.Username}'" - Dim oResult = Await Channel.ExecuteNonQuery_MSSQL_IDBAsync(oSql) - - If oResult.OK Then - Return True - End If - - Logger.Warn("Error while setting Object State: [{0}]", oResult.ErrorMessage) - Return False - - Catch ex As Exception - Logger.Error(ex) - Return False - - End Try - End Function - End Class -End Namespace diff --git a/Modules.EDMIAPI/Modules/IDB/UpdateFile.vb b/Modules.EDMIAPI/Modules/IDB/UpdateFile.vb deleted file mode 100644 index 182578c1..00000000 --- a/Modules.EDMIAPI/Modules/IDB/UpdateFile.vb +++ /dev/null @@ -1,53 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.EDMI.API.Options -Imports DigitalData.Modules.Logging - -Namespace Modules.IDB - Public Class UpdateFile - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pFilePath As String, pObjectId As Long, Optional pOptions As UpdateFileOptions = Nothing) As Task(Of Long) - Try - ' Set default options - If pOptions Is Nothing Then - pOptions = New UpdateFileOptions() - End If - - ' Check if file exists - If IO.File.Exists(pFilePath) = False Then - Throw New IO.FileNotFoundException("Path does not exist") - End If - - ' Importing the file now - Dim oFileProperties = Helpers.GetFileProperties(pFilePath, Date.Now) - - - Dim oUpdateFileResponse = Await Channel.UpdateFileAsync(New UpdateFileRequest With { - .File = oFileProperties, - .ObjectId = pObjectId, - .CreateNewVersion = pOptions.CreateNewFileVersion, - .User = New UserState With { - .Language = pOptions.Language, - .UserName = pOptions.Username - } - }) - - If oUpdateFileResponse.OK = False Then - Throw New ApplicationException("Could not Import File Contents!") - End If - - Return oUpdateFileResponse.ObjectId - - Catch ex As Exception - Logger.Error(ex) - Return Constants.INVALID_OBEJCT_ID - - End Try - End Function - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.EDMIAPI/Modules/ZooFlow/GetFileObject.vb b/Modules.EDMIAPI/Modules/ZooFlow/GetFileObject.vb deleted file mode 100644 index aa9b89cf..00000000 --- a/Modules.EDMIAPI/Modules/ZooFlow/GetFileObject.vb +++ /dev/null @@ -1,48 +0,0 @@ -Imports DigitalData.Modules.EDMI.API.EDMIServiceReference -Imports DigitalData.Modules.Logging - -Namespace Modules.Zooflow - Public Class GetFileObject - Inherits BaseMethod - - Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel) - MyBase.New(pLogConfig, pChannel) - End Sub - - Public Async Function RunAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject) - Try - Dim oParams = New GetFileObjectRequest With { - .ObjectId = pObjectId, - .LoadFileContents = pLoadFileContents - } - Dim oResult = Await Channel.GetFileObjectAsync(oParams) - If oResult.OK Then - Return oResult.FileObject - Else - Return Nothing - End If - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - Public Function Run(pObjectId As Long, pLoadFileContents As Boolean) As FileObject - Try - Dim oParams = New GetFileObjectRequest With { - .ObjectId = pObjectId, - .LoadFileContents = pLoadFileContents - } - Dim oResult = Channel.GetFileObject(oParams) - If oResult.OK Then - Return oResult.FileObject - Else - Return Nothing - End If - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Modules.EDMIAPI/My Project/Application.Designer.vb b/Modules.EDMIAPI/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.EDMIAPI/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.EDMIAPI/My Project/Application.myapp b/Modules.EDMIAPI/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.EDMIAPI/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.EDMIAPI/My Project/AssemblyInfo.vb b/Modules.EDMIAPI/My Project/AssemblyInfo.vb deleted file mode 100644 index e67efe0a..00000000 --- a/Modules.EDMIAPI/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.EDMIAPI/My Project/DataSources/System.Data.DataTable.datasource b/Modules.EDMIAPI/My Project/DataSources/System.Data.DataTable.datasource deleted file mode 100644 index a23fb0d1..00000000 --- a/Modules.EDMIAPI/My Project/DataSources/System.Data.DataTable.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - \ No newline at end of file diff --git a/Modules.EDMIAPI/My Project/Resources.Designer.vb b/Modules.EDMIAPI/My Project/Resources.Designer.vb deleted file mode 100644 index d44fe572..00000000 --- a/Modules.EDMIAPI/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.EDMIAPI.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.EDMIAPI/My Project/Resources.resx b/Modules.EDMIAPI/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.EDMIAPI/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.EDMIAPI/My Project/Settings.Designer.vb b/Modules.EDMIAPI/My Project/Settings.Designer.vb deleted file mode 100644 index 931627f3..00000000 --- a/Modules.EDMIAPI/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.EDMI.API.My.MySettings - Get - Return Global.DigitalData.Modules.EDMI.API.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.EDMIAPI/My Project/Settings.settings b/Modules.EDMIAPI/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.EDMIAPI/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.EDMIAPI/app.config b/Modules.EDMIAPI/app.config deleted file mode 100644 index b35c050d..00000000 --- a/Modules.EDMIAPI/app.config +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules.EDMIAPI/packages.config b/Modules.EDMIAPI/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.EDMIAPI/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.Filesystem/File.vb b/Modules.Filesystem/File.vb deleted file mode 100644 index 30cd5203..00000000 --- a/Modules.Filesystem/File.vb +++ /dev/null @@ -1,487 +0,0 @@ -Imports System.IO -Imports System.Security.Cryptography -Imports System.Text -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Logging - -''' File -''' 0.0.0.1 -''' 11.10.2018 -''' -''' Module that provides variouse File operations -''' -''' -''' NLog, >= 4.5.8 -''' -''' -''' LogConfig, DigitalData.Module.Logging.LogConfig -''' A LogConfig object -''' -''' -''' -''' -''' -''' -''' -Public Class File - Private ReadOnly _Logger As Logger - Private ReadOnly _LogConfig As LogConfig - - Private ReadOnly _invalidFilenameChars As String - Private ReadOnly _invalidPathChars As String - - Private Const REGEX_CLEAN_FILENAME As String = "[\\/:""<>|\b\0\r\n\t]" - Private Const REGEX_CLEAN_PATH As String = "[""<>|\b\0\r\n\t]" - - ' The limit enforced by windows for filenpaths is 260, - ' so we use a slightly smaller number to have some Error margin. - ' - ' Source: https://docs.microsoft.com/de-de/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN#maximum-path-length-limitation - Private Const MAX_FILE_PATH_LENGTH = 250 - - Private Const FILE_NAME_ACCESS_TEST = "accessTest.txt" - - Public Sub New(LogConfig As LogConfig) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - - _invalidFilenameChars = String.Join("", Path.GetInvalidFileNameChars()) - _invalidPathChars = String.Join("", Path.GetInvalidPathChars()) - End Sub - - Public Function GetCleanFilename(FileName As String) As String - _Logger.Debug("Filename before cleaning: [{0}]", FileName) - - Dim oCleanName As String = FileName - oCleanName = Regex.Replace(oCleanName, _invalidFilenameChars, String.Empty) - oCleanName = Regex.Replace(oCleanName, REGEX_CLEAN_FILENAME, String.Empty, RegexOptions.Singleline) - oCleanName = Regex.Replace(oCleanName, "\s{2,}", " ") - oCleanName = Regex.Replace(oCleanName, "\.{2,}", ".") - - _Logger.Debug("Filename after cleaning: [{0}]", oCleanName) - - Return oCleanName - End Function - - Public Function GetCleanPath(FilePath As String) As String - _Logger.Debug("Path before cleaning: [{0}]", FilePath) - - Dim oCleanName As String = FilePath - oCleanName = Regex.Replace(oCleanName, _invalidPathChars, String.Empty) - oCleanName = Regex.Replace(oCleanName, REGEX_CLEAN_PATH, String.Empty, RegexOptions.Singleline) - - _Logger.Debug("Path after cleaning: [{0}]", oCleanName) - - Return oCleanName - End Function - - ''' - ''' Reads the file at `FilePath` and computes a SHA256 Hash from its contents - ''' - ''' - ''' - Public Function GetChecksum(FilePath As String) As String - Try - Using oFileStream = IO.File.OpenRead(FilePath) - Using oStream As New BufferedStream(oFileStream, 1200000) - Dim oChecksum() As Byte = SHA256.Create.ComputeHash(oStream) - Return FormatHash(oChecksum) - End Using - End Using - Catch ex As Exception - _Logger.Error(ex) - Return Nothing - End Try - End Function - - Public Function GetChecksumFromString(pStringToCheck As String) As String - Dim oBytes() As Byte = Encoding.UTF8.GetBytes(pStringToCheck) - Dim oChecksum() As Byte = SHA256.Create.ComputeHash(oBytes) - Return FormatHash(oChecksum) - End Function - - Private Function FormatHash(pChecksum) - Return BitConverter. - ToString(pChecksum). - Replace("-", String.Empty) - End Function - - ''' - ''' Adds file version string to given filename `Destination` if that file already exists. - ''' - ''' - ''' - Public Function GetVersionedFilename(Destination As String) As String - Try - Dim oFileName As String = Destination - Dim oFinalFileName = oFileName - - Dim oDestinationDir = Path.GetDirectoryName(oFileName) - Dim oExtension = Path.GetExtension(oFileName) - - Dim oVersionSeparator As Char = "~"c - - ' Split Filename without extension at version separator to: - ' - Check if file is already versioned - ' - Get the file version of an already versioned file - ' - ' Example: - ' test1.pdf --> test1 --> ['test1'] --> no fileversion - ' test1~2.pdf --> test1~2 --> ['test1', '2'] --> version 2 - ' test1~12345~2.pdf --> test1~12345~2 --> ['test1', '12345', '2'] --> still version 2 - 'Dim oFileNameWithoutExtension = Path.GetFileNameWithoutExtension(oFileName) - 'Dim oSplitFilename = oFileNameWithoutExtension.Split(oVersionSeparator).ToList() - - ' if file is already versioned, extract file version - ' else just use the filename and set version to 1 - 'If oSplitFilename.Count > 1 Then - ' Dim oVersion As Integer = 1 - ' Try - ' oVersion = Integer.Parse(oSplitFilename.Last()) - ' oFileNameWithoutExtension = String.Join("", oSplitFilename.Take(oSplitFilename.Count - 1)) - ' Catch ex As Exception - ' ' oFilenameWithoutExtension does NOT change - ' oFileNameWithoutExtension = oFileNameWithoutExtension - ' Finally - ' oFileVersion = oVersion - ' End Try - 'Else - ' oFileVersion = 1 - 'End If - - Dim oFileNameWithoutExtension = Path.GetFileNameWithoutExtension(oFileName) - Dim oSplitResult = GetVersionedString(oFileNameWithoutExtension, oVersionSeparator) - - oFileNameWithoutExtension = oSplitResult.Item1 - Dim oFileVersion = oSplitResult.Item2 - - ' Shorten the filename (only filename, without extension or version) - ' by cutting the length in half. This should work no matter how long the path and/or filename are. - If oFileName.Length > MAX_FILE_PATH_LENGTH Then - _Logger.Info("Filename is too long. Filename will be cut to prevent further errors.") - _Logger.Info("Original Filename is: {0}", oFileNameWithoutExtension) - Dim oNewLength As Integer = Math.Round(oFileNameWithoutExtension.Length / 2) - Dim oNewFileNameWithoutExtension = oFileNameWithoutExtension.Substring(0, oNewLength) - _Logger.Info("New Filename will be: {0}", oNewFileNameWithoutExtension) - - oFileNameWithoutExtension = oNewFileNameWithoutExtension - End If - - ' while file exists, increment version - Do - oFinalFileName = Path.Combine(oDestinationDir, GetFilenameWithVersion(oFileNameWithoutExtension, oVersionSeparator, oFileVersion, oExtension)) - _Logger.Debug("Intermediate Filename is {0}", oFinalFileName) - _Logger.Debug("File version: {0}", oFileVersion) - oFileVersion += 1 - Loop While (IO.File.Exists(oFinalFileName)) - - _Logger.Debug("Final Filename is {0}", oFinalFileName) - - Return oFinalFileName - Catch ex As Exception - _Logger.Warn("Filename {0} could not be versioned. Original filename will be returned!", Destination) - _Logger.Error(ex) - Return Destination - End Try - End Function - - ''' - ''' Split String at version separator to: - ''' check if string is already versioned, - ''' get the string version of an already versioned string - ''' - ''' - ''' Examples: - ''' test1.pdf --> test1 --> ['test1'] --> no fileversion - ''' test1~2.pdf --> test1~2 --> ['test1', '2'] --> version 2 - ''' test1~12345~2.pdf --> test1~12345~2 --> ['test1', '12345', '2'] --> still version 2 - ''' somestring~3 --> somestring~3 --> ['somestring', '3'] --> version 3 - ''' - ''' The string to versioned - ''' The character to split at - ''' Tuple of string and version - Public Function GetVersionedString(pString As String, pSeparator As Char) As Tuple(Of String, Integer) - Dim oSplitString = pString.Split(pSeparator).ToList() - Dim oStringVersion As Integer - - ' if string is already versioned, extract string version - ' else just use the string and set version to 1 - If oSplitString.Count > 1 Then - Dim oVersion As Integer = 1 - Try - oVersion = Integer.Parse(oSplitString.Last()) - pString = String.Join("", oSplitString.Take(oSplitString.Count - 1)) - Catch ex As Exception - ' pString does NOT change - pString = pString - Finally - oStringVersion = oVersion - End Try - Else - oStringVersion = 1 - End If - - Return New Tuple(Of String, Integer)(pString, oStringVersion) - End Function - - Public Function GetAppDataPath(CompanyName As String, ProductName As String) - Dim oLocalAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) - Return Path.Combine(oLocalAppData, CompanyName, ProductName) - End Function - - Private Function GetFilenameWithVersion(FileNameWithoutExtension As String, VersionSeparator As Char, FileVersion As Integer, Extension As String) As String - If FileVersion <= 1 Then - Return $"{FileNameWithoutExtension}{Extension}" - Else - Return $"{FileNameWithoutExtension}{VersionSeparator}{FileVersion}{Extension}" - End If - End Function - - ''' - ''' Removes files in a directory filtered by filename, extension and last write date - ''' - ''' The directory in which files will be deleted - ''' Only delete files which are older than x days. Must be between 0 and 1000 days. - ''' A filename filter which will be checked - ''' A file extension which will be checked - ''' Should the function continue with deleting when a file could not be deleted? - ''' True if all files were deleted or if no files were deleted, otherwise false - Public Function RemoveFiles(Path As String, FileKeepTime As Integer, FileBaseName As String, Optional FileExtension As String = "log", Optional ContinueOnError As Boolean = True) As Boolean - If Not TestPathIsDirectory(Path) Then - Throw New ArgumentException($"Path {Path} is not a directory!") - End If - - If Not Directory.Exists(Path) Then - Throw New DirectoryNotFoundException($"Path {Path} does not exist!") - End If - - If FileKeepTime < 0 Or FileKeepTime > 1000 Then - Throw New ArgumentOutOfRangeException("FileKeepTime must be an integer between 0 and 1000!") - End If - - Dim oUnableToDeleteCounter = 0 - Dim oDirectory As New DirectoryInfo(Path) - Dim oDateLimit As DateTime = DateTime.Now.AddDays(FileKeepTime) - Dim oFiles As List(Of FileInfo) = oDirectory. - EnumerateFiles($"*{FileBaseName}*"). - Where(Function(oFileInfo As FileInfo) - Return oFileInfo.Extension = FileExtension And oFileInfo.LastWriteTime < oDateLimit - End Function). - ToList() - - If oFiles.Count = 0 Then - _Logger.Debug("No files found that match the criterias.") - Return True - End If - - _Logger.Debug("Deleting old files (Found {0}).", oFiles.Count) - - For Each oFile As FileInfo In oFiles - Try - oFile.Delete() - Catch ex As Exception - If ContinueOnError = False Then - _Logger.Warn("Deleting files was aborted at file {0}.", oFile.FullName) - Return False - End If - oUnableToDeleteCounter = oUnableToDeleteCounter + 1 - _Logger.Warn("File {0} could not be deleted!") - End Try - Next - - If oUnableToDeleteCounter > 0 Then - _Logger.Debug("Old files partially removed. {0} files could not be removed.", oUnableToDeleteCounter) - Else - _Logger.Debug("Old files removed.") - End If - - Return True - End Function - - - Public Sub MoveTo(FilePath As String, Directory As String) - Dim oFileInfo As New FileInfo(FilePath) - IO.File.Move(FilePath, Path.Combine(Directory, oFileInfo.Name)) - End Sub - - - Public Sub MoveTo(FilePath As String, NewFileName As String, Directory As String) - IO.File.Move(FilePath, Path.Combine(Directory, NewFileName)) - End Sub - - ''' - ''' Copied from https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-copy-directories - ''' - ''' - ''' - ''' - Public Sub CopyDirectory(ByVal SourceDirName As String, ByVal DestDirName As String, ByVal CopySubDirs As Boolean) - Dim oDirectory As DirectoryInfo = New DirectoryInfo(SourceDirName) - - If Not oDirectory.Exists Then - Throw New DirectoryNotFoundException("Source directory does not exist or could not be found: " & SourceDirName) - End If - - Dim oDirectories As DirectoryInfo() = oDirectory.GetDirectories() - Directory.CreateDirectory(DestDirName) - Dim oFiles As FileInfo() = oDirectory.GetFiles() - - For Each oFile As FileInfo In oFiles - Dim tempPath As String = Path.Combine(DestDirName, oFile.Name) - oFile.CopyTo(tempPath, False) - Next - - If CopySubDirs Then - For Each oSubDirectory As DirectoryInfo In oDirectories - Dim oTempPath As String = Path.Combine(DestDirName, oSubDirectory.Name) - CopyDirectory(oSubDirectory.FullName, oTempPath, CopySubDirs) - Next - End If - End Sub - - ''' - ''' Tries to create a directory and returns its path. - ''' Returns a temp path if `DirectoryPath` can not be created or written to. - ''' - ''' The directory to create - ''' Should a write access test be performed? - ''' The used path - Public Function CreateDirectory(DirectoryPath As String, Optional TestWriteAccess As Boolean = True) As String - Dim oFinalPath As String - If Directory.Exists(DirectoryPath) Then - _Logger.Debug("Directory {0} already exists. Skipping.", DirectoryPath) - oFinalPath = DirectoryPath - Else - Try - Directory.CreateDirectory(DirectoryPath) - oFinalPath = DirectoryPath - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Directory {0} could not be created. Temp path will be used instead.", DirectoryPath) - oFinalPath = Path.GetTempPath() - End Try - End If - - If TestWriteAccess AndAlso Not TestPathIsWritable(DirectoryPath) Then - _Logger.Warn("Directory {0} is not writable. Temp path will be used instead.", DirectoryPath) - oFinalPath = Path.GetTempPath() - Else - oFinalPath = DirectoryPath - End If - - _Logger.Debug("Using path {0}", oFinalPath) - - Return oFinalPath - End Function - - Public Function TestPathIsWritable(DirectoryPath As String) As Boolean - Try - Dim fileAccessPath = Path.Combine(DirectoryPath, FILE_NAME_ACCESS_TEST) - Using fs As FileStream = IO.File.Create(fileAccessPath) - fs.WriteByte(0) - End Using - - IO.File.Delete(fileAccessPath) - Return True - Catch ex As Exception - Return False - End Try - End Function - - ''' - ''' Checks if a file is locked, ie. in use by another process. - ''' - ''' - ''' https://docs.microsoft.com/en-us/dotnet/standard/io/handling-io-errors - ''' https://stackoverflow.com/questions/876473/is-there-a-way-to-check-if-a-file-is-in-use - ''' - Public Function TestFileIsLocked(pFilePath As String) As Boolean - Try - Using stream As FileStream = IO.File.Open(pFilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None) - stream.Close() - End Using - Catch ex As Exception When ((ex.HResult And &HFFFF) = 32) - Return True - Catch ex As Exception - Return True - End Try - - Return False - End Function - - Public Function TestPathIsDirectory(Path As String) As Boolean - If Not Directory.Exists(Path) Then - Return False - End If - - Dim oIsDirectory As Boolean = (System.IO.File.GetAttributes(Path) And FileAttributes.Directory) = FileAttributes.Directory - Return oIsDirectory - End Function - - Public Function GetDateDirectory(pBaseDirectory As String, pDate As Date) As String - Dim oDateDirectory = GetDateString(pDate) - Dim oFinalDirectory As String = IO.Path.Combine(pBaseDirectory, oDateDirectory) - Return oFinalDirectory - End Function - - Public Function GetDateDirectory(pBaseDirectory As String) As String - Return GetDateDirectory(pBaseDirectory, Now) - End Function - - Public Function CreateDateDirectory(pBaseDirectory As String, pDate As Date) As String - Dim oDateDirectory = GetDateString(pDate) - Dim oFinalDirectory As String = IO.Path.Combine(pBaseDirectory, oDateDirectory) - - If IO.Directory.Exists(oFinalDirectory) = False Then - _Logger.Debug("Path does not exist, creating: [{0}]", oFinalDirectory) - Try - Directory.CreateDirectory(oFinalDirectory) - _Logger.Debug("Created folder [{0}]", oFinalDirectory) - Catch ex As Exception - _Logger.Warn("Final path [{0}] could not be created!", oFinalDirectory) - _Logger.Error(ex) - End Try - End If - - Return oFinalDirectory - End Function - - Public Function CreateDateDirectory(pBaseDirectory As String) As String - Return CreateDateDirectory(pBaseDirectory, Now) - End Function - - Public Function GetDateString() As String - Return $"{Now:yyyy\\MM\\dd}" - End Function - - Public Function GetDateString(pDate As Date) As String - Return $"{pDate:yyyy\\MM\\dd}" - End Function - - Public Function GetDateTimeString() As String - Return $"{Now:yyyy-MM-dd_hh-mm-ffff}" - End Function - - Public Function GetDateTimeString(pDate As Date) As String - Return $"{pDate:yyyy-MM-dd_hh-mm-ffff}" - End Function - - Public Function GetFilenameWithSuffix(pFilePath As String, pSuffix As String) - Dim oFileInfo = New IO.FileInfo(pFilePath) - Return GetFilenameWithSuffix(IO.Path.GetFileNameWithoutExtension(pFilePath), pSuffix, oFileInfo.Extension.Substring(1)) - End Function - - Public Function GetFilenameWithSuffix(pBaseString As String, pSuffix As String, pExtension As String) - Return $"{pBaseString}-{pSuffix}.{pExtension}" - End Function - - Public Function GetFilenameWithPrefix(pFilePath As String, pPrefix As String) - Dim oFileInfo = New IO.FileInfo(pFilePath) - Return GetFilenameWithSuffix(IO.Path.GetFileNameWithoutExtension(pFilePath), pPrefix, oFileInfo.Extension.Substring(1)) - End Function - - Public Function GetFilenameWithPrefix(pBaseString As String, pPrefix As String, pExtension As String) - Return $"{pPrefix}-{pBaseString}.{pExtension}" - End Function - -End Class diff --git a/Modules.Filesystem/FileContainer/DocumentObject.vb b/Modules.Filesystem/FileContainer/DocumentObject.vb deleted file mode 100644 index c9da13f0..00000000 --- a/Modules.Filesystem/FileContainer/DocumentObject.vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports System.Runtime.Serialization - - -Public Class DocumentObject - - - Public ReadOnly FileName As String - - Public ReadOnly ContainerId As String - - Public ReadOnly DocumentId As Int64 - - Public Sub New(ContainerId As String, DocumentId As Int64, FileName As String) - Me.ContainerId = ContainerId - Me.DocumentId = DocumentId - Me.FileName = FileName - End Sub -End Class diff --git a/Modules.Filesystem/FileContainer/FileContainer.vb b/Modules.Filesystem/FileContainer/FileContainer.vb deleted file mode 100644 index 54d6ce4a..00000000 --- a/Modules.Filesystem/FileContainer/FileContainer.vb +++ /dev/null @@ -1,193 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Encryption -Imports ProtoBuf - -''' FileContainer -''' 0.0.0.2 -''' 21.11.2018 -''' -''' File Container for securely saving files -''' -''' -''' NLog, >= 4.5.8 -''' -''' -''' LogConfig, DigitalData.Module.Logging.LogConfig -''' A LogConfig object -''' Password, String -''' The Password to Encrypt -''' Path, String -''' The Path to save/load the container -''' -''' -''' dim oContainer = Container.Create(logConfig, "pass", "E:\some.container") -''' dim oContainer = Container.Load(logConfig, "pass", "E:\some.container") -''' -''' dim oContainer = new Container(logConfig, "pass", "E:\some.container") -''' oContainer.Save() -''' -''' dim oContainer = new Container(logConfig, "pass", "E:\some.container") -''' oContainer.Contents = oSomeData -''' oContainer.Save() -''' -''' dim oContainer = new Container(logConfig, "pass", "E:\some.container") -''' oContainer.Load() -''' dim oContents = oContainer.Contents -''' -''' dim oContainer = new Container(logConfig, "pass", "E:\some.container") -''' oContainer.Load() -''' oContainer.Contents = oSomeOtherData -''' oContainer.Save() -''' oContainer.SaveAs("E:\some2.container") -''' -Public Class FileContainer - Private _crypto As Encryption.Encryption - Private _compression As Compression - Private _inner As FileContainerInner - Private _logger As Logger - Private _logConfig As LogConfig - Private _path As String - - Public Property Contents As Byte() - Get - Return _inner.Contents - End Get - Set(value As Byte()) - _inner.Contents = value - End Set - End Property - Public ReadOnly Property ContainerId As String - Get - Return _inner.FileId - End Get - End Property - Public ReadOnly Property CreatedAt As String - Get - Return _inner.CreatedAt - End Get - End Property - Public ReadOnly Property UpdatedAt As String - Get - Return _inner.UpdatedAt - End Get - End Property - - Public Shared Function Create(LogConfig As LogConfig, Password As String) As FileContainer - Dim oContainer = New FileContainer(LogConfig, Password) - Return oContainer - End Function - - Public Shared Function Load(LogConfig As LogConfig, Password As String, Path As String) As FileContainer - Dim oContainer = New FileContainer(LogConfig, Password, Path) - oContainer.Load() - Return oContainer - End Function - - Public Sub New(LogConfig As LogConfig, Password As String) - _logger = LogConfig.GetLogger() - _crypto = New Encryption.Encryption(LogConfig, Password) - _compression = New Compression(LogConfig) - _inner = New FileContainerInner() - End Sub - - Public Sub New(LogConfig As LogConfig, Password As String, Path As String) - MyClass.New(LogConfig, Password) - _path = Path - End Sub - - Public Sub SetFile(Contents As Byte(), FileName As String) - _inner.Contents = Contents - _inner.UpdatedAt = Date.Now - _inner.FileName = FileName - End Sub - - Public Function GetFile() As FileContainerInner - Return _inner - End Function - - Public Sub Save() - If IsNothing(_path) Then - Throw New ArgumentException("Path not set") - End If - - SaveAs(_path) - End Sub - - Public Sub SaveAs(Path As String) - Try - WriteBytesToFile(TransformToBytes(_inner), Path) - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Sub - - Public Sub Load() - If IsNothing(_path) Then - Throw New ArgumentException("Path not set") - End If - - LoadFrom(_path) - End Sub - - Public Sub LoadFrom(Path As String) - Try - _inner = TransformToObject(ReadBytesFromFile(_path)) - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Sub - - Private Function TransformToBytes([Object] As FileContainerInner) As Byte() - Dim oBytes = Serialize([Object]) - Dim oCompressed = _compression.Compress(oBytes) - Dim oEncrypted = _crypto.Encrypt(oCompressed) - Return oEncrypted - End Function - - Private Function TransformToObject(Bytes As Byte()) As FileContainerInner - Dim oDecrypted = _crypto.Decrypt(Bytes) - Dim oDecompressed = _compression.Decompress(oDecrypted) - Dim oObject = Deserialize(oDecompressed) - Return oObject - End Function - - Private Function Serialize(InnerData As FileContainerInner) As Byte() - Dim oBinaryData As Byte() - - Using oStream As New MemoryStream - Serializer.Serialize(oStream, InnerData) - oBinaryData = oStream.ToArray() - End Using - - Return oBinaryData - End Function - - Private Function Deserialize(InnerData As Byte()) As FileContainerInner - Dim oObject As FileContainerInner - - Using oStream As New MemoryStream(InnerData) - oObject = Serializer.Deserialize(Of FileContainerInner)(oStream) - End Using - - Return oObject - End Function - - Private Sub WriteBytesToFile(Data As Byte(), FilePath As String) - Using oSourceStream As New FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None) - oSourceStream.Write(Data, 0, Data.Length) - oSourceStream.Flush() - End Using - End Sub - - Private Function ReadBytesFromFile(FilePath As String) As Byte() - Using oFileStream = New FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096) - Dim oBuffer As Byte() = New Byte(oFileStream.Length - 1) {} - oFileStream.Read(oBuffer, 0, oFileStream.Length) - oFileStream.Close() - Return oBuffer - End Using - End Function -End Class diff --git a/Modules.Filesystem/FileContainer/FileContainerInner.vb b/Modules.Filesystem/FileContainer/FileContainerInner.vb deleted file mode 100644 index fc787ce0..00000000 --- a/Modules.Filesystem/FileContainer/FileContainerInner.vb +++ /dev/null @@ -1,23 +0,0 @@ -Imports ProtoBuf - - - -Public Class FileContainerInner - - Public FileId As String - - Public Contents As Byte() - - Public CreatedAt As DateTime - - Public UpdatedAt As DateTime - - Public FileName As String - - Public Sub New() - FileId = Guid.NewGuid().ToString - CreatedAt = Date.Now - UpdatedAt = Date.Now - End Sub - -End Class \ No newline at end of file diff --git a/Modules.Filesystem/FileWatcher/FileWatcher.vb b/Modules.Filesystem/FileWatcher/FileWatcher.vb deleted file mode 100644 index 6f82047a..00000000 --- a/Modules.Filesystem/FileWatcher/FileWatcher.vb +++ /dev/null @@ -1,132 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.Filesystem -Imports DigitalData.Modules.Filesystem.FileWatcherFilters -Imports DigitalData.Modules.Logging - - -Public Class FileWatcher - ' Internals - Private ReadOnly _Logger As Logger - Private ReadOnly _Watchers As List(Of FileSystemWatcher) - Private ReadOnly _Files As Dictionary(Of String, FileWatcherProperties) - Private ReadOnly _Filters As List(Of BaseFileFilter) - - ' Options - Private _Path As String - - ' Public Events - Public Event FileSaved(ByVal FullName As String, ByVal IsSpecial As Boolean) - - Public Sub New(LogConfig As LogConfig, Path As String, Optional Filters As List(Of BaseFileFilter) = Nothing) - _Logger = LogConfig.GetLogger() - _Files = New Dictionary(Of String, FileWatcherProperties) - _Watchers = New List(Of FileSystemWatcher) - _Filters = IIf(IsNothing(Filters), GetDefaultFilters(), Filters) - _Path = Path - - For Each oFilePath In Directory.EnumerateFiles(_Path) - Try - If IO.File.Exists(oFilePath) Then - _Files.Add(oFilePath, New FileWatcherProperties With { - .CreatedAt = DateTime.Now, - .ChangedAt = Nothing - }) - End If - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("File {0} cannot be watched!") - End Try - Next - End Sub - - Public Sub Add(Filter As String) - _Watchers.Add(CreateWatcher(Filter)) - End Sub - - Public Sub Start() - For Each oWatcher In _Watchers - oWatcher.EnableRaisingEvents = True - Next - End Sub - - Public Sub [Stop]() - For Each oWatcher In _Watchers - If Not IsNothing(oWatcher) Then - oWatcher.EnableRaisingEvents = False - oWatcher.Dispose() - End If - Next - End Sub - - Private Function GetDefaultFilters() - Return New List(Of BaseFileFilter) From { - New TempFileFilter, - New OfficeFileFilter - } - End Function - - Private Function CreateWatcher(Filter As String) - Dim oWatcher = New FileSystemWatcher() With { - .Path = _Path, - .Filter = Filter, - .NotifyFilter = NotifyFilters.LastAccess _ - Or NotifyFilters.LastWrite _ - Or NotifyFilters.FileName _ - Or NotifyFilters.Size _ - Or NotifyFilters.FileName _ - Or NotifyFilters.Attributes - } - - AddHandler oWatcher.Created, AddressOf HandleFileCreated - AddHandler oWatcher.Changed, AddressOf HandleFileChanged - AddHandler oWatcher.Deleted, AddressOf HandleFileDeleted - AddHandler oWatcher.Renamed, AddressOf HandleFileRenamed - - Return oWatcher - End Function - - Private Sub HandleFileCreated(sender As Object, e As FileSystemEventArgs) - _Files.Add(e.FullPath, New FileWatcherProperties()) - _Logger.Debug("[Created] " & e.FullPath) - End Sub - - ''' - ''' This may fire twice for a single save operation, - ''' see: https://blogs.msdn.microsoft.com/oldnewthing/20140507-00/?p=1053/ - ''' - Private Sub HandleFileChanged(sender As Object, e As FileSystemEventArgs) - _Files.Item(e.FullPath).ChangedAt = DateTime.Now - _Logger.Debug("[Changed] " & e.FullPath) - - Dim oShouldRaiseSave As Boolean = Not _Filters.Any(Function(oFilter) - Return oFilter.ShouldFilter(e) - End Function) - - If oShouldRaiseSave Then - RaiseEvent FileSaved(e.FullPath, False) - End If - End Sub - Private Sub HandleFileDeleted(sender As Object, e As FileSystemEventArgs) - _Files.Remove(e.FullPath) - _Logger.Debug("[Removed] " & e.FullPath) - End Sub - - Private Sub HandleFileRenamed(sender As Object, e As RenamedEventArgs) - Dim oProperties = _Files.Item(e.OldFullPath) - _Files.Remove(e.OldFullPath) - _Files.Add(e.FullPath, oProperties) - ' Soll eine umbenannte datei als NEU gelten? - - Dim oShouldRaiseSave = _Filters.Any(Function(oFilter) - Return oFilter.ShouldRaiseSave(e) - End Function) - - If oShouldRaiseSave Then - RaiseEvent FileSaved(e.OldFullPath, True) - End If - - _Logger.Debug("[Renamed] {0} --> {1}", e.OldFullPath, e.FullPath) - End Sub - - -End Class diff --git a/Modules.Filesystem/FileWatcher/FileWatcherFilters.vb b/Modules.Filesystem/FileWatcher/FileWatcherFilters.vb deleted file mode 100644 index 84f70b62..00000000 --- a/Modules.Filesystem/FileWatcher/FileWatcherFilters.vb +++ /dev/null @@ -1,61 +0,0 @@ -Imports System.IO - -''' -''' Built-in filters for FileWatcher that are useful for correctly detecting changes on Office documents (currently Office 2016) -''' -Public Class FileWatcherFilters - ''' - ''' Base Filter that all filters must inherit from - ''' Provides two functions that may be overridden and some useful file extension lists - ''' - Public MustInherit Class BaseFileFilter - Public TempFiles As New List(Of String) From {".tmp", ""} - - Public Overridable Function ShouldFilter(e As FileSystemEventArgs) As Boolean - Return False - End Function - Public Overridable Function ShouldRaiseSave(e As RenamedEventArgs) As Boolean - Return False - End Function - End Class - - ''' - ''' Simple Filter that filters changes made on temporary files - ''' - Public Class TempFileFilter - Inherits BaseFileFilter - - Public Overrides Function ShouldFilter(e As FileSystemEventArgs) As Boolean - Dim oFileInfo As New FileInfo(e.FullPath) - Return TempFiles.Contains(oFileInfo.Extension) - End Function - End Class - - ''' - ''' Filter to detect changes on Office files - ''' - Public Class OfficeFileFilter - Inherits BaseFileFilter - - Public OfficeFiles As New List(Of String) From {".docx", ".pptx", ".xlsx"} - - Public Overrides Function ShouldFilter(e As FileSystemEventArgs) As Boolean - Dim oFileInfo As New FileInfo(e.FullPath) - Return OfficeFiles.Contains(oFileInfo.Extension) And oFileInfo.Name.StartsWith("~") - End Function - - Public Overrides Function ShouldRaiseSave(e As RenamedEventArgs) As Boolean - Dim oIsTransform = OfficeFiles.Any(Function(Extension As String) - Return e.OldName.EndsWith(Extension) - End Function) - - ' Check if it is renamed to a temp file - Dim oIsTempFile = TempFiles.Any(Function(Extension) - Return e.Name.EndsWith(Extension) - End Function) - - - Return oIsTransform And oIsTempFile - End Function - End Class -End Class diff --git a/Modules.Filesystem/FileWatcher/FileWatcherProperties.vb b/Modules.Filesystem/FileWatcher/FileWatcherProperties.vb deleted file mode 100644 index 5eadecbe..00000000 --- a/Modules.Filesystem/FileWatcher/FileWatcherProperties.vb +++ /dev/null @@ -1,10 +0,0 @@ -Public Class FileWatcherProperties - Public Property CreatedAt As DateTime - Public Property ChangedAt As DateTime - Public ReadOnly Property HasChanged As Boolean - Public Sub New() - CreatedAt = DateTime.Now - ChangedAt = Nothing - HasChanged = False - End Sub -End Class diff --git a/Modules.Filesystem/Filesystem.vbproj b/Modules.Filesystem/Filesystem.vbproj deleted file mode 100644 index d8a2a9da..00000000 --- a/Modules.Filesystem/Filesystem.vbproj +++ /dev/null @@ -1,132 +0,0 @@ - - - - - Debug - AnyCPU - {991D0231-4623-496D-8BD0-9CA906029CBC} - Library - DigitalData.Modules.Filesystem - DigitalData.Modules.Filesystem - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Filesystem.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Filesystem.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - ..\packages\protobuf-net.2.4.0\lib\net40\protobuf-net.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {8a8f20fc-c46e-41ac-bee7-218366cfff99} - Encryption - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/Modules.Filesystem/My Project/Application.Designer.vb b/Modules.Filesystem/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Filesystem/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Filesystem/My Project/Application.myapp b/Modules.Filesystem/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Filesystem/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Filesystem/My Project/AssemblyInfo.vb b/Modules.Filesystem/My Project/AssemblyInfo.vb deleted file mode 100644 index 15366762..00000000 --- a/Modules.Filesystem/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Filesystem/My Project/Resources.Designer.vb b/Modules.Filesystem/My Project/Resources.Designer.vb deleted file mode 100644 index 97935ddf..00000000 --- a/Modules.Filesystem/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Filesystem.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Filesystem/My Project/Resources.resx b/Modules.Filesystem/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Filesystem/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Filesystem/My Project/Settings.Designer.vb b/Modules.Filesystem/My Project/Settings.Designer.vb deleted file mode 100644 index 150844cf..00000000 --- a/Modules.Filesystem/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Filesystem.My.MySettings - Get - Return Global.DigitalData.Modules.Filesystem.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Filesystem/My Project/Settings.settings b/Modules.Filesystem/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Filesystem/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Filesystem/packages.config b/Modules.Filesystem/packages.config deleted file mode 100644 index 4841cbb8..00000000 --- a/Modules.Filesystem/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Modules.Interfaces/ActiveDirectoryInterface.vb b/Modules.Interfaces/ActiveDirectoryInterface.vb deleted file mode 100644 index d3617f4e..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface.vb +++ /dev/null @@ -1,315 +0,0 @@ -Imports System.DirectoryServices -Imports System.DirectoryServices.AccountManagement -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging - -Public Class ActiveDirectoryInterface - Private _logConfig As LogConfig - Private _logger As Logger - - Private ReadOnly _rootPath As String - - Private _rootNode As DirectoryEntry - - Private Const SEARCH_LIMIT = 50000 - - Private Const SAMACCOUNTNAME = "samaccountname" - Private Const OBJECTCLASS = "objectClass" - Private Const CN = "cn" - Private Const DESCRIPTION = "description" - Private Const DISINGUISHEDNAME = "distinguishedName" - Private Const NAME = "name" - Private Const OBJECTCATEGORY = "objectCategory" - - Public Const DEFAULT_USER_FILTER = "(&(objectClass=user)(samAccountName=@SAMACCOUNTNAME)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))" - Public Const DEFAULT_GROUP_FILTER = "(&(objectClass=group) (samAccountName=*))" - - Public Sub New(LogConfig As LogConfig, Optional RootPath As String = Nothing) - _logConfig = LogConfig - _logger = _logConfig.GetLogger() - - If RootPath Is Nothing Then - _rootPath = $"LDAP://{Environment.UserDomainName}" - Else - _rootPath = RootPath - End If - _logger.Info("Using RootPath {0}", _rootPath) - End Sub - - Public Function SyncUsersForGroup(GroupName As String, Firebird As Firebird, MSSQL As MSSQLServer) As List(Of ADUser) - Try - Return SyncUsersForGroup(GroupName, New List(Of AttributeMapping), Firebird, MSSQL) - Catch ex As Exception - _logger.Error(ex) - Return Nothing - End Try - End Function - - Public Function SyncUsersForGroup(GroupName As String, AttributeMappings As List(Of AttributeMapping), Firebird As Firebird, MSSQL As MSSQLServer, Optional Filter As String = DEFAULT_USER_FILTER) As List(Of ADUser) - Dim oUsers As New List(Of ADUser) - Dim oSyncedUsers As New List(Of ADUser) - Dim oGroupId As Int64 = Nothing - - Dim oFirebirdSync As New SyncUsers.SyncUsersFirebird(_logConfig, Firebird) - Dim oSQLSync As New SyncUsers.SyncUsersMSSQL(_logConfig, MSSQL) - Dim oSyncedUsersFirebird, oSyncedUsersMSSQL As List(Of ADUser) - - Try - _logger.Debug("Fetching users from ActiveDirectory") - oUsers = ListUsers(GroupName, AttributeMappings, Filter) - _logger.Debug("Found {0} users", oUsers.Count) - Catch ex As Exception - _logger.Error(ex) - Return Nothing - End Try - - ' Do the actual sync into firebird - If Firebird IsNot Nothing Then - oSyncedUsersFirebird = oFirebirdSync.SyncUsers(GroupName, oUsers, AttributeMappings) - If oSyncedUsersFirebird.Count > 0 Then - _logger.Debug("Synced {0} users to Firebird", oSyncedUsersFirebird.Count) - End If - Else - _logger.Debug("SyncUsersForGroup: _firebird is nothing. ") - End If - - ' Do the actual sync into MSSQL - If MSSQL IsNot Nothing Then - oSyncedUsersMSSQL = oSQLSync.SyncUsers(GroupName, oUsers, AttributeMappings) - If oSyncedUsersMSSQL.Count > 0 Then - _logger.Debug("Synced {0} users to MSSQLServer", oSyncedUsersMSSQL.Count) - End If - Else - _logger.Debug("SyncUsersForGroup: _mssql is nothing. ") - End If - - Return oUsers - End Function - - Public Function Authenticate() As Boolean - Try - Dim oEntry = GetRootNode() - oEntry.RefreshCache() - - _rootNode = oEntry - Return True - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could not authenticate with Active Directory.") - Return False - End Try - End Function - Public Function Authenticate(Username As String, Password As String) As Boolean - Try - Dim oEntry = GetRootNode(Username, Password) - oEntry.RefreshCache() - - _rootNode = oEntry - Return True - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could not authenticate with Active Directory.") - Return False - End Try - End Function - - Public Function ListGroups(Optional Query As String = DEFAULT_GROUP_FILTER) As List(Of ADGroup) - Return ListGroups(_rootNode, Query) - End Function - - Public Async Function ListGroupsAsync(Optional Query As String = DEFAULT_GROUP_FILTER) As Task(Of List(Of ADGroup)) - Return Await Task.Run(Function() ListGroups(Query)) - End Function - - Public Function ListGroups(RootNode As DirectoryEntry, Optional Query As String = DEFAULT_GROUP_FILTER) As List(Of ADGroup) - Dim oGroups As New List(Of ADGroup) - - Try - Dim oDirectorySearcher As New DirectorySearcher(RootNode) With { - .SearchScope = SearchScope.Subtree, - .SizeLimit = SEARCH_LIMIT, - .Filter = Query - } - Dim oResults As SearchResultCollection = oDirectorySearcher.FindAll() - - _logger.Info("Found {0} Groups.", oResults.Count) - - Return GroupResultsToList(oResults) - Catch ex As Exception - _logger.Error(ex) - Return oGroups - End Try - End Function - - Public Function ListUsers(GroupName As String, Optional Filter As String = DEFAULT_USER_FILTER) As List(Of ADUser) - Return ListUsers(GroupName, New List(Of AttributeMapping), Filter) - End Function - - Public Async Function ListUsersAsync(GroupName As String, Optional Filter As String = DEFAULT_USER_FILTER) As Task(Of List(Of ADUser)) - Return Await Task.Run(Function() ListUsers(GroupName, Filter)) - End Function - - Public Function ListUsers(GroupName As String, AttributeMappings As List(Of AttributeMapping), Optional Filter As String = DEFAULT_USER_FILTER) As List(Of ADUser) - Dim oUsers As New List(Of ADUser) - - Try - Using oContext As New PrincipalContext(ContextType.Domain) - Using oGroupPrincipal As GroupPrincipal = GroupPrincipal.FindByIdentity(oContext, IdentityType.Name, GroupName) - If oGroupPrincipal Is Nothing Then - _logger.Debug("Group {0} does not exist.", GroupName) - Return oUsers - End If - - _logger.Debug("Listing members of Group {0}", GroupName) - - Using oMembers = oGroupPrincipal.GetMembers(True) - For Each oMember As Principal In oMembers - Try - If TypeOf oMember Is UserPrincipal Then - Dim oUser As UserPrincipal = DirectCast(oMember, UserPrincipal) - Dim oUserEx As UserPrincipalEx = UserPrincipalEx.FindByIdentity(oContext, IdentityType.SamAccountName, oUser.SamAccountName) - Dim oCustomAttributes As New List(Of ADUser.CustomAttribute) - - Dim oUserFound = FindUserWithFilter(oUserEx, Filter) - - If oUserFound = False Then - _logger.Debug("User [{0}] was skipped out due to user filter.", oUserEx.SamAccountName) - Continue For - End If - _logger.Debug("User [{0}] passed the filter.", oUserEx.SamAccountName) - - ' TODO: Figure out why oUserEx can be nothing for certain users - If oUserEx IsNot Nothing Then - For Each oMap As AttributeMapping In AttributeMappings - Dim oAttributeValue = oUserEx.GetAttributeValue(oMap.AttributeName) - - If oAttributeValue <> String.Empty Then - _logger.Debug("Attribute [{0}] is not empty.", oMap.AttributeName) - - oCustomAttributes.Add(New ADUser.CustomAttribute() With { - .Name = oMap.AttributeName, - .Value = oAttributeValue, - .FirebirdSyskey = oMap.FirebirdSyskey, - .MSSQLColumn = oMap.MSSQLColumn - }) - End If - Next - Else - _logger.Debug("Could not fetch CustomAttributes for user [{0}]", oUser) - End If - - _logger.Debug("Trying to add User [{0}] to user list", oUser) - - Dim oNewUser As New ADUser With { - .SId = oUser.Sid, - .samAccountName = oUser.SamAccountName, - .Middlename = oUser.MiddleName, - .GivenName = oUser.GivenName, - .Surname = oUser.Surname, - .GUID = oUser.Guid, - .Email = oUser.EmailAddress, - .CustomAttributes = oCustomAttributes - } - - oUsers.Add(oNewUser) - End If - Catch ex As Exception - _logger.Warn("User could not be processed") - _logger.Error(ex) - End Try - Next - End Using - End Using - End Using - - Return oUsers - Catch ex As Exception - _logger.Error(ex) - Return oUsers - End Try - End Function - - Public Function FindUserWithFilter(User As UserPrincipalEx, Filter As String) As Boolean - Try - Dim oRootPath = String.Join(","c, User.DistinguishedName.Split(","c).Skip(1)) - Dim oPlaceholder = "@SAMACCOUNTNAME" - Dim oProtocol = "LDAP://" - Dim oEntry As New DirectoryEntry(oProtocol & oRootPath) With { - .Username = Nothing, - .Password = Nothing, - .AuthenticationType = AuthenticationTypes.Secure - } - - If Filter = String.Empty Then - _logger.Debug("FindUserWithFilter: Filter was empty, returning True for User [{0}]", User.SamAccountName) - Return True - End If - - If Filter.Contains(oPlaceholder) Then - Filter = Filter.Replace(oPlaceholder, User.SamAccountName) - Else - _logger.Warn("FindUserWithFilter: Placeholder [{0}] was not found in filter. Results may not be correct.") - End If - - Dim oSearcher As New DirectorySearcher(oEntry, Filter) - Dim oResult As SearchResult = oSearcher.FindOne() - - If oResult IsNot Nothing AndAlso oResult.Path.Replace(oProtocol, String.Empty) = User.DistinguishedName Then - Return True - Else - Return False - End If - Catch ex As Exception - _logger.Warn("FindUserWithFilter: Unhandled exception.") - _logger.Error(ex) - Return False - End Try - End Function - - Private Function GetRootNode() As DirectoryEntry - Dim oEntry As New DirectoryEntry(_rootPath) With { - .AuthenticationType = AuthenticationTypes.Secure, - .Password = Nothing, - .Username = Nothing - } - - Return oEntry - End Function - Private Function GetRootNode(Username As String, Password As String) As DirectoryEntry - Dim oEntry As New DirectoryEntry(_rootPath) With { - .AuthenticationType = AuthenticationTypes.Secure, - .Password = Username, - .Username = Password - } - - Return oEntry - End Function - - Private Function GroupResultsToList(Results As SearchResultCollection) As List(Of ADGroup) - Dim oGroups As New List(Of ADGroup) - - For Each oResult As SearchResult In Results - oGroups.Add(New ADGroup() With { - .Name = TryGetProperty(oResult, NAME), - .SAMAccountName = TryGetProperty(oResult, SAMACCOUNTNAME), - .CN = TryGetProperty(oResult, CN), - .Description = TryGetProperty(oResult, DESCRIPTION), - .DistinguishedName = TryGetProperty(oResult, DISINGUISHEDNAME), - .ObjectCategory = TryGetProperty(oResult, OBJECTCATEGORY), - .ObjectClass = TryGetProperty(oResult, OBJECTCLASS) - }) - Next - - Return oGroups - End Function - - Private Function TryGetProperty(Result As SearchResult, PropertyName As String) As String - Try - Return Result.Properties.Item(PropertyName).Item(0) - Catch ex As Exception - _logger.Debug("Property {0} not found", PropertyName) - Return String.Empty - End Try - End Function -End Class diff --git a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb b/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb deleted file mode 100644 index 285a9ebe..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb +++ /dev/null @@ -1,13 +0,0 @@ -Public Class ADGroup - Public Property SAMAccountName As String - Public Property ObjectClass As String - Public Property CN As String - Public Property Description As String - Public Property DistinguishedName As String - Public Property Name As String - Public Property ObjectCategory As String - - Public Overrides Function ToString() As String - Return SAMAccountName - End Function -End Class diff --git a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb b/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb deleted file mode 100644 index ee7504f6..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb +++ /dev/null @@ -1,28 +0,0 @@ -Imports System.Security.Principal - -Public Class ADUser - Public Property GUID As Guid - Public Property samAccountName As String - Public Property SId As SecurityIdentifier - Public Property Surname As String - Public Property GivenName As String - Public Property Middlename As String - Public Property Email As String - - Public CustomAttributes As List(Of CustomAttribute) - - Public Overrides Function Equals(obj As Object) As Boolean - Return DirectCast(obj, ADUser).samAccountName - End Function - - Public Overrides Function ToString() As String - Return samAccountName - End Function - - Public Class CustomAttribute - Public Name As String - Public Value As Object - Public MSSQLColumn As String - Public FirebirdSyskey As String - End Class -End Class diff --git a/Modules.Interfaces/ActiveDirectoryInterface/AttributeMap.vb b/Modules.Interfaces/ActiveDirectoryInterface/AttributeMap.vb deleted file mode 100644 index 139ecb97..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/AttributeMap.vb +++ /dev/null @@ -1,5 +0,0 @@ -Public Class AttributeMapping - Public AttributeName As String - Public FirebirdSyskey As String - Public MSSQLColumn As String -End Class diff --git a/Modules.Interfaces/ActiveDirectoryInterface/ISyncUsers.vb b/Modules.Interfaces/ActiveDirectoryInterface/ISyncUsers.vb deleted file mode 100644 index 2095b8e7..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/ISyncUsers.vb +++ /dev/null @@ -1,8 +0,0 @@ -Public Interface ISyncUsers - Function SyncUsers(GroupName As String, Users As List(Of ADUser), PropertyMapping As List(Of AttributeMapping)) As List(Of ADUser) - Function GetGroupId(GroupName As String) As Integer - Function GetUserId(UserName As String) As Integer - Function CreateUser(User As ADUser) As Integer - Function AddUserToGroup(UserId As Integer, GroupId As Integer) As Boolean - Sub AddCustomAttributesToUser(User As ADUser, UserId As Integer) -End Interface diff --git a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb b/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb deleted file mode 100644 index 182e2718..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb +++ /dev/null @@ -1,145 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Interfaces -Imports DigitalData.Modules.Logging - -Namespace SyncUsers - Public Class SyncUsersFirebird - Implements ISyncUsers - - Private ReadOnly _logConfig As LogConfig - Private ReadOnly _logger As Logger - Private ReadOnly _firebird As Database.Firebird - - Public Sub New(LogConfig As LogConfig, Firebird As Database.Firebird) - _logConfig = LogConfig - _logger = LogConfig.GetLogger() - _firebird = Firebird - End Sub - - Public Function SyncUsers(GroupName As String, Users As List(Of ADUser), PropertyMapping As List(Of AttributeMapping)) As List(Of ADUser) Implements ISyncUsers.SyncUsers - Dim oGroupId As Integer - Dim oSyncedUsers As New List(Of ADUser) - - Try - _logger.Debug("Getting group Id for group [{0}]", GroupName) - oGroupId = GetGroupId(GroupName) - - If oGroupId = 0 Then - _logger.Debug("Group [{0}] does not exist in database or is not enabled for sync.", GroupName) - Return oSyncedUsers - End If - - _logger.Debug("Using group Id [{0}]", oGroupId) - Catch ex As Exception - _logger.Error(ex) - Return oSyncedUsers - End Try - - For Each oUser In Users - Dim oUserId As Int64 - Dim oUserExists As Boolean = False - - ' Check if user already exists - Try - _logger.Debug("Checking if user [{0}] exists", oUser) - oUserId = GetUserId(oUser.samAccountName) - oUserExists = Not IsNothing(oUserId) - _logger.Debug("User [{0}] exists in database: ", oUser, oUserExists) - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could not get UserId for user. Skipping") - Continue For - End Try - - ' I user does not exist, create a new user - Try - If Not oUserExists Then - _logger.Debug("Creating new user for [{0}]", oUser) - oUserId = CreateUser(oUser) - _logger.Debug("User created with Id [{0}]", oUserId) - End If - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could not create user. Skipping") - Continue For - End Try - - ' Add the user to group - Try - AddUserToGroup(oUserId, oGroupId) - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could not add user to group. Skipping") - Continue For - End Try - - oSyncedUsers.Add(oUser) - Next - - Return oSyncedUsers - End Function - - Private Function AddUserToGroup(UserId As Integer, GroupId As Integer) As Boolean Implements ISyncUsers.AddUserToGroup - Try - Dim oSQL = $"SELECT FNICM_RADM_NEW_USER2GROUP({UserId}, {GroupId}, 'AD-Sync') from RDB$DATABASE" - Dim oRecordId = _firebird.GetScalarValue(oSQL) - - If IsDBNull(oRecordId) Then - _logger.Warn("UserId {0} - GroupId {1} relation already exists.", UserId, GroupId) - Return False - End If - - Return True - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - Private Function GetGroupId(GroupName As String) As Integer Implements ISyncUsers.GetGroupId - Try - Dim oSQL As String = $"SELECT FNICM_GET_RECORD4SYSKEY('{GroupName}','002-NAME') from RDB$DATABASE" - Dim oGroupId = _firebird.GetScalarValue(oSQL) - - If IsDBNull(oGroupId) OrElse oGroupId = 0 Then - _logger.Debug("Group {0} not found in database", GroupName) - Return Nothing - End If - - Return oGroupId - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - Private Function GetUserId(UserName As String) As Integer Implements ISyncUsers.GetUserId - Try - Dim oSQL As String = $"SELECT FNICM_GET_RECORD4SYSKEY('{UserName}','001-USRNAME') from RDB$DATABASE" - Dim oResult = _firebird.GetScalarValue(oSQL) - - If IsDBNull(oResult) Then - Return Nothing - End If - - Return oResult - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - Private Function CreateUser(User As ADUser) As Integer Implements ISyncUsers.CreateUser - Try - Dim oSQL = $"SELECT FNICM_RADM_NEW_USER('{User?.GivenName}', '{User?.Surname}', '{User?.samAccountName}', 'AD-Sync') from RDB$DATABASE" - Dim oUserId As Integer = _firebird.GetScalarValue(oSQL) - - Return oUserId - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Sub AddCustomAttributesToUser(User As ADUser, UserId As Integer) Implements ISyncUsers.AddCustomAttributesToUser - Throw New NotImplementedException() - End Sub - End Class -End Namespace diff --git a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb b/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb deleted file mode 100644 index 2ce5183e..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb +++ /dev/null @@ -1,284 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language - -Namespace SyncUsers - Public Class SyncUsersMSSQL - Implements ISyncUsers - - Private _logConfig As LogConfig - Private _logger As Logger - Private _mssql As MSSQLServer - - Private Const ADDED_WHO = "Active Directory Sync" - - Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer) - _logConfig = LogConfig - _logger = LogConfig.GetLogger() - _mssql = MSSQL - End Sub - - Public Function SyncUsers(GroupName As String, Users As List(Of ADUser), PropertyMapping As List(Of AttributeMapping)) As List(Of ADUser) Implements ISyncUsers.SyncUsers - Dim oGroupId As Integer - Dim oSyncedUsers As New List(Of ADUser) - Dim oSyncedUserIds As New List(Of Int64) - - Dim oCreatedUsers As New List(Of ADUser) - Dim oUpdatedUsers As New List(Of ADUser) - - Try - _logger.Debug("Getting group Id for group {0}", GroupName) - oGroupId = GetGroupId(GroupName) - - If oGroupId = 0 Then - _logger.Debug("Group {0} does not exist in database. Exiting.", GroupName) - Return oSyncedUsers - End If - - _logger.Debug("Using group Id {0}", oGroupId) - Catch ex As Exception - _logger.Error(ex) - Return oSyncedUsers - End Try - - For Each oUser In Users - Dim oUserId As Int64 - Dim oUserExists As Boolean - - ' Check if user already exists - Try - _logger.Debug("Checking if user [{0}] exists", oUser) - oUserId = GetUserId(oUser.samAccountName) - oUserExists = oUserId > 0 - _logger.Debug("User [{0}] exists in database: [{1}]", oUser, oUserExists) - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could not get UserId for user. Skipping.") - Continue For - End Try - - ' Collect user ids from existing users - If oUserExists Then - oSyncedUserIds.Add(oUserId) - End If - - ' Create or update user - Try - If Not oUserExists Then - _logger.Debug("Creating new user for [{0}]", oUser) - oUserId = CreateUser(oUser) - _logger.Debug("User created with Id [{0}]", oUserId) - _logger.Info("Added new User [{0}]", oUser.samAccountName) - - oCreatedUsers.Add(oUser) - Else - _logger.Debug("Updating user [{0}]", oUser) - oUserId = UpdateUser(oUser) - If oUserId <> 0 Then - _logger.Debug("User created with Id [{0}]", oUserId) - _logger.Info("Updated User [{0}]", oUser.samAccountName) - - oUpdatedUsers.Add(oUser) - End If - End If - - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could Not create/update user [{0}]. Skipping.", oUser.samAccountName) - Continue For - End Try - - ' Add custom attributes to user - Try - AddCustomAttributesToUser(oUser, oUserId) - Catch ex As Exception - _logger.Error(ex) - _logger.Debug("Could Not add custom attributes to user {0}. Continuing.", oUser) - End Try - - ' Add the user to group - Try - If AddUserToGroup(oUserId, oGroupId) Then - _logger.Info("User [{0}] added to group [{1}]", oUser.samAccountName, GroupName) - End If - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Could Not add user {0} to group {1}. Skipping.", oUser, GroupName) - Continue For - End Try - - oSyncedUsers.Add(oUser) - Next - - ' Delete users that are assigned to the group but no longer exist in active directory - Dim oUserIdString = String.Join(",", oSyncedUserIds) - If oSyncedUserIds.Count = 0 Then - _logger.Info("Group {0} does not contain any users.", GroupName) - oUserIdString = 0 - End If - Dim oSQL As String = $"DELETE FROM TBDD_GROUPS_USER WHERE USER_ID NOT IN ({oUserIdString}) AND GROUP_ID = {oGroupId}" - Dim oDeletedRelations = _mssql.GetScalarValue(oSQL) - If oCreatedUsers.Count > 0 Then - _logger.Info("Created [{0}] new users", oCreatedUsers.Count) - End If - _logger.Info("Updated [{0}] users", oUpdatedUsers.Count) - If oDeletedRelations > 0 Then - _logger.Info("Removed [{0}] users from Group [{1}]", oDeletedRelations, GroupName) - End If - - - Return oSyncedUsers - End Function - - Private Function AddUserToGroup(UserId As Integer, GroupId As Integer) As Boolean Implements ISyncUsers.AddUserToGroup - Try - Dim oSQL = $"SELECT COUNT(*) FROM TBDD_GROUPS_USER WHERE USER_ID = {UserId} And GROUP_ID = {GroupId}" - Dim oResult = True - If _mssql.GetScalarValue(oSQL) = 0 Then - oSQL = $"INSERT INTO TBDD_GROUPS_USER (USER_ID, GROUP_ID, ADDED_WHO) VALUES ({UserId}, {GroupId}, '{ADDED_WHO}')" - oResult = _mssql.ExecuteNonQuery(oSQL) - Else - _logger.Debug($"UserGroup-Relation [{UserId}/{GroupId}] already existing") - Return False - End If - - If oResult = False Then - Throw New Exception("Error while adding user to group!") - End If - - Return True - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetGroupId(GroupName As String) As Integer Implements ISyncUsers.GetGroupId - Try - Dim oSQL As String = $"SELECT GUID FROM TBDD_GROUPS WHERE UPPER(NAME) = UPPER('{GroupName}') AND AD_SYNC = 1 AND ACTIVE = 1" - Dim oGroupId = _mssql.GetScalarValue(oSQL) - - If IsDBNull(oGroupId) OrElse oGroupId = 0 Then - _logger.Debug("Group {0} not found in database.", GroupName) - Return 0 - End If - - Return oGroupId - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetUserId(UserName As String) As Integer Implements ISyncUsers.GetUserId - Try - Dim oSQL As String = $"SELECT GUID FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER('{UserName}')" - Dim oUserId = _mssql.GetScalarValue(oSQL) - - If IsDBNull(oUserId) OrElse oUserId = 0 Then - Return 0 - End If - - Return oUserId - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function CreateUser(User As ADUser) As Integer Implements ISyncUsers.CreateUser - Try - If User Is Nothing Then - _logger.Warn("Argument [User] is nothing. Exiting.") - Throw New ArgumentNullException("User") - End If - - Dim oUserId As Integer = GetUserId(User.samAccountName) - - If oUserId = 0 Then - Dim oSQL As String = $"INSERT INTO TBDD_USER (PRENAME, NAME, USERNAME, EMAIL, ADDED_WHO) VALUES ('{User?.GivenName}', '{User?.Surname?.Replace("'", "''")}', UPPER('{User?.samAccountName?.Replace("'", "''")}'), '{User?.Email?.Replace("'", "''")}', '{ADDED_WHO}')" - Dim oResult = _mssql.ExecuteNonQuery(oSQL) - - If oResult = True Then - oUserId = _mssql.GetScalarValue("SELECT MAX(GUID) FROM TBDD_USER") - Return oUserId - Else - Throw New Exception($"Error while inserting user {User.samAccountName}!") - End If - Else - Return oUserId - End If - - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function UpdateUser(User As ADUser) As Integer - Try - If User Is Nothing Then - _logger.Warn("Error in UpdateUser - User object is nothing") - Return 0 - End If - - If User.samAccountName Is Nothing Then - _logger.Warn("Error in UpdateUser - User samAccountName is nothing") - Return 0 - End If - - Dim oUserId As Integer = GetUserId(User.samAccountName) - If Not IsNothing(oUserId) Then - If oUserId > 0 Then - Dim oGivenName As String = EscapeQuotes(User.GivenName) - Dim oSurname As String = EscapeQuotes(User.Surname) - Dim oEmail As String = EscapeQuotes(User.Email) - - Dim oSQL As String = $"UPDATE TBDD_USER SET PRENAME = '{oGivenName}', NAME = '{oSurname}', EMAIL = '{oEmail}', CHANGED_WHO = '{ADDED_WHO}' WHERE GUID = {oUserId}" - Dim oResult = _mssql.ExecuteNonQuery(oSQL) - - If oResult = True Then - Return oUserId - Else - Throw New Exception($"Error while updating user {User.samAccountName}!") - End If - Else - Return oUserId - End If - Else - _logger.Warn("Error in UpdateUser - Could not get a userid for samAccountName: " + User.samAccountName) - Return 0 - End If - - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function EscapeQuotes(pString As String) - Dim oString = Utils.NotNull(pString, String.Empty) - Return oString.Replace("'", "''") - End Function - - Public Sub AddCustomAttributesToUser(User As ADUser, UserId As Integer) Implements ISyncUsers.AddCustomAttributesToUser - Dim oCustomAttributes = User.CustomAttributes - - _logger.Debug("Adding {0} Custom Attributes to User {1}", oCustomAttributes.Count, User) - - For Each oAttribute In oCustomAttributes - _logger.Debug("Adding Custom Attribute [{0}] with value [{1}] to User [{2}]", oAttribute.MSSQLColumn, oAttribute.Value, User) - Dim oSQL As String = $"UPDATE TBDD_USER SET {oAttribute.MSSQLColumn} = '{oAttribute.Value}', CHANGED_WHO = '{ADDED_WHO}' WHERE GUID = {UserId}" - Dim oResult = _mssql.ExecuteNonQuery(oSQL) - - If oResult = False Then - _logger.Debug("Custom Attribute {0} could not be added to user {1}", oAttribute.Name, User.samAccountName) - Continue For - End If - Next - End Sub - End Class - -End Namespace - - diff --git a/Modules.Interfaces/ActiveDirectoryInterface/UserEqualityComparer.vb b/Modules.Interfaces/ActiveDirectoryInterface/UserEqualityComparer.vb deleted file mode 100644 index 873e05cc..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/UserEqualityComparer.vb +++ /dev/null @@ -1,19 +0,0 @@ -Imports DigitalData.Modules.Interfaces - -Public Class UserEqualityComparer - Implements IEqualityComparer(Of ADUser) - - Public Overloads Function Equals(x As ADUser, y As ADUser) As Boolean Implements IEqualityComparer(Of ADUser).Equals - If ReferenceEquals(x, y) Then Return True - If x Is Nothing Or y Is Nothing Then Return False - - Return x.SId = y.SId - End Function - - Public Overloads Function GetHashCode(obj As ADUser) As Integer Implements IEqualityComparer(Of ADUser).GetHashCode - If obj Is Nothing Then Return 0 - - Dim oHashCode = obj.SId.GetHashCode() - Return oHashCode - End Function -End Class diff --git a/Modules.Interfaces/ActiveDirectoryInterface/UserPrincipalEx.vb b/Modules.Interfaces/ActiveDirectoryInterface/UserPrincipalEx.vb deleted file mode 100644 index a8a4cdd1..00000000 --- a/Modules.Interfaces/ActiveDirectoryInterface/UserPrincipalEx.vb +++ /dev/null @@ -1,36 +0,0 @@ -Imports System.DirectoryServices.AccountManagement - - - -Public Class UserPrincipalEx - Inherits UserPrincipal - - Public Sub New(Context As PrincipalContext) - MyBase.New(Context) - End Sub - - Public Sub New(Context As PrincipalContext, samAccountName As String, Password As String, Enabled As Boolean) - MyBase.New(Context, samAccountName, Password, Enabled) - End Sub - - Public Overloads Shared Function FindByIdentity(ByVal Context As PrincipalContext, ByVal IdentityValue As String) As UserPrincipalEx - Return CType(FindByIdentityWithType(Context, GetType(UserPrincipalEx), IdentityValue), UserPrincipalEx) - End Function - - Public Overloads Shared Function FindByIdentity(ByVal Context As PrincipalContext, ByVal IdentityType As IdentityType, ByVal IdentityValue As String) As UserPrincipalEx - Return CType(FindByIdentityWithType(Context, GetType(UserPrincipalEx), IdentityType, IdentityValue), UserPrincipalEx) - End Function - - Public Function GetAttributeValue(AttributeName As String) As String - Return TryGetAttribute(AttributeName) - End Function - - Private Function TryGetAttribute(AttributeName As String) As String - Dim oAttribute = ExtensionGet(AttributeName) - - If oAttribute.Length <> 1 Then - Return String.Empty - End If - Return CStr(oAttribute(0)) - End Function -End Class diff --git a/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll b/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll deleted file mode 100644 index c469e776..00000000 Binary files a/Modules.Interfaces/GdPicture.NET.14.Imaging.Rendering.Skia.dll and /dev/null differ diff --git a/Modules.Interfaces/GdPicture.NET.14.filters.dll b/Modules.Interfaces/GdPicture.NET.14.filters.dll deleted file mode 100644 index 62cdd939..00000000 Binary files a/Modules.Interfaces/GdPicture.NET.14.filters.dll and /dev/null differ diff --git a/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll b/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll deleted file mode 100644 index b45db24a..00000000 Binary files a/Modules.Interfaces/GdPicture.NET.14.image.gdimgplug.dll and /dev/null differ diff --git a/Modules.Interfaces/GrapQLInterface/LoginData.vb b/Modules.Interfaces/GrapQLInterface/LoginData.vb deleted file mode 100644 index 32ff79d5..00000000 --- a/Modules.Interfaces/GrapQLInterface/LoginData.vb +++ /dev/null @@ -1,4 +0,0 @@ -Public Class LoginData - Public email As String - Public token As String -End Class diff --git a/Modules.Interfaces/GrapQLInterface/LogoutData.vb b/Modules.Interfaces/GrapQLInterface/LogoutData.vb deleted file mode 100644 index 5dd0e0ff..00000000 --- a/Modules.Interfaces/GrapQLInterface/LogoutData.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class LogoutData - Public email As String -End Class diff --git a/Modules.Interfaces/GrapQLInterface/QueryData.vb b/Modules.Interfaces/GrapQLInterface/QueryData.vb deleted file mode 100644 index 4bdc356a..00000000 --- a/Modules.Interfaces/GrapQLInterface/QueryData.vb +++ /dev/null @@ -1,5 +0,0 @@ -Public Class QueryData - Public query As String - Public operationName As String - Public variables As New Object -End Class diff --git a/Modules.Interfaces/GraphQLInterface.vb b/Modules.Interfaces/GraphQLInterface.vb deleted file mode 100644 index fe19ea41..00000000 --- a/Modules.Interfaces/GraphQLInterface.vb +++ /dev/null @@ -1,181 +0,0 @@ -Imports System.IO -Imports System.Net -Imports System.Security.Cryptography.X509Certificates -Imports System.Text -Imports DigitalData.Modules.Logging -Imports Newtonsoft.Json - -Public Class GraphQLInterface - Private _logConfig As LogConfig - Private _logger As Logger - Private _baseUrl As String - Private _userEmail As String - Private _userPassword As String - Private _certificate As X509Certificate2 - Private _cookieJar As CookieContainer - Private _Encoding As New UTF8Encoding - - Private Const MAX_COOKIE_SIZE As Integer = 32768 - Private Const MAX_COOKIE_COUNT As Integer = 300 - Private Const MAX_COOKIE_COUNT_PER_DOMAIN As Integer = 20 - - Public Property Proxy As WebProxy - Public Property Credentials As NetworkCredential - - Public Sub New(LogConfig As LogConfig, BaseUrl As String, Email As String, Password As String, CertificateFingerprint As String) - Try - _logConfig = LogConfig - _logger = LogConfig.GetLogger() - _baseUrl = BaseUrl - _userEmail = Email - _userPassword = Password - - Dim oStore As New X509Store(StoreName.Root, StoreLocation.CurrentUser) - oStore.Open(OpenFlags.ReadOnly) - - - _logger.Debug("Available Certificates ({0}):", oStore.Certificates.Count) - - For Each oCert In oStore.Certificates - _logger.Debug("FriendlyName: {0}", oCert.FriendlyName) - _logger.Debug("IssuerName: {0}", oCert.IssuerName.Name) - _logger.Debug("SubjectName: {0}", oCert.SubjectName.Name) - _logger.Debug("Fingerprint: {0}", oCert.Thumbprint) - Next - - _logger.Debug("Looking for Certificate with Fingerprint [{0}]", CertificateFingerprint) - - Dim oFoundCerts = oStore.Certificates.Find(X509FindType.FindByThumbprint, CertificateFingerprint, False) - - If oFoundCerts.Count = 0 Then - _logger.Warn("Certificate could not be found! Exiting.") - Exit Sub - End If - - _certificate = oFoundCerts.Item(0) - Catch ex As Exception - _logger.Error(ex) - End Try - End Sub - - Public Sub SaveCookies(Cookie As Cookie) - GetCookies().Add(Cookie) - End Sub - - Public Function Login() As HttpWebResponse - Try - Dim oLoginData As New LoginData() With {.email = _userEmail, .token = _userPassword} - Dim oBytes As Byte() = ToBytes(JsonConvert.SerializeObject(oLoginData)) - Dim oRequest As HttpWebRequest = GetRequest("/login", oBytes) - - Using oStream = oRequest.GetRequestStream() - oStream.Write(oBytes, 0, oBytes.Length) - End Using - - Return oRequest.GetResponse() - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Function Logout() As HttpWebResponse - Try - Dim oLogoutData As New LogoutData() With {.email = _userEmail} - Dim oBytes As Byte() = ToBytes(JsonConvert.SerializeObject(oLogoutData)) - Dim oRequest As HttpWebRequest = GetRequest("/logout", oBytes) - - Using stream = oRequest.GetRequestStream() - stream.Write(oBytes, 0, oBytes.Length) - End Using - - Return oRequest.GetResponse() - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetData(Query As String, OperationName As String) As HttpWebResponse - Try - Dim oQueryData As New QueryData() With { - .operationName = OperationName, - .query = Query, - .variables = New Object - } - Dim oJson = JsonConvert.SerializeObject(oQueryData) - Dim oBytes = ToBytes(oJson) - Dim oRequest = GetRequest("/graphql", oBytes) - - Using stream = oRequest.GetRequestStream() - stream.Write(oBytes, 0, oBytes.Length) - End Using - - Return oRequest.GetResponse() - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Function ReadJSONPathFragmented(pObject As Linq.JObject, pJsonPath As String) - Dim oSplitPath As List(Of String) = pJsonPath.Split(".").ToList() - Dim oCurrentPath As String = String.Empty - - For Each oPart In oSplitPath - If oCurrentPath = String.Empty Then - oCurrentPath = oPart - Else - oCurrentPath &= "." & oPart - End If - - _logger.Debug("Selecting Path Fragment [{0}]", oCurrentPath) - - Try - pObject.SelectToken(oCurrentPath, errorWhenNoMatch:=True) - Catch ex As Exception - _logger.Warn("Path Fragment [{0}] did not return a valid token", oCurrentPath) - Return False - End Try - Next - - Return True - End Function - - Private Function GetRequest(Url As String, PostData As Byte()) As HttpWebRequest - Try - Dim oRequest As HttpWebRequest = WebRequest.Create($"{_baseUrl}{Url}") - oRequest.Method = "POST" - oRequest.ContentType = "application/json" - oRequest.ContentLength = PostData.Length - oRequest.ClientCertificates.Add(_certificate) - oRequest.CookieContainer = GetCookies() - - oRequest.Proxy = Nothing - - If Proxy Is Nothing Then - oRequest.Proxy = Nothing - Else - oRequest.Proxy = Proxy - oRequest.Credentials = Credentials - End If - - Return oRequest - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetCookies() As CookieContainer - If _cookieJar Is Nothing Then - _cookieJar = New CookieContainer(MAX_COOKIE_COUNT, MAX_COOKIE_COUNT_PER_DOMAIN, MAX_COOKIE_SIZE) - End If - - Return _cookieJar - End Function - - Private Function ToBytes(Str As String) As Byte() - Return _Encoding.GetBytes(Str) - End Function -End Class diff --git a/Modules.Interfaces/Interfaces.vbproj b/Modules.Interfaces/Interfaces.vbproj deleted file mode 100644 index 999be9ee..00000000 --- a/Modules.Interfaces/Interfaces.vbproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Debug - AnyCPU - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64} - Library - DigitalData.Modules.Interfaces - DigitalData.Modules.Interfaces - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Interfaces.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Interfaces.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll - - - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - \ No newline at end of file diff --git a/Modules.Interfaces/My Project/Application.Designer.vb b/Modules.Interfaces/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Interfaces/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Interfaces/My Project/Application.myapp b/Modules.Interfaces/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Interfaces/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Interfaces/My Project/AssemblyInfo.vb b/Modules.Interfaces/My Project/AssemblyInfo.vb deleted file mode 100644 index 0e85f009..00000000 --- a/Modules.Interfaces/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Interfaces/My Project/Resources.Designer.vb b/Modules.Interfaces/My Project/Resources.Designer.vb deleted file mode 100644 index 46a82a82..00000000 --- a/Modules.Interfaces/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Interfaces.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Interfaces/My Project/Resources.resx b/Modules.Interfaces/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Interfaces/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Interfaces/My Project/Settings.Designer.vb b/Modules.Interfaces/My Project/Settings.Designer.vb deleted file mode 100644 index 2f22163c..00000000 --- a/Modules.Interfaces/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Interfaces.My.MySettings - Get - Return Global.DigitalData.Modules.Interfaces.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Interfaces/My Project/Settings.settings b/Modules.Interfaces/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Interfaces/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Interfaces/ZUGFeRDInterface.vb b/Modules.Interfaces/ZUGFeRDInterface.vb deleted file mode 100644 index 1b24c0f2..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface.vb +++ /dev/null @@ -1,207 +0,0 @@ -Imports System.IO -Imports System.Xml -Imports System.Xml.Serialization -Imports System.Xml.XPath -Imports System.Xml.Xsl -Imports DigitalData.Modules.Interfaces.Exceptions -Imports DigitalData.Modules.Logging -Imports GdPicture14 - -Public Class ZUGFeRDInterface - Private _logConfig As LogConfig - Private _logger As Logger - - Public Enum ErrorType - NoValidFile - NoZugferd - NoValidZugferd - MissingProperties - End Enum - - Public ReadOnly Property FileGroup As FileGroups - Public ReadOnly Property PropertyValues As PropertyValues - - Public Sub New(LogConfig As LogConfig, GDPictureKey As String) - _logConfig = LogConfig - _logger = _logConfig.GetLogger() - - FileGroup = New FileGroups(_logConfig) - PropertyValues = New PropertyValues(_logConfig) - - Try - Dim oLicenseManager As New LicenseManager - oLicenseManager.RegisterKEY(GDPictureKey) - Catch ex As Exception - _logger.Warn("GDPicture License could not be registered!") - _logger.Error(ex) - End Try - End Sub - - ''' - ''' Validates a ZUGFeRD File and extracts the XML Document from it - ''' - ''' - ''' - ''' - Public Function ExtractZUGFeRDFileWithGDPicture(Path As String) As Object - Dim oXmlDocument = ValidateZUGFeRDFileWithGDPicture(Path) - - If IsNothing(oXmlDocument) Then - Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.") - End If - - Return SerializeZUGFeRDDocument(oXmlDocument) - End Function - - ''' - ''' Validates a ZUGFeRD File and extracts the XML Document from it - ''' - ''' - ''' - ''' - Public Function ExtractZUGFeRDFileWithGDPicture(Stream As Stream) As Object - Dim oXmlDocument = ValidateZUGFeRDFileWithGDPicture(Stream) - - If IsNothing(oXmlDocument) Then - Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei.") - End If - - Return SerializeZUGFeRDDocument(oXmlDocument) - End Function - - ''' - ''' Validates a ZUGFeRD File and extracts the XML Document from it - ''' - ''' - ''' - ''' - Public Function ValidateZUGFeRDFileWithGDPicture(Stream As Stream) As XPathDocument - Dim oEmbedExtractor = New PDFEmbeds(_logConfig) - Dim oAllowedExtensions = New List(Of String) From {"xml"} - - Try - Dim oFiles = oEmbedExtractor.Extract(Stream, oAllowedExtensions) - - ' Attachments are in this case the files that are embedded into a pdf file, - ' like for example the zugferd-invoice.xml file - Return HandleEmbeddedFiles(oFiles) - - Catch ex As ZUGFeRDExecption - ' Don't log ZUGFeRD Exceptions here, they should be handled by the calling code. - ' It also produces misleading error messages when checking if an attachment is a zugferd file. - Throw ex - - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Public Function ValidateZUGFeRDFileWithGDPicture(Path As String) As XPathDocument - Dim oEmbedExtractor = New PDFEmbeds(_logConfig) - Dim oAllowedExtensions = New List(Of String) From {"xml"} - - Try - Dim oFiles = oEmbedExtractor.Extract(Path, oAllowedExtensions) - - ' Attachments are in this case the files that are embedded into a pdf file, - ' like for example the zugferd-invoice.xml file - Return HandleEmbeddedFiles(oFiles) - - Catch ex As ZUGFeRDExecption - ' Don't log ZUGFeRD Exceptions here, they should be handled by the calling code. - ' It also produces misleading error messages when checking if an attachment is a zugferd file. - Throw ex - - Catch ex As Exception - _logger.Error(ex) - Throw ex - End Try - End Function - - Private Function HandleEmbeddedFiles(Results As List(Of PDFEmbeds.EmbeddedFile)) As XPathDocument - Dim oXmlDocument As XPathDocument - - If Results Is Nothing Then - Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei, weil die Attachments nicht gelesen werden konnten.") - End If - - If Results.Count = 0 Then - Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei, weil sie keine Attachments enthält.") - End If - - Dim oValidFilenames As New List(Of String) From { - PDFEmbeds.ZUGFERD_XML_FILENAME.ToUpper, - PDFEmbeds.FACTUR_X_XML_FILENAME_DE.ToUpper, - PDFEmbeds.FACTUR_X_XML_FILENAME_FR.ToUpper - } - - ' Find the first file which filename matches the valid filenames for embedded invoice files - Dim oFoundResult As PDFEmbeds.EmbeddedFile = Results. - Where(Function(result) oValidFilenames.Contains(result.FileName.ToUpper)). - FirstOrDefault() - - If oFoundResult Is Nothing Then - Throw New ZUGFeRDExecption(ErrorType.NoZugferd, "Datei ist keine ZUGFeRD Datei, weil die zugferd-invoice.xml nicht gefunden wurde.") - End If - - Try - Using oStream As New MemoryStream(oFoundResult.FileContents) - oXmlDocument = New XPathDocument(oStream) - End Using - - Return oXmlDocument - Catch ex As ZUGFeRDExecption - ' Don't log ZUGFeRD Exceptions here, they should be handled by the calling code. - ' It also produces misleading error messages when checking if an attachment is a zugferd file. - Throw ex - - Catch ex As Exception - _logger.Error(ex) - Throw New ZUGFeRDExecption(ErrorType.NoValidZugferd, "Datei ist eine ungültige ZUGFeRD Datei.") - End Try - End Function - - Public Function SerializeZUGFeRDDocument(Document As XPathDocument) As Object - Try - Dim oNavigator As XPathNavigator = Document.CreateNavigator() - Dim oReader As XmlReader - Dim oResult = Nothing - - Dim oTypes As New List(Of Type) From { - GetType(ZUGFeRD.Version1_0.CrossIndustryDocumentType), - GetType(ZUGFeRD.Version2_0.CrossIndustryInvoiceType), - GetType(ZUGFeRD.Version2_1_1.CrossIndustryInvoiceType), - GetType(ZUGFeRD.Version2_2_FacturX.CrossIndustryInvoiceType) - } - - For Each oType In oTypes - _logger.Debug("Trying Type [{0}]", oType.FullName) - Dim oSerializer As New XmlSerializer(oType) - - Try - oReader = oNavigator.ReadSubtree() - oResult = oSerializer.Deserialize(oReader) - _logger.Debug("Serializing with type [{0}] succeeded", oType.FullName) - Exit For - Catch ex As Exception - _logger.Debug("Serializing with type [{0}] failed", oType.FullName) - _logger.Debug(ex.Message) - _logger.Error(ex.InnerException?.Message) - End Try - Next - - If oResult Is Nothing Then - Throw New ApplicationException("No Types matched the given document. Document could not be serialized.") - End If - - Return oResult - - Catch ex As Exception - _logger.Error(ex) - Throw New ZUGFeRDExecption(ErrorType.NoValidZugferd, "Datei ist eine ungültige ZUGFeRD Datei.") - End Try - End Function - - -End Class diff --git a/Modules.Interfaces/ZUGFeRDInterface/Exceptions.vb b/Modules.Interfaces/ZUGFeRDInterface/Exceptions.vb deleted file mode 100644 index db8a0a42..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/Exceptions.vb +++ /dev/null @@ -1,13 +0,0 @@ -Public Class Exceptions - Public Class ZUGFeRDExecption - Inherits ApplicationException - - Public ReadOnly Property ErrorType() As ZUGFeRDInterface.ErrorType - - Public Sub New(ErrorType As ZUGFeRDInterface.ErrorType, Message As String) - MyBase.New(Message) - - _ErrorType = ErrorType - End Sub - End Class -End Class diff --git a/Modules.Interfaces/ZUGFeRDInterface/FileGroups.vb b/Modules.Interfaces/ZUGFeRDInterface/FileGroups.vb deleted file mode 100644 index 90cac5f5..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/FileGroups.vb +++ /dev/null @@ -1,82 +0,0 @@ -Imports System.IO -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Logging - -Public Class FileGroups - Private _logger As Logger - - Public Sub New(LogConfig As LogConfig) - _logger = LogConfig.GetLogger() - End Sub - - ''' - ''' Group files by message id. Message id is extracted from filename. - ''' Filename is expected to be in the form: 1234@subdomain.company.com - ''' The list of files to process - ''' - Public Function GroupFiles(Files As List(Of FileInfo)) As Dictionary(Of String, List(Of FileInfo)) - Dim oGrouped As New Dictionary(Of String, List(Of FileInfo)) - - If Files.Count = 0 Then - Return oGrouped - End If - - For Each oFile In Files - Dim oMessageId = GetMessageIdFromFileName(oFile.Name) - - If oMessageId Is Nothing Then - _logger.Warn("File {0} did not have the required filename-format!", oMessageId) - Continue For - End If - - If oGrouped.ContainsKey(oMessageId) Then - oGrouped.Item(oMessageId).Add(oFile) - Else - oGrouped.Add(oMessageId, New List(Of FileInfo) From {oFile}) - End If - Next - - Return oGrouped - End Function - - ''' - ''' Group files by message id. Message id is created from `FakeMessageIdDomain` and a random string - ''' - ''' The list of files to process - ''' Arbitrary domain for message id generation. Example: sub.company.com - ''' - Public Function GroupFiles(Files As List(Of FileInfo), FakeMessageIdDomain As String) As Dictionary(Of String, List(Of FileInfo)) - Dim oGrouped As New Dictionary(Of String, List(Of FileInfo)) - - If Files.Count = 0 Then - Return oGrouped - End If - - For Each oFile In Files - Dim oIdentifier = Guid.NewGuid().ToString() - Dim oMessageId = $"{oIdentifier}@{FakeMessageIdDomain}" - - If oGrouped.ContainsKey(oMessageId) Then - oGrouped.Item(oMessageId).Add(oFile) - Else - oGrouped.Add(oMessageId, New List(Of FileInfo) From {oFile}) - End If - Next - - Return oGrouped - End Function - - Private Function GetMessageIdFromFileName(Filename As String) As String - ' Regex to find MessageId - ' See also: https://stackoverflow.com/questions/3968500/regex-to-validate-a-message-id-as-per-rfc2822 - Dim oRegex = "(((([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)|(""(([\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|[\x21\x23-\x5B\x5D-\x7E])|(\\[\x01-\x09\x0B\x0C\x0E-\x7F]))*""))@(([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)|(\[(([\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|[\x21-\x5A\x5E-\x7E])|(\\[\x01-\x09\x0B\x0C\x0E-\x7F]))*\]))))~.+" - Dim oMatch = Regex.Match(Filename, oRegex, RegexOptions.IgnoreCase) - - If oMatch.Success Then - Dim oMessageId = oMatch.Groups(1).Value - Return oMessageId - Else - Return Nothing - End If - End Function -End Class diff --git a/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb b/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb deleted file mode 100644 index b9143772..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/PDFEmbeds.vb +++ /dev/null @@ -1,150 +0,0 @@ -Imports System.Collections.Generic -Imports System.IO -Imports DigitalData.Modules.Logging -Imports GdPicture14 - -Public Class PDFEmbeds - Private ReadOnly Logger As Logger - - Public Const ZUGFERD_XML_FILENAME = "ZUGFeRD-invoice.xml" - Public Const FACTUR_X_XML_FILENAME_FR = "factur-x.xml" - Public Const FACTUR_X_XML_FILENAME_DE = "xrechnung.xml" - - Public Class EmbeddedFile - Public FileName As String - Public FileContents As Byte() - End Class - - Public Sub New(LogConfig As LogConfig) - Logger = LogConfig.GetLogger - End Sub - - ''' - ''' Extracts all embedded files from a PDF file. - ''' Note: This does NOT filter out `ZUGFeRD-invoice.xml` anymore to allow for a more generic use. - ''' - ''' Filepath of the pdf - ''' List of allowed extensions to be extracted - Public Function Extract(FilePath As String, AllowedExtensions As List(Of String)) As List(Of EmbeddedFile) - Dim oFile As New List(Of EmbeddedFile) - Dim oFileInfo As FileInfo - Dim oExtensions = AllowedExtensions.ConvertAll(New Converter(Of String, String)(Function(ext) ext.ToUpper)) - - Logger.Debug("Extracting embedded files from [{0}]", FilePath) - - Try - oFileInfo = New FileInfo(FilePath) - - Logger.Debug("Filename: {0}", oFileInfo.Name) - Logger.Debug("Filesize: {0} bytes", oFileInfo.Length) - Logger.Debug("Exists: {0}", oFileInfo.Exists) - Catch ex As Exception - Logger.Warn("File information for [{0}] could not be read!", FilePath) - Logger.Error(ex) - End Try - - Try - Using oGDPicturePDF As New GdPicturePDF() - If oGDPicturePDF.LoadFromFile(FilePath, False) = GdPictureStatus.OK Then - oFile = DoExtract(oGDPicturePDF, oExtensions) - Else - Dim oMessage = String.Format("The file [{0}] can't be loaded. Status: [{1}]", FilePath, oGDPicturePDF.GetStat().ToString()) - Throw New ApplicationException(oMessage) - End If - End Using - - Return oFile - Catch ex As Exception - Logger.Warn("Unexpected Error while Extracting attachments from File [{0}]", FilePath) - Logger.Error(ex) - Return Nothing - End Try - End Function - - ''' - ''' Extracts all embedded files from a PDF file. - ''' Note: This does NOT filter out `ZUGFeRD-invoice.xml` anymore to allow for a more generic use. - ''' - ''' Filestream of the pdf - ''' List of allowed extensions to be extracted - Public Function Extract(Stream As Stream, AllowedExtensions As List(Of String)) As List(Of EmbeddedFile) - Dim oResults As New List(Of EmbeddedFile) - Dim oExtensions = AllowedExtensions.ConvertAll(New Converter(Of String, String)(Function(ext) ext.ToUpper)) - - Logger.Debug("Extracting embedded files from stream") - - Try - Using oGDPicturePDF As New GdPicturePDF() - If oGDPicturePDF.LoadFromStream(Stream, False) = GdPictureStatus.OK Then - oResults = DoExtract(oGDPicturePDF, oExtensions) - Else - Dim oMessage = String.Format("The filestream can't be loaded. Status: [{0}]", oGDPicturePDF.GetStat().ToString()) - Throw New ApplicationException(oMessage) - End If - End Using - - Return oResults - Catch ex As Exception - Logger.Warn("Unexpected Error while Extracting attachments from Filestream") - Logger.Error(ex) - Return Nothing - End Try - End Function - - Private Function DoExtract(GDPicturePDF As GdPicturePDF, pExtensions As List(Of String)) As List(Of EmbeddedFile) - Dim oResults As New List(Of EmbeddedFile) - Dim oEmbeddedFileCount As Integer = GDPicturePDF.GetEmbeddedFileCount() - - If GDPicturePDF.GetStat() = GdPictureStatus.OK Then - Logger.Debug("Embedded file count is: [{0}]", oEmbeddedFileCount) - - If oEmbeddedFileCount > 0 Then - For oIndex = 0 To oEmbeddedFileCount - 1 - Dim oFileName As String = GDPicturePDF.GetEmbeddedFileName(oIndex) - - If GDPicturePDF.GetStat() = GdPictureStatus.OK Then - Logger.Debug("Extracting embedded file [{0}]", oFileName) - - Dim oExtension = New FileInfo(oFileName).Extension.ToUpper.Substring(1) - If pExtensions.Contains(oExtension) Then - Dim oFileSize As Integer = GDPicturePDF.GetEmbeddedFileSize(oIndex) - - If GDPicturePDF.GetStat() = GdPictureStatus.OK Then - Logger.Debug("Filesize of embedded file is [{0}]", oFileSize) - - Dim oFileData As Byte() = New Byte(oFileSize) {} - Dim oStatus As GdPictureStatus = GDPicturePDF.ExtractEmbeddedFile(oIndex, oFileData) - - If oStatus = GdPictureStatus.OK Then - Logger.Debug("Embedded file [{0}] extracted sucessfully!", oFileName) - - oResults.Add(New EmbeddedFile() With { - .FileContents = oFileData, - .FileName = oFileName - }) - Else - Logger.Error("The embedded file [{0}] has failed to extract. Status: {1}", oFileName, GDPicturePDF.GetStat().ToString()) - Continue For - End If - Else - Logger.Error("An error occurred getting the file size for [{0}]. Status: {1}", oFileName, GDPicturePDF.GetStat().ToString()) - Continue For - End If - Else - Logger.Debug("File [{0}] was skipped because its extension [{1}] is not allowed.", oFileName, oExtension) - Continue For - End If - Else - Logger.Error("An error occurred getting the file name for [{0}]. Status: {1}", oFileName, GDPicturePDF.GetStat().ToString()) - Continue For - End If - Next - End If - - Return oResults - Else - Dim oMessage = String.Format("An error occurred getting the number of embedded files. Status: {0}", GDPicturePDF.GetStat().ToString()) - Throw New ApplicationException(oMessage) - End If - End Function -End Class diff --git a/Modules.Interfaces/ZUGFeRDInterface/PropertyValues.vb b/Modules.Interfaces/ZUGFeRDInterface/PropertyValues.vb deleted file mode 100644 index 110baacd..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/PropertyValues.vb +++ /dev/null @@ -1,325 +0,0 @@ -Imports System.Reflection -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Logging - -Public Class PropertyValues - Private _logger As Logger - Private _logConfig As LogConfig - - Private _indexPattern = "\((\d+)\)" - Private _indexRegex As New Regex(_indexPattern) - - Public Sub New(LogConfig As LogConfig) - _logConfig = LogConfig - _logger = LogConfig.GetLogger() - End Sub - - Public Class CheckPropertyValuesResult - Public MissingProperties As New List(Of String) - Public ValidProperties As New List(Of ValidProperty) - End Class - - Public Class ValidProperty - Public MessageId As String - Public TableName As String - Public TableColumn As String - - Public ISRequired As Boolean - Public GroupCounter As Integer = -1 - - Public Description As String - Public Value As String - End Class - - Public Function CheckPropertyValues(Document As Object, PropertyMap As Dictionary(Of String, XmlItemProperty), MessageId As String) As CheckPropertyValuesResult - Dim oGlobalGroupCounter = 0 - Dim oMissingProperties As New List(Of String) - Dim oResult As New CheckPropertyValuesResult() - - ' PropertyMap items with `IsGrouped = False` are handled normally - Dim oDefaultProperties As Dictionary(Of String, XmlItemProperty) = PropertyMap. - Where(Function(Item) Item.Value.IsGrouped = False). - ToDictionary(Function(Item) Item.Key, - Function(Item) Item.Value) - - _logger.Debug("Found {0} default properties.", oDefaultProperties.Count) - - ' PropertyMap items with `IsGrouped = True` are grouped by group scope - Dim oGroupedProperties = PropertyMap. - Where(Function(Item) Item.Value.IsGrouped = True). - ToLookup(Function(Item) Item.Value.GroupScope, ' Lookup key is group scope - Function(Item) Item) - - _logger.Debug($"Found [{PropertyMap.Count - oDefaultProperties.Count}] properties grouped in [{oGroupedProperties.Count}] group(s)") - ' Iterate through groups to get group scope and group items - For Each oGroup In oGroupedProperties - Dim oGroupScope As String = oGroup.Key - - Dim oPropertyList As New Dictionary(Of XmlItemProperty, List(Of Object)) - Dim oRowCount = 0 - - _logger.Debug($"Fetching Property values for group [{oGroupScope}].") - - ' get properties as a nested object, see `oPropertyList` - For Each oProperty As KeyValuePair(Of String, XmlItemProperty) In oGroup - Dim oPropertyValues As List(Of Object) - _logger.Debug($"Fetching value for itemSpecification [{oProperty.Value.TableColumn}].") - Try - oPropertyValues = GetPropValue(Document, oProperty.Key) - Catch ex As Exception - _logger.Warn($"{MessageId} - Unknown error occurred while fetching property/TColumn [{0}] in group [{1}]:", oProperty.Value.TableColumn, oGroupScope) - _logger.Error(ex) - oPropertyValues = New List(Of Object) - End Try - - ' Flatten result value - oPropertyValues = GetFinalPropValue(oPropertyValues) - - ' Add to list - oPropertyList.Add(oProperty.Value, oPropertyValues) - - ' check the first batch of values to determine the row count - If oRowCount = 0 Then - oRowCount = oPropertyValues.Count - End If - Next - - ' Structure of oPropertyList - ' [ # Propertyname # Row 1 # Row 2 - ' PositionsMenge: [BilledQuantity1, BilledQuantity2, ...], - ' PositionsSteuersatz: [ApplicablePercent1, ApplicablePercent2, ...], - ' ... - ' ] - For oRowIndex = 0 To oRowCount - 1 - _logger.Debug("Processing row {0}", oRowIndex) - - For Each oColumn As KeyValuePair(Of XmlItemProperty, List(Of Object)) In oPropertyList - Dim oTableName As String = oColumn.Key.TableName - Dim oTableColumn As String = oColumn.Key.TableColumn - Dim oIsRequired As Boolean = oColumn.Key.IsRequired - Dim oPropertyDescription As String = oColumn.Key.Description - Dim oRowCounter = oRowIndex + oGlobalGroupCounter + 1 - If IsNothing(oRowCounter) Then - - End If - ' Returns nothing if oColumn.Value contains an empty list - Dim oPropertyValue = oColumn.Value.ElementAtOrDefault(oRowIndex) - - _logger.Debug("Processing itemSpecification *TableColumn* [{0}].", oTableColumn) - - If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then - If oColumn.Key.IsRequired Then - _logger.Warn($"{MessageId} # oPropertyValue for specification [{oTableColumn}] is empty or not found but is required. Continuing with Empty String.") - oResult.MissingProperties.Add(oPropertyDescription) - Else - _logger.Debug($"{MessageId} # oPropertyValue for specification [{oTableColumn}] is empty or not found. Continuing with Empty String.") - End If - - oPropertyValue = String.Empty - End If - - _logger.Debug("ItemSpecification [{0}] has value '{1}'", oTableColumn, oPropertyValue) - - oResult.ValidProperties.Add(New ValidProperty() With { - .MessageId = MessageId, - .Description = oPropertyDescription, - .Value = oPropertyValue, - .GroupCounter = oRowCounter, - .TableName = oTableName, - .TableColumn = oTableColumn, - .ISRequired = oIsRequired - }) - Next - Next - - oGlobalGroupCounter += oRowCount - Next - - ' Iterate through default properties - For Each oItem As KeyValuePair(Of String, XmlItemProperty) In oDefaultProperties - Dim oPropertyValueList As List(Of Object) - Dim oTableColumn As String = oItem.Value.TableColumn - Dim oPropertyValue As Object = Nothing - Dim oTableName = oItem.Value.TableName - Dim oIsRequired = oItem.Value.IsRequired - Dim oDescription = oItem.Value.Description - Try - oPropertyValueList = GetPropValue(Document, oItem.Key) - Catch ex As Exception - _logger.Warn("{2} # Unknown error occurred while fetching specification [{0}] in group [{1}]:", oTableColumn, oItem.Value.GroupScope, MessageId) - _logger.Error(ex) - oPropertyValueList = New List(Of Object) - End Try - - Try - If IsNothing(oPropertyValueList) Then - oPropertyValue = Nothing - ElseIf TypeOf oPropertyValueList Is List(Of Object) Then - Select Case oPropertyValueList.Count - Case 0 - oPropertyValue = Nothing - Case Else - Dim oList As List(Of Object) = DirectCast(oPropertyValueList, List(Of Object)) - oPropertyValue = oList.Item(0) - - ' This should hopefully show config errors - If TypeOf oPropertyValue Is List(Of Object) Then - _logger.Warn("Item with TableColumn [{0}] may be configured incorrectly", oTableColumn) - oPropertyValue = Nothing - End If - End Select - End If - Catch ex As Exception - _logger.Warn("Unknown error occurred while processing specification [{0}]:", oTableColumn) - _logger.Error(ex) - oPropertyValue = Nothing - End Try - - If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then - If oItem.Value.IsRequired Then - _logger.Warn("{0} # Specification [{1}] is empty, but marked as required! Skipping.", MessageId, oTableColumn) - oResult.MissingProperties.Add(oTableColumn) - Continue For - Else - _logger.Debug("{0} # oPropertyValue for specification [{1}] is empty or not found. Skipping.", MessageId, oTableColumn) - - Continue For - End If - End If - - oResult.ValidProperties.Add(New ValidProperty() With { - .MessageId = MessageId, - .Description = oDescription, - .Value = oPropertyValue, - .TableName = oTableName, - .TableColumn = oTableColumn, - .ISRequired = oIsRequired - }) - Next - - Return oResult - End Function - - Public Function GetPropValue(Obj As Object, PropertyName As String) As List(Of Object) - Dim oNameParts As String() = PropertyName.Split("."c) - - If IsNothing(Obj) Then - _logger.Debug("`Obj` is Nothing. Exiting.") - Return New List(Of Object) - End If - - If oNameParts.Length = 1 Then - Dim oPropInfo As PropertyInfo = Obj.GetType().GetProperty(PropertyName) - - If IsNothing(oPropInfo) Then - _logger.Debug("Property [{0}] does not exist(1).", PropertyName) - Return New List(Of Object) - Else - Dim oPropValue = oPropInfo.GetValue(Obj, Nothing) - Return New List(Of Object) From {oPropValue} - End If - End If - - For Each oPart As String In oNameParts - Dim oType As Type = Obj.GetType() - Dim oPartName = oPart - Dim oIndex As Integer = Nothing - Dim oHasIndex As Boolean = HasIndex(oPartName) - - If oHasIndex Then - oPartName = StripIndex(oPart) - oIndex = GetIndex(oPart) - End If - - Dim oInfo As PropertyInfo = oType.GetProperty(oPartName) - - If IsNothing(oInfo) OrElse IsNothing(oInfo.GetValue(Obj, Nothing)) Then - _logger.Debug("Property [{0}] does not exist(2).", oPartName) - Return New List(Of Object) - End If - - Obj = oInfo.GetValue(Obj, Nothing) - - If oHasIndex Then - Obj = Obj(0) - End If - - If IsArray(Obj) And Not oHasIndex Then - Dim oCurrentPart As String = oPart - Dim oSplitString As String() = New String() {oCurrentPart & "."} - Dim oPathFragments = PropertyName.Split(oSplitString, StringSplitOptions.None) - Dim oResults As New List(Of Object) - - ' if path has no more subitems, return an empty list - If oPathFragments.Length = 1 Then - Return oResults - End If - - For Each oArrayItem In Obj - Dim oResult As List(Of Object) = GetPropValue(oArrayItem, oPathFragments(1)) - - If Not IsNothing(oResult) Then - oResults.Add(oResult) - End If - Next - - Return oResults - End If - Next - - Return New List(Of Object) From {Obj} - 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 - If Regex.IsMatch(Prop, _indexPattern) Then - Dim oMatch = _indexRegex.Match(Prop) - Dim oGroup = oMatch.Groups.Item(1) - Dim oValue = oGroup.Value - - Return Integer.Parse(oValue) - End If - - Return Nothing - End Function - - Private Function StripIndex(Prop As String) As String - Return Regex.Replace(Prop, _indexPattern, "") - End Function - - Private Function HasIndex(Prop As String) As Boolean - Return Regex.IsMatch(Prop, _indexPattern) - End Function - -End Class diff --git a/Modules.Interfaces/ZUGFeRDInterface/Version1.0/CrossIndustryDocumentType.vb b/Modules.Interfaces/ZUGFeRDInterface/Version1.0/CrossIndustryDocumentType.vb deleted file mode 100644 index d447f317..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/Version1.0/CrossIndustryDocumentType.vb +++ /dev/null @@ -1,3178 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict Off -Option Explicit On - -Imports System.Xml.Serialization - -' -'This source code was auto-generated by xsd, Version=4.6.1055.0. -' - -Namespace ZUGFeRD.Version1_0 - ''' - - Partial Public Class CrossIndustryDocumentType - - Private specifiedExchangedDocumentContextField As ExchangedDocumentContextType - - Private headerExchangedDocumentField As ExchangedDocumentType - - Private specifiedSupplyChainTradeTransactionField As SupplyChainTradeTransactionType - - ''' - Public Property SpecifiedExchangedDocumentContext() As ExchangedDocumentContextType - Get - Return Me.specifiedExchangedDocumentContextField - End Get - Set - Me.specifiedExchangedDocumentContextField = Value - End Set - End Property - - ''' - Public Property HeaderExchangedDocument() As ExchangedDocumentType - Get - Return Me.headerExchangedDocumentField - End Get - Set - Me.headerExchangedDocumentField = Value - End Set - End Property - - ''' - Public Property SpecifiedSupplyChainTradeTransaction() As SupplyChainTradeTransactionType - Get - Return Me.specifiedSupplyChainTradeTransactionField - End Get - Set - Me.specifiedSupplyChainTradeTransactionField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ExchangedDocumentContextType - - Private testIndicatorField As IndicatorType - - Private businessProcessSpecifiedDocumentContextParameterField() As DocumentContextParameterType - - Private guidelineSpecifiedDocumentContextParameterField() As DocumentContextParameterType - - ''' - Public Property TestIndicator() As IndicatorType - Get - Return Me.testIndicatorField - End Get - Set - Me.testIndicatorField = Value - End Set - End Property - - ''' - - Public Property BusinessProcessSpecifiedDocumentContextParameter() As DocumentContextParameterType() - Get - Return Me.businessProcessSpecifiedDocumentContextParameterField - End Get - Set - Me.businessProcessSpecifiedDocumentContextParameterField = Value - End Set - End Property - - ''' - - Public Property GuidelineSpecifiedDocumentContextParameter() As DocumentContextParameterType() - Get - Return Me.guidelineSpecifiedDocumentContextParameterField - End Get - Set - Me.guidelineSpecifiedDocumentContextParameterField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IndicatorType - - Private itemField As Boolean - - ''' - - Public Property Item() As Boolean - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ReferencedProductType - - Private globalIDField() As IDType - - Private sellerAssignedIDField As IDType - - Private buyerAssignedIDField As IDType - - Private nameField() As TextType - - Private descriptionField() As TextType - - Private unitQuantityField() As QuantityType - - ''' - - Public Property GlobalID() As IDType() - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property SellerAssignedID() As IDType - Get - Return Me.sellerAssignedIDField - End Get - Set - Me.sellerAssignedIDField = Value - End Set - End Property - - ''' - Public Property BuyerAssignedID() As IDType - Get - Return Me.buyerAssignedIDField - End Get - Set - Me.buyerAssignedIDField = Value - End Set - End Property - - ''' - - Public Property Name() As TextType() - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - - Public Property Description() As TextType() - Get - Return Me.descriptionField - End Get - Set - Me.descriptionField = Value - End Set - End Property - - ''' - - Public Property UnitQuantity() As QuantityType() - Get - Return Me.unitQuantityField - End Get - Set - Me.unitQuantityField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IDType - - Private schemeIDField As String - - Private schemeAgencyIDField As String - - Private valueField As String - - ''' - - Public Property schemeID() As String - Get - Return Me.schemeIDField - End Get - Set - Me.schemeIDField = Value - End Set - End Property - - ''' - - Public Property schemeAgencyID() As String - Get - Return Me.schemeAgencyIDField - End Get - Set - Me.schemeAgencyIDField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TextType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class QuantityType - - Private unitCodeField As String - - Private valueField As Decimal - - ''' - - Public Property unitCode() As String - Get - Return Me.unitCodeField - End Get - Set - Me.unitCodeField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ProductClassificationType - - Private classCodeField As CodeType - - Private classNameField() As TextType - - ''' - Public Property ClassCode() As CodeType - Get - Return Me.classCodeField - End Get - Set - Me.classCodeField = Value - End Set - End Property - - ''' - - Public Property ClassName() As TextType() - Get - Return Me.classNameField - End Get - Set - Me.classNameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CodeType - - Private listIDField As String - - Private listVersionIDField As String - - Private valueField As String - - ''' - - Public Property listID() As String - Get - Return Me.listIDField - End Get - Set - Me.listIDField = Value - End Set - End Property - - ''' - - Public Property listVersionID() As String - Get - Return Me.listVersionIDField - End Get - Set - Me.listVersionIDField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ProductCharacteristicType - - Private typeCodeField() As CodeType - - Private descriptionField() As TextType - - Private valueMeasureField() As MeasureType - - Private valueField() As TextType - - ''' - - Public Property TypeCode() As CodeType() - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - - Public Property Description() As TextType() - Get - Return Me.descriptionField - End Get - Set - Me.descriptionField = Value - End Set - End Property - - ''' - - Public Property ValueMeasure() As MeasureType() - Get - Return Me.valueMeasureField - End Get - Set - Me.valueMeasureField = Value - End Set - End Property - - ''' - - Public Property Value() As TextType() - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class MeasureType - - Private unitCodeField As String - - Private valueField As Decimal - - ''' - - Public Property unitCode() As String - Get - Return Me.unitCodeField - End Get - Set - Me.unitCodeField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeProductType - - Private globalIDField() As IDType - - Private sellerAssignedIDField As IDType - - Private buyerAssignedIDField As IDType - - Private nameField() As TextType - - Private descriptionField() As TextType - - Private applicableProductCharacteristicField() As ProductCharacteristicType - - Private designatedProductClassificationField() As ProductClassificationType - - Private originTradeCountryField() As CountryIDType - - Private includedReferencedProductField() As ReferencedProductType - - ''' - - Public Property GlobalID() As IDType() - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property SellerAssignedID() As IDType - Get - Return Me.sellerAssignedIDField - End Get - Set - Me.sellerAssignedIDField = Value - End Set - End Property - - ''' - Public Property BuyerAssignedID() As IDType - Get - Return Me.buyerAssignedIDField - End Get - Set - Me.buyerAssignedIDField = Value - End Set - End Property - - ''' - - Public Property Name() As TextType() - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - - Public Property Description() As TextType() - Get - Return Me.descriptionField - End Get - Set - Me.descriptionField = Value - End Set - End Property - - ''' - - Public Property ApplicableProductCharacteristic() As ProductCharacteristicType() - Get - Return Me.applicableProductCharacteristicField - End Get - Set - Me.applicableProductCharacteristicField = Value - End Set - End Property - - ''' - - Public Property DesignatedProductClassification() As ProductClassificationType() - Get - Return Me.designatedProductClassificationField - End Get - Set - Me.designatedProductClassificationField = Value - End Set - End Property - - ''' - - Public Property OriginTradeCountry As CountryIDType() - Get - Return Me.originTradeCountryField - End Get - Set - Me.originTradeCountryField = Value - End Set - End Property - - ''' - - Public Property IncludedReferencedProduct() As ReferencedProductType() - Get - Return Me.includedReferencedProductField - End Get - Set - Me.includedReferencedProductField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CountryIDType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentLineDocumentType - - Private lineIDField As IDType - - Private includedNoteField() As NoteType - - ''' - Public Property LineID() As IDType - Get - Return Me.lineIDField - End Get - Set - Me.lineIDField = Value - End Set - End Property - - ''' - - Public Property IncludedNote() As NoteType() - Get - Return Me.includedNoteField - End Get - Set - Me.includedNoteField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class NoteType - - Private contentCodeField() As CodeType - - Private contentField() As TextType - - Private subjectCodeField As CodeType - - ''' - - Public Property ContentCode() As CodeType() - Get - Return Me.contentCodeField - End Get - Set - Me.contentCodeField = Value - End Set - End Property - - ''' - - Public Property Content() As TextType() - Get - Return Me.contentField - End Get - Set - Me.contentField = Value - End Set - End Property - - ''' - Public Property SubjectCode() As CodeType - Get - Return Me.subjectCodeField - End Get - Set - Me.subjectCodeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeLineItemType - - Private associatedDocumentLineDocumentField As DocumentLineDocumentType - - Private specifiedSupplyChainTradeAgreementField As SupplyChainTradeAgreementType - - Private specifiedSupplyChainTradeDeliveryField As SupplyChainTradeDeliveryType - - Private specifiedSupplyChainTradeSettlementField As SupplyChainTradeSettlementType - - Private specifiedTradeProductField As TradeProductType - - ''' - Public Property AssociatedDocumentLineDocument() As DocumentLineDocumentType - Get - Return Me.associatedDocumentLineDocumentField - End Get - Set - Me.associatedDocumentLineDocumentField = Value - End Set - End Property - - ''' - Public Property SpecifiedSupplyChainTradeAgreement() As SupplyChainTradeAgreementType - Get - Return Me.specifiedSupplyChainTradeAgreementField - End Get - Set - Me.specifiedSupplyChainTradeAgreementField = Value - End Set - End Property - - ''' - Public Property SpecifiedSupplyChainTradeDelivery() As SupplyChainTradeDeliveryType - Get - Return Me.specifiedSupplyChainTradeDeliveryField - End Get - Set - Me.specifiedSupplyChainTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property SpecifiedSupplyChainTradeSettlement() As SupplyChainTradeSettlementType - Get - Return Me.specifiedSupplyChainTradeSettlementField - End Get - Set - Me.specifiedSupplyChainTradeSettlementField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeProduct() As TradeProductType - Get - Return Me.specifiedTradeProductField - End Get - Set - Me.specifiedTradeProductField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeAgreementType - - Private buyerReferenceField() As TextType - - Private sellerTradePartyField As TradePartyType - - Private buyerTradePartyField As TradePartyType - - Private productEndUserTradePartyField As TradePartyType - - Private applicableTradeDeliveryTermsField As TradeDeliveryTermsType - - Private buyerOrderReferencedDocumentField() As ReferencedDocumentType - - Private contractReferencedDocumentField() As ReferencedDocumentType - - Private additionalReferencedDocumentField() As ReferencedDocumentType - - Private grossPriceProductTradePriceField() As TradePriceType - - Private netPriceProductTradePriceField() As TradePriceType - - Private customerOrderReferencedDocumentField() As ReferencedDocumentType - - ''' - - Public Property BuyerReference() As TextType() - Get - Return Me.buyerReferenceField - End Get - Set - Me.buyerReferenceField = Value - End Set - End Property - - ''' - Public Property SellerTradeParty() As TradePartyType - Get - Return Me.sellerTradePartyField - End Get - Set - Me.sellerTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerTradeParty() As TradePartyType - Get - Return Me.buyerTradePartyField - End Get - Set - Me.buyerTradePartyField = Value - End Set - End Property - - ''' - Public Property ProductEndUserTradeParty() As TradePartyType - Get - Return Me.productEndUserTradePartyField - End Get - Set - Me.productEndUserTradePartyField = Value - End Set - End Property - - ''' - Public Property ApplicableTradeDeliveryTerms() As TradeDeliveryTermsType - Get - Return Me.applicableTradeDeliveryTermsField - End Get - Set - Me.applicableTradeDeliveryTermsField = Value - End Set - End Property - - ''' - - Public Property BuyerOrderReferencedDocument() As ReferencedDocumentType() - Get - Return Me.buyerOrderReferencedDocumentField - End Get - Set - Me.buyerOrderReferencedDocumentField = Value - End Set - End Property - - ''' - - Public Property ContractReferencedDocument() As ReferencedDocumentType() - Get - Return Me.contractReferencedDocumentField - End Get - Set - Me.contractReferencedDocumentField = Value - End Set - End Property - - ''' - - Public Property AdditionalReferencedDocument() As ReferencedDocumentType() - Get - Return Me.additionalReferencedDocumentField - End Get - Set - Me.additionalReferencedDocumentField = Value - End Set - End Property - - ''' - - Public Property GrossPriceProductTradePrice() As TradePriceType() - Get - Return Me.grossPriceProductTradePriceField - End Get - Set - Me.grossPriceProductTradePriceField = Value - End Set - End Property - - ''' - - Public Property NetPriceProductTradePrice() As TradePriceType() - Get - Return Me.netPriceProductTradePriceField - End Get - Set - Me.netPriceProductTradePriceField = Value - End Set - End Property - - ''' - - Public Property CustomerOrderReferencedDocument() As ReferencedDocumentType() - Get - Return Me.customerOrderReferencedDocumentField - End Get - Set - Me.customerOrderReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePartyType - - Private idField() As IDType - - Private globalIDField() As IDType - - Private nameField As TextType - - Private definedTradeContactField() As TradeContactType - - Private postalTradeAddressField As TradeAddressType - - Private specifiedTaxRegistrationField() As TaxRegistrationType - - ''' - - Public Property ID() As IDType() - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - - Public Property GlobalID() As IDType() - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - - Public Property DefinedTradeContact() As TradeContactType() - Get - Return Me.definedTradeContactField - End Get - Set - Me.definedTradeContactField = Value - End Set - End Property - - ''' - Public Property PostalTradeAddress() As TradeAddressType - Get - Return Me.postalTradeAddressField - End Get - Set - Me.postalTradeAddressField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTaxRegistration() As TaxRegistrationType() - Get - Return Me.specifiedTaxRegistrationField - End Get - Set - Me.specifiedTaxRegistrationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeContactType - - Private personNameField As TextType - - Private departmentNameField As TextType - - Private telephoneUniversalCommunicationField() As UniversalCommunicationType - - Private faxUniversalCommunicationField() As UniversalCommunicationType - - Private emailURIUniversalCommunicationField As UniversalCommunicationType - - ''' - Public Property PersonName() As TextType - Get - Return Me.personNameField - End Get - Set - Me.personNameField = Value - End Set - End Property - - ''' - Public Property DepartmentName() As TextType - Get - Return Me.departmentNameField - End Get - Set - Me.departmentNameField = Value - End Set - End Property - - ''' - - Public Property TelephoneUniversalCommunication() As UniversalCommunicationType() - Get - Return Me.telephoneUniversalCommunicationField - End Get - Set - Me.telephoneUniversalCommunicationField = Value - End Set - End Property - - ''' - - Public Property FaxUniversalCommunication() As UniversalCommunicationType() - Get - Return Me.faxUniversalCommunicationField - End Get - Set - Me.faxUniversalCommunicationField = Value - End Set - End Property - - ''' - Public Property EmailURIUniversalCommunication() As UniversalCommunicationType - Get - Return Me.emailURIUniversalCommunicationField - End Get - Set - Me.emailURIUniversalCommunicationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class UniversalCommunicationType - - Private uRIIDField As IDType - - Private completeNumberField As TextType - - ''' - Public Property URIID() As IDType - Get - Return Me.uRIIDField - End Get - Set - Me.uRIIDField = Value - End Set - End Property - - ''' - Public Property CompleteNumber() As TextType - Get - Return Me.completeNumberField - End Get - Set - Me.completeNumberField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAddressType - - Private postcodeCodeField() As CodeType - - Private lineOneField As TextType - - Private lineTwoField As TextType - - Private cityNameField As TextType - - Private countryIDField As CountryIDType - - ''' - - Public Property PostcodeCode() As CodeType() - Get - Return Me.postcodeCodeField - End Get - Set - Me.postcodeCodeField = Value - End Set - End Property - - ''' - Public Property LineOne() As TextType - Get - Return Me.lineOneField - End Get - Set - Me.lineOneField = Value - End Set - End Property - - ''' - Public Property LineTwo() As TextType - Get - Return Me.lineTwoField - End Get - Set - Me.lineTwoField = Value - End Set - End Property - - ''' - Public Property CityName() As TextType - Get - Return Me.cityNameField - End Get - Set - Me.cityNameField = Value - End Set - End Property - - ''' - Public Property CountryID() As CountryIDType - Get - Return Me.countryIDField - End Get - Set - Me.countryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxRegistrationType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeDeliveryTermsType - - Private deliveryTypeCodeField As DeliveryTermsCodeType - - ''' - Public Property DeliveryTypeCode() As DeliveryTermsCodeType - Get - Return Me.deliveryTypeCodeField - End Get - Set - Me.deliveryTypeCodeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DeliveryTermsCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ReferencedDocumentType - - Private issueDateTimeField As String - - Private lineIDField As IDType - - Private typeCodeField As DocumentCodeType - - Private idField() As IDType - - Private referenceTypeCodeField As ReferenceCodeType - - ''' - Public Property IssueDateTime() As String - Get - Return Me.issueDateTimeField - End Get - Set - Me.issueDateTimeField = Value - End Set - End Property - - ''' - Public Property LineID() As IDType - Get - Return Me.lineIDField - End Get - Set - Me.lineIDField = Value - End Set - End Property - - ''' - Public Property TypeCode() As DocumentCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - - Public Property ID() As IDType() - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property ReferenceTypeCode() As ReferenceCodeType - Get - Return Me.referenceTypeCodeField - End Get - Set - Me.referenceTypeCodeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ReferenceCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePriceType - - Private chargeAmountField() As AmountType - - Private basisQuantityField As QuantityType - - Private appliedTradeAllowanceChargeField() As TradeAllowanceChargeType - - ''' - - Public Property ChargeAmount() As AmountType() - Get - Return Me.chargeAmountField - End Get - Set - Me.chargeAmountField = Value - End Set - End Property - - ''' - Public Property BasisQuantity() As QuantityType - Get - Return Me.basisQuantityField - End Get - Set - Me.basisQuantityField = Value - End Set - End Property - - ''' - - Public Property AppliedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.appliedTradeAllowanceChargeField - End Get - Set - Me.appliedTradeAllowanceChargeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AmountType - - Private currencyIDField As String - - Private valueField As Decimal - - ''' - - Public Property currencyID() As String - Get - Return Me.currencyIDField - End Get - Set - Me.currencyIDField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAllowanceChargeType - - Private chargeIndicatorField As IndicatorType - - Private sequenceNumericField As NumericType - - Private calculationPercentField As PercentType - - Private basisAmountField As AmountType - - Private basisQuantityField As QuantityType - - Private actualAmountField() As AmountType - - Private reasonCodeField As AllowanceChargeReasonCodeType - - Private reasonField As TextType - - Private categoryTradeTaxField() As TradeTaxType - - ''' - Public Property ChargeIndicator() As IndicatorType - Get - Return Me.chargeIndicatorField - End Get - Set - Me.chargeIndicatorField = Value - End Set - End Property - - ''' - Public Property SequenceNumeric() As NumericType - Get - Return Me.sequenceNumericField - End Get - Set - Me.sequenceNumericField = Value - End Set - End Property - - ''' - Public Property CalculationPercent() As PercentType - Get - Return Me.calculationPercentField - End Get - Set - Me.calculationPercentField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property BasisQuantity() As QuantityType - Get - Return Me.basisQuantityField - End Get - Set - Me.basisQuantityField = Value - End Set - End Property - - ''' - - Public Property ActualAmount() As AmountType() - Get - Return Me.actualAmountField - End Get - Set - Me.actualAmountField = Value - End Set - End Property - - ''' - Public Property ReasonCode() As AllowanceChargeReasonCodeType - Get - Return Me.reasonCodeField - End Get - Set - Me.reasonCodeField = Value - End Set - End Property - - ''' - Public Property Reason() As TextType - Get - Return Me.reasonField - End Get - Set - Me.reasonField = Value - End Set - End Property - - ''' - - Public Property CategoryTradeTax() As TradeTaxType() - Get - Return Me.categoryTradeTaxField - End Get - Set - Me.categoryTradeTaxField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class NumericType - - Private valueField As Decimal - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class PercentType - - Private valueField As Decimal - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AllowanceChargeReasonCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeTaxType - - Private calculatedAmountField() As AmountType - - Private typeCodeField As TaxTypeCodeType - - Private exemptionReasonField As TextType - - Private basisAmountField() As AmountType - - Private lineTotalBasisAmountField() As AmountType - - Private allowanceChargeBasisAmountField() As AmountType - - Private categoryCodeField As TaxCategoryCodeType - - Private applicablePercentField As PercentType - - ''' - - Public Property CalculatedAmount() As AmountType() - Get - Return Me.calculatedAmountField - End Get - Set - Me.calculatedAmountField = Value - End Set - End Property - - ''' - Public Property TypeCode() As TaxTypeCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReason() As TextType - Get - Return Me.exemptionReasonField - End Get - Set - Me.exemptionReasonField = Value - End Set - End Property - - ''' - - Public Property BasisAmount() As AmountType() - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - - Public Property LineTotalBasisAmount() As AmountType() - Get - Return Me.lineTotalBasisAmountField - End Get - Set - Me.lineTotalBasisAmountField = Value - End Set - End Property - - ''' - - Public Property AllowanceChargeBasisAmount() As AmountType() - Get - Return Me.allowanceChargeBasisAmountField - End Get - Set - Me.allowanceChargeBasisAmountField = Value - End Set - End Property - - ''' - Public Property CategoryCode() As TaxCategoryCodeType - Get - Return Me.categoryCodeField - End Get - Set - Me.categoryCodeField = Value - End Set - End Property - - ''' - Public Property ApplicablePercent() As PercentType - Get - Return Me.applicablePercentField - End Get - Set - Me.applicablePercentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxTypeCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxCategoryCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeDeliveryType - - Private billedQuantityField As QuantityType - - Private chargeFreeQuantityField As QuantityType - - Private packageQuantityField As QuantityType - - Private relatedSupplyChainConsignmentField() As LogisticsTransportMovementType - - Private shipToTradePartyField As TradePartyType - - Private ultimateShipToTradePartyField As TradePartyType - - Private shipFromTradePartyField As TradePartyType - - Private actualDeliverySupplyChainEventField() As DateTimeType - - Private despatchAdviceReferencedDocumentField As ReferencedDocumentType - - Private receivingAdviceReferencedDocumentField() As ReferencedDocumentType - - Private deliveryNoteReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property BilledQuantity() As QuantityType - Get - Return Me.billedQuantityField - End Get - Set - Me.billedQuantityField = Value - End Set - End Property - - ''' - Public Property ChargeFreeQuantity() As QuantityType - Get - Return Me.chargeFreeQuantityField - End Get - Set - Me.chargeFreeQuantityField = Value - End Set - End Property - - ''' - Public Property PackageQuantity() As QuantityType - Get - Return Me.packageQuantityField - End Get - Set - Me.packageQuantityField = Value - End Set - End Property - - ''' - - Public Property RelatedSupplyChainConsignment() As LogisticsTransportMovementType() - Get - Return Me.relatedSupplyChainConsignmentField - End Get - Set - Me.relatedSupplyChainConsignmentField = Value - End Set - End Property - - ''' - Public Property ShipToTradeParty() As TradePartyType - Get - Return Me.shipToTradePartyField - End Get - Set - Me.shipToTradePartyField = Value - End Set - End Property - - ''' - Public Property UltimateShipToTradeParty() As TradePartyType - Get - Return Me.ultimateShipToTradePartyField - End Get - Set - Me.ultimateShipToTradePartyField = Value - End Set - End Property - - ''' - Public Property ShipFromTradeParty() As TradePartyType - Get - Return Me.shipFromTradePartyField - End Get - Set - Me.shipFromTradePartyField = Value - End Set - End Property - - ''' - - Public Property ActualDeliverySupplyChainEvent() As DateTimeType() - Get - Return Me.actualDeliverySupplyChainEventField - End Get - Set - Me.actualDeliverySupplyChainEventField = Value - End Set - End Property - - ''' - Public Property DespatchAdviceReferencedDocument() As ReferencedDocumentType - Get - Return Me.despatchAdviceReferencedDocumentField - End Get - Set - Me.despatchAdviceReferencedDocumentField = Value - End Set - End Property - - ''' - - Public Property ReceivingAdviceReferencedDocument() As ReferencedDocumentType() - Get - Return Me.receivingAdviceReferencedDocumentField - End Get - Set - Me.receivingAdviceReferencedDocumentField = Value - End Set - End Property - - ''' - Public Property DeliveryNoteReferencedDocument() As ReferencedDocumentType - Get - Return Me.deliveryNoteReferencedDocumentField - End Get - Set - Me.deliveryNoteReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LogisticsTransportMovementType - - Private modeCodeField As CodeType - - Private idField As IDType - - ''' - Public Property ModeCode() As CodeType - Get - Return Me.modeCodeField - End Get - Set - Me.modeCodeField = Value - End Set - End Property - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeType - - Private itemField As DateTimeTypeDateTimeString - - ''' - - Public Property Item() As DateTimeTypeDateTimeString - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeSettlementType - - Private paymentReferenceField() As TextType - - Private invoiceCurrencyCodeField As CodeType - - Private invoiceeTradePartyField As TradePartyType - - Private payeeTradePartyField() As TradePartyType - - Private specifiedTradeSettlementPaymentMeansField() As TradeSettlementPaymentMeansType - - Private applicableTradeTaxField() As TradeTaxType - - Private billingSpecifiedPeriodField() As SpecifiedPeriodType - - Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType - - Private specifiedLogisticsServiceChargeField() As LogisticsServiceChargeType - - Private specifiedTradePaymentTermsField() As TradePaymentTermsType - - Private specifiedTradeAccountingAccountField() As TradeAccountingAccountType - - Private specifiedTradeSettlementMonetarySummationField As TradeSettlementMonetarySummationType - - Private receivableSpecifiedTradeAccountingAccountField() As TradeAccountingAccountType - - ''' - - Public Property PaymentReference() As TextType() - Get - Return Me.paymentReferenceField - End Get - Set - Me.paymentReferenceField = Value - End Set - End Property - - ''' - Public Property InvoiceCurrencyCode() As CodeType - Get - Return Me.invoiceCurrencyCodeField - End Get - Set - Me.invoiceCurrencyCodeField = Value - End Set - End Property - - ''' - Public Property InvoiceeTradeParty() As TradePartyType - Get - Return Me.invoiceeTradePartyField - End Get - Set - Me.invoiceeTradePartyField = Value - End Set - End Property - - ''' - - Public Property PayeeTradeParty() As TradePartyType() - Get - Return Me.payeeTradePartyField - End Get - Set - Me.payeeTradePartyField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeSettlementPaymentMeans() As TradeSettlementPaymentMeansType() - Get - Return Me.specifiedTradeSettlementPaymentMeansField - End Get - Set - Me.specifiedTradeSettlementPaymentMeansField = Value - End Set - End Property - - ''' - - Public Property ApplicableTradeTax() As TradeTaxType() - Get - Return Me.applicableTradeTaxField - End Get - Set - Me.applicableTradeTaxField = Value - End Set - End Property - - ''' - - Public Property BillingSpecifiedPeriod() As SpecifiedPeriodType() - Get - Return Me.billingSpecifiedPeriodField - End Get - Set - Me.billingSpecifiedPeriodField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.specifiedTradeAllowanceChargeField - End Get - Set - Me.specifiedTradeAllowanceChargeField = Value - End Set - End Property - - ''' - - Public Property SpecifiedLogisticsServiceCharge() As LogisticsServiceChargeType() - Get - Return Me.specifiedLogisticsServiceChargeField - End Get - Set - Me.specifiedLogisticsServiceChargeField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradePaymentTerms() As TradePaymentTermsType() - Get - Return Me.specifiedTradePaymentTermsField - End Get - Set - Me.specifiedTradePaymentTermsField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAccountingAccount() As TradeAccountingAccountType() - Get - Return Me.specifiedTradeAccountingAccountField - End Get - Set - Me.specifiedTradeAccountingAccountField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementMonetarySummation() As TradeSettlementMonetarySummationType - Get - Return Me.specifiedTradeSettlementMonetarySummationField - End Get - Set - Me.specifiedTradeSettlementMonetarySummationField = Value - End Set - End Property - - ''' - - Public Property ReceivableSpecifiedTradeAccountingAccount() As TradeAccountingAccountType() - Get - Return Me.receivableSpecifiedTradeAccountingAccountField - End Get - Set - Me.receivableSpecifiedTradeAccountingAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementPaymentMeansType - - Private typeCodeField As PaymentMeansCodeType - - Private informationField() As TextType - - Private idField() As IDType - - Private payerPartyDebtorFinancialAccountField As DebtorFinancialAccountType - - Private payeePartyCreditorFinancialAccountField As CreditorFinancialAccountType - - Private payerSpecifiedDebtorFinancialInstitutionField As DebtorFinancialInstitutionType - - Private payeeSpecifiedCreditorFinancialInstitutionField As CreditorFinancialInstitutionType - - ''' - Public Property TypeCode() As PaymentMeansCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - - Public Property Information() As TextType() - Get - Return Me.informationField - End Get - Set - Me.informationField = Value - End Set - End Property - - ''' - - Public Property ID() As IDType() - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property PayerPartyDebtorFinancialAccount() As DebtorFinancialAccountType - Get - Return Me.payerPartyDebtorFinancialAccountField - End Get - Set - Me.payerPartyDebtorFinancialAccountField = Value - End Set - End Property - - ''' - Public Property PayeePartyCreditorFinancialAccount() As CreditorFinancialAccountType - Get - Return Me.payeePartyCreditorFinancialAccountField - End Get - Set - Me.payeePartyCreditorFinancialAccountField = Value - End Set - End Property - - ''' - Public Property PayerSpecifiedDebtorFinancialInstitution() As DebtorFinancialInstitutionType - Get - Return Me.payerSpecifiedDebtorFinancialInstitutionField - End Get - Set - Me.payerSpecifiedDebtorFinancialInstitutionField = Value - End Set - End Property - - ''' - Public Property PayeeSpecifiedCreditorFinancialInstitution() As CreditorFinancialInstitutionType - Get - Return Me.payeeSpecifiedCreditorFinancialInstitutionField - End Get - Set - Me.payeeSpecifiedCreditorFinancialInstitutionField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class PaymentMeansCodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DebtorFinancialAccountType - - Private iBANIDField As IDType - - Private proprietaryIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - - ''' - Public Property ProprietaryID() As IDType - Get - Return Me.proprietaryIDField - End Get - Set - Me.proprietaryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CreditorFinancialAccountType - - Private iBANIDField As IDType - - Private accountNameField As TextType - - Private proprietaryIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - - ''' - Public Property AccountName() As TextType - Get - Return Me.accountNameField - End Get - Set - Me.accountNameField = Value - End Set - End Property - - ''' - Public Property ProprietaryID() As IDType - Get - Return Me.proprietaryIDField - End Get - Set - Me.proprietaryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DebtorFinancialInstitutionType - - Private bICIDField As IDType - - Private germanBankleitzahlIDField As IDType - - Private nameField As TextType - - ''' - Public Property BICID() As IDType - Get - Return Me.bICIDField - End Get - Set - Me.bICIDField = Value - End Set - End Property - - ''' - Public Property GermanBankleitzahlID() As IDType - Get - Return Me.germanBankleitzahlIDField - End Get - Set - Me.germanBankleitzahlIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CreditorFinancialInstitutionType - - Private bICIDField As IDType - - Private germanBankleitzahlIDField As IDType - - Private nameField As TextType - - ''' - Public Property BICID() As IDType - Get - Return Me.bICIDField - End Get - Set - Me.bICIDField = Value - End Set - End Property - - ''' - Public Property GermanBankleitzahlID() As IDType - Get - Return Me.germanBankleitzahlIDField - End Get - Set - Me.germanBankleitzahlIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SpecifiedPeriodType - - Private startDateTimeField As DateTimeType - - Private endDateTimeField As DateTimeType - - Private completeDateTimeField As DateTimeType - - ''' - Public Property StartDateTime() As DateTimeType - Get - Return Me.startDateTimeField - End Get - Set - Me.startDateTimeField = Value - End Set - End Property - - ''' - Public Property EndDateTime() As DateTimeType - Get - Return Me.endDateTimeField - End Get - Set - Me.endDateTimeField = Value - End Set - End Property - - ''' - Public Property CompleteDateTime() As DateTimeType - Get - Return Me.completeDateTimeField - End Get - Set - Me.completeDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LogisticsServiceChargeType - - Private descriptionField() As TextType - - Private appliedAmountField() As AmountType - - Private appliedTradeTaxField() As TradeTaxType - - ''' - - Public Property Description() As TextType() - Get - Return Me.descriptionField - End Get - Set - Me.descriptionField = Value - End Set - End Property - - ''' - - Public Property AppliedAmount() As AmountType() - Get - Return Me.appliedAmountField - End Get - Set - Me.appliedAmountField = Value - End Set - End Property - - ''' - - Public Property AppliedTradeTax() As TradeTaxType() - Get - Return Me.appliedTradeTaxField - End Get - Set - Me.appliedTradeTaxField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePaymentTermsType - - Private descriptionField() As TextType - - Private dueDateDateTimeField As DateTimeType - - Private partialPaymentAmountField() As AmountType - - Private applicableTradePaymentPenaltyTermsField() As TradePaymentPenaltyTermsType - - Private applicableTradePaymentDiscountTermsField() As TradePaymentDiscountTermsType - - ''' - - Public Property Description() As TextType() - Get - Return Me.descriptionField - End Get - Set - Me.descriptionField = Value - End Set - End Property - - ''' - Public Property DueDateDateTime() As DateTimeType - Get - Return Me.dueDateDateTimeField - End Get - Set - Me.dueDateDateTimeField = Value - End Set - End Property - - ''' - - Public Property PartialPaymentAmount() As AmountType() - Get - Return Me.partialPaymentAmountField - End Get - Set - Me.partialPaymentAmountField = Value - End Set - End Property - - ''' - - Public Property ApplicableTradePaymentPenaltyTerms() As TradePaymentPenaltyTermsType() - Get - Return Me.applicableTradePaymentPenaltyTermsField - End Get - Set - Me.applicableTradePaymentPenaltyTermsField = Value - End Set - End Property - - ''' - - Public Property ApplicableTradePaymentDiscountTerms() As TradePaymentDiscountTermsType() - Get - Return Me.applicableTradePaymentDiscountTermsField - End Get - Set - Me.applicableTradePaymentDiscountTermsField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePaymentPenaltyTermsType - - Private basisDateTimeField As DateTimeType - - Private basisPeriodMeasureField As MeasureType - - Private basisAmountField() As AmountType - - Private calculationPercentField As PercentType - - Private actualPenaltyAmountField() As AmountType - - ''' - Public Property BasisDateTime() As DateTimeType - Get - Return Me.basisDateTimeField - End Get - Set - Me.basisDateTimeField = Value - End Set - End Property - - ''' - Public Property BasisPeriodMeasure() As MeasureType - Get - Return Me.basisPeriodMeasureField - End Get - Set - Me.basisPeriodMeasureField = Value - End Set - End Property - - ''' - - Public Property BasisAmount() As AmountType() - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property CalculationPercent() As PercentType - Get - Return Me.calculationPercentField - End Get - Set - Me.calculationPercentField = Value - End Set - End Property - - ''' - - Public Property ActualPenaltyAmount() As AmountType() - Get - Return Me.actualPenaltyAmountField - End Get - Set - Me.actualPenaltyAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePaymentDiscountTermsType - - Private basisDateTimeField As DateTimeType - - Private basisPeriodMeasureField As MeasureType - - Private basisAmountField() As AmountType - - Private calculationPercentField As PercentType - - Private actualDiscountAmountField() As AmountType - - ''' - Public Property BasisDateTime() As DateTimeType - Get - Return Me.basisDateTimeField - End Get - Set - Me.basisDateTimeField = Value - End Set - End Property - - ''' - Public Property BasisPeriodMeasure() As MeasureType - Get - Return Me.basisPeriodMeasureField - End Get - Set - Me.basisPeriodMeasureField = Value - End Set - End Property - - ''' - - Public Property BasisAmount() As AmountType() - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property CalculationPercent() As PercentType - Get - Return Me.calculationPercentField - End Get - Set - Me.calculationPercentField = Value - End Set - End Property - - ''' - - Public Property ActualDiscountAmount() As AmountType() - Get - Return Me.actualDiscountAmountField - End Get - Set - Me.actualDiscountAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAccountingAccountType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementMonetarySummationType - - Private lineTotalAmountField() As AmountType - - Private chargeTotalAmountField() As AmountType - - Private allowanceTotalAmountField() As AmountType - - Private taxBasisTotalAmountField() As AmountType - - Private taxTotalAmountField() As AmountType - - Private grandTotalAmountField() As AmountType - - Private totalPrepaidAmountField() As AmountType - - Private totalAllowanceChargeAmountField() As AmountType - - Private duePayableAmountField() As AmountType - - ''' - - Public Property LineTotalAmount() As AmountType() - Get - Return Me.lineTotalAmountField - End Get - Set - Me.lineTotalAmountField = Value - End Set - End Property - - ''' - - Public Property ChargeTotalAmount() As AmountType() - Get - Return Me.chargeTotalAmountField - End Get - Set - Me.chargeTotalAmountField = Value - End Set - End Property - - ''' - - Public Property AllowanceTotalAmount() As AmountType() - Get - Return Me.allowanceTotalAmountField - End Get - Set - Me.allowanceTotalAmountField = Value - End Set - End Property - - ''' - - Public Property TaxBasisTotalAmount() As AmountType() - Get - Return Me.taxBasisTotalAmountField - End Get - Set - Me.taxBasisTotalAmountField = Value - End Set - End Property - - ''' - - Public Property TaxTotalAmount() As AmountType() - Get - Return Me.taxTotalAmountField - End Get - Set - Me.taxTotalAmountField = Value - End Set - End Property - - ''' - - Public Property GrandTotalAmount() As AmountType() - Get - Return Me.grandTotalAmountField - End Get - Set - Me.grandTotalAmountField = Value - End Set - End Property - - ''' - - Public Property TotalPrepaidAmount() As AmountType() - Get - Return Me.totalPrepaidAmountField - End Get - Set - Me.totalPrepaidAmountField = Value - End Set - End Property - - ''' - - Public Property TotalAllowanceChargeAmount() As AmountType() - Get - Return Me.totalAllowanceChargeAmountField - End Get - Set - Me.totalAllowanceChargeAmountField = Value - End Set - End Property - - ''' - - Public Property DuePayableAmount() As AmountType() - Get - Return Me.duePayableAmountField - End Get - Set - Me.duePayableAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeTransactionType - - Private applicableSupplyChainTradeAgreementField() As SupplyChainTradeAgreementType - - Private applicableSupplyChainTradeDeliveryField As SupplyChainTradeDeliveryType - - Private applicableSupplyChainTradeSettlementField As SupplyChainTradeSettlementType - - Private includedSupplyChainTradeLineItemField() As SupplyChainTradeLineItemType - - ''' - - Public Property ApplicableSupplyChainTradeAgreement() As SupplyChainTradeAgreementType() - Get - Return Me.applicableSupplyChainTradeAgreementField - End Get - Set - Me.applicableSupplyChainTradeAgreementField = Value - End Set - End Property - - ''' - Public Property ApplicableSupplyChainTradeDelivery() As SupplyChainTradeDeliveryType - Get - Return Me.applicableSupplyChainTradeDeliveryField - End Get - Set - Me.applicableSupplyChainTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property ApplicableSupplyChainTradeSettlement() As SupplyChainTradeSettlementType - Get - Return Me.applicableSupplyChainTradeSettlementField - End Get - Set - Me.applicableSupplyChainTradeSettlementField = Value - End Set - End Property - - ''' - - Public Property IncludedSupplyChainTradeLineItem() As SupplyChainTradeLineItemType() - Get - Return Me.includedSupplyChainTradeLineItemField - End Get - Set - Me.includedSupplyChainTradeLineItemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ExchangedDocumentType - - Private idField As IDType - - Private nameField() As TextType - - Private typeCodeField As DocumentCodeType - - Private issueDateTimeField As DateTimeType - - Private copyIndicatorField As IndicatorType - - Private languageIDField() As IDType - - Private includedNoteField() As NoteType - - Private effectiveSpecifiedPeriodField As SpecifiedPeriodType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - - Public Property Name() As TextType() - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - Public Property TypeCode() As DocumentCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property IssueDateTime() As DateTimeType - Get - Return Me.issueDateTimeField - End Get - Set - Me.issueDateTimeField = Value - End Set - End Property - - ''' - Public Property CopyIndicator() As IndicatorType - Get - Return Me.copyIndicatorField - End Get - Set - Me.copyIndicatorField = Value - End Set - End Property - - ''' - - Public Property LanguageID() As IDType() - Get - Return Me.languageIDField - End Get - Set - Me.languageIDField = Value - End Set - End Property - - ''' - - Public Property IncludedNote() As NoteType() - Get - Return Me.includedNoteField - End Get - Set - Me.includedNoteField = Value - End Set - End Property - - ''' - Public Property EffectiveSpecifiedPeriod() As SpecifiedPeriodType - Get - Return Me.effectiveSpecifiedPeriodField - End Get - Set - Me.effectiveSpecifiedPeriodField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentContextParameterType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class -End Namespace diff --git a/Modules.Interfaces/ZUGFeRDInterface/Version2.0/CrossIndustryInvoiceType.vb b/Modules.Interfaces/ZUGFeRDInterface/Version2.0/CrossIndustryInvoiceType.vb deleted file mode 100644 index 1649a980..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/Version2.0/CrossIndustryInvoiceType.vb +++ /dev/null @@ -1,3749 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict Off -Option Explicit On - -Imports System.Xml.Serialization - - -Namespace ZUGFeRD.Version2_0 - ' - 'This source code was auto-generated by xsd, Version=4.6.1055.0. - ' - - ''' - - Partial Public Class CrossIndustryInvoiceType - - Private exchangedDocumentContextField As ExchangedDocumentContextType - - Private exchangedDocumentField As ExchangedDocumentType - - Private supplyChainTradeTransactionField As SupplyChainTradeTransactionType - - ''' - Public Property ExchangedDocumentContext() As ExchangedDocumentContextType - Get - Return Me.exchangedDocumentContextField - End Get - Set - Me.exchangedDocumentContextField = Value - End Set - End Property - - ''' - Public Property ExchangedDocument() As ExchangedDocumentType - Get - Return Me.exchangedDocumentField - End Get - Set - Me.exchangedDocumentField = Value - End Set - End Property - - ''' - Public Property SupplyChainTradeTransaction() As SupplyChainTradeTransactionType - Get - Return Me.supplyChainTradeTransactionField - End Get - Set - Me.supplyChainTradeTransactionField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ExchangedDocumentContextType - - Private businessProcessSpecifiedDocumentContextParameterField As DocumentContextParameterType - - Private guidelineSpecifiedDocumentContextParameterField As DocumentContextParameterType - - ''' - Public Property BusinessProcessSpecifiedDocumentContextParameter() As DocumentContextParameterType - Get - Return Me.businessProcessSpecifiedDocumentContextParameterField - End Get - Set - Me.businessProcessSpecifiedDocumentContextParameterField = Value - End Set - End Property - - ''' - Public Property GuidelineSpecifiedDocumentContextParameter() As DocumentContextParameterType - Get - Return Me.guidelineSpecifiedDocumentContextParameterField - End Get - Set - Me.guidelineSpecifiedDocumentContextParameterField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentContextParameterType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IDType - - Private schemeIDField As String - - Private valueField As String - - ''' - - Public Property schemeID() As String - Get - Return Me.schemeIDField - End Get - Set - Me.schemeIDField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAccountingAccountType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementHeaderMonetarySummationType - - Private lineTotalAmountField As AmountType - - Private chargeTotalAmountField As AmountType - - Private allowanceTotalAmountField As AmountType - - Private taxBasisTotalAmountField As AmountType - - Private taxTotalAmountField As AmountType - - Private grandTotalAmountField As AmountType - - Private totalPrepaidAmountField As AmountType - - Private duePayableAmountField As AmountType - - ''' - Public Property LineTotalAmount() As AmountType - Get - Return Me.lineTotalAmountField - End Get - Set - Me.lineTotalAmountField = Value - End Set - End Property - - ''' - Public Property ChargeTotalAmount() As AmountType - Get - Return Me.chargeTotalAmountField - End Get - Set - Me.chargeTotalAmountField = Value - End Set - End Property - - ''' - Public Property AllowanceTotalAmount() As AmountType - Get - Return Me.allowanceTotalAmountField - End Get - Set - Me.allowanceTotalAmountField = Value - End Set - End Property - - ''' - Public Property TaxBasisTotalAmount() As AmountType - Get - Return Me.taxBasisTotalAmountField - End Get - Set - Me.taxBasisTotalAmountField = Value - End Set - End Property - - ''' - Public Property TaxTotalAmount() As AmountType - Get - Return Me.taxTotalAmountField - End Get - Set - Me.taxTotalAmountField = Value - End Set - End Property - - ''' - Public Property GrandTotalAmount() As AmountType - Get - Return Me.grandTotalAmountField - End Get - Set - Me.grandTotalAmountField = Value - End Set - End Property - - ''' - Public Property TotalPrepaidAmount() As AmountType - Get - Return Me.totalPrepaidAmountField - End Get - Set - Me.totalPrepaidAmountField = Value - End Set - End Property - - ''' - Public Property DuePayableAmount() As AmountType - Get - Return Me.duePayableAmountField - End Get - Set - Me.duePayableAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AmountType - - Private currencyIDField As String - - Private valueField As Decimal - - ''' - - Public Property currencyID() As String - Get - Return Me.currencyIDField - End Get - Set - Me.currencyIDField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePaymentTermsType - - Private dueDateDateTimeField As DateTimeType - - Private directDebitMandateIDField As IDType - - ''' - Public Property DueDateDateTime() As DateTimeType - Get - Return Me.dueDateDateTimeField - End Get - Set - Me.dueDateDateTimeField = Value - End Set - End Property - - ''' - Public Property DirectDebitMandateID() As IDType - Get - Return Me.directDebitMandateIDField - End Get - Set - Me.directDebitMandateIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeType - - Private itemField As DateTimeTypeDateTimeString - - ''' - - Public Property Item() As DateTimeTypeDateTimeString - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AllowanceChargeReasonCodeType - - Private valueField As AllowanceChargeReasonCodeContentType - - ''' - - Public Property Value() As AllowanceChargeReasonCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum AllowanceChargeReasonCodeContentType - - ''' - AA - - ''' - AAA - - ''' - AAC - - ''' - AAD - - ''' - AAE - - ''' - AAF - - ''' - AAH - - ''' - AAI - - ''' - AAS - - ''' - AAT - - ''' - AAV - - ''' - AAY - - ''' - AAZ - - ''' - ABA - - ''' - ABB - - ''' - ABC - - ''' - ABD - - ''' - ABF - - ''' - ABK - - ''' - ABL - - ''' - ABN - - ''' - ABR - - ''' - ABS - - ''' - ABT - - ''' - ABU - - ''' - ACF - - ''' - ACG - - ''' - ACH - - ''' - ACI - - ''' - ACJ - - ''' - ACK - - ''' - ACL - - ''' - ACM - - ''' - ACS - - ''' - ADC - - ''' - ADE - - ''' - ADJ - - ''' - ADK - - ''' - ADL - - ''' - ADM - - ''' - ADN - - ''' - ADO - - ''' - ADP - - ''' - ADQ - - ''' - ADR - - ''' - ADT - - ''' - ADW - - ''' - ADY - - ''' - ADZ - - ''' - AEA - - ''' - AEB - - ''' - AEC - - ''' - AED - - ''' - AEF - - ''' - AEH - - ''' - AEI - - ''' - AEJ - - ''' - AEK - - ''' - AEL - - ''' - AEM - - ''' - AEN - - ''' - AEO - - ''' - AEP - - ''' - AES - - ''' - AET - - ''' - AEU - - ''' - AEV - - ''' - AEW - - ''' - AEX - - ''' - AEY - - ''' - AEZ - - ''' - AJ - - ''' - AU - - ''' - CA - - ''' - CAB - - ''' - CAD - - ''' - CAE - - ''' - CAF - - ''' - CAI - - ''' - CAJ - - ''' - CAK - - ''' - CAL - - ''' - CAM - - ''' - CAN - - ''' - CAO - - ''' - CAP - - ''' - CAQ - - ''' - CAR - - ''' - CAS - - ''' - CAT - - ''' - CAU - - ''' - CAV - - ''' - CAW - - ''' - CD - - ''' - CG - - ''' - CS - - ''' - CT - - ''' - DAB - - ''' - DAD - - ''' - DL - - ''' - EG - - ''' - EP - - ''' - ER - - ''' - FAA - - ''' - FAB - - ''' - FAC - - ''' - FC - - ''' - FH - - ''' - FI - - ''' - GAA - - ''' - HAA - - ''' - HD - - ''' - HH - - ''' - IAA - - ''' - IAB - - ''' - ID - - ''' - [IF] - - ''' - IR - - ''' - [IS] - - ''' - KO - - ''' - L1 - - ''' - LA - - ''' - LAA - - ''' - LAB - - ''' - LF - - ''' - MAE - - ''' - MI - - ''' - ML - - ''' - NAA - - ''' - OA - - ''' - PA - - ''' - PAA - - ''' - PC - - ''' - PL - - ''' - RAB - - ''' - RAC - - ''' - RAD - - ''' - RAF - - ''' - RE - - ''' - RF - - ''' - RH - - ''' - RV - - ''' - SA - - ''' - SAA - - ''' - SAD - - ''' - SAE - - ''' - SAI - - ''' - SG - - ''' - SH - - ''' - SM - - ''' - SU - - ''' - TAB - - ''' - TAC - - ''' - TT - - ''' - TV - - ''' - V1 - - ''' - V2 - - ''' - WH - - ''' - XAA - - ''' - YY - - ''' - ZZZ - - ''' - - Item41 - - ''' - - Item42 - - ''' - - Item60 - - ''' - - Item62 - - ''' - - Item63 - - ''' - - Item64 - - ''' - - Item65 - - ''' - - Item66 - - ''' - - Item67 - - ''' - - Item68 - - ''' - - Item70 - - ''' - - Item71 - - ''' - - Item88 - - ''' - - Item95 - - ''' - - Item100 - - ''' - - Item102 - - ''' - - Item103 - - ''' - - Item104 - - ''' - - Item105 - End Enum - - ''' - - Partial Public Class IndicatorType - - Private itemField As Boolean - - ''' - - Public Property Item() As Boolean - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAllowanceChargeType - - Private chargeIndicatorField As IndicatorType - - Private calculationPercentField As PercentType - - Private basisAmountField As AmountType - - Private actualAmountField As AmountType - - Private reasonCodeField As AllowanceChargeReasonCodeType - - Private reasonField As TextType - - Private categoryTradeTaxField As TradeTaxType - - ''' - Public Property ChargeIndicator() As IndicatorType - Get - Return Me.chargeIndicatorField - End Get - Set - Me.chargeIndicatorField = Value - End Set - End Property - - ''' - Public Property CalculationPercent() As PercentType - Get - Return Me.calculationPercentField - End Get - Set - Me.calculationPercentField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property ActualAmount() As AmountType - Get - Return Me.actualAmountField - End Get - Set - Me.actualAmountField = Value - End Set - End Property - - ''' - Public Property ReasonCode() As AllowanceChargeReasonCodeType - Get - Return Me.reasonCodeField - End Get - Set - Me.reasonCodeField = Value - End Set - End Property - - ''' - Public Property Reason() As TextType - Get - Return Me.reasonField - End Get - Set - Me.reasonField = Value - End Set - End Property - - ''' - Public Property CategoryTradeTax() As TradeTaxType - Get - Return Me.categoryTradeTaxField - End Get - Set - Me.categoryTradeTaxField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class PercentType - - Private valueField As Decimal - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TextType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeTaxType - - Private calculatedAmountField As AmountType - - Private typeCodeField As TaxTypeCodeType - - Private exemptionReasonField As TextType - - Private basisAmountField As AmountType - - Private categoryCodeField As TaxCategoryCodeType - - Private exemptionReasonCodeField As CodeType - - Private dueDateTypeCodeField As TimeReferenceCodeType - - Private rateApplicablePercentField As PercentType - - ''' - Public Property CalculatedAmount() As AmountType - Get - Return Me.calculatedAmountField - End Get - Set - Me.calculatedAmountField = Value - End Set - End Property - - ''' - Public Property TypeCode() As TaxTypeCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReason() As TextType - Get - Return Me.exemptionReasonField - End Get - Set - Me.exemptionReasonField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property CategoryCode() As TaxCategoryCodeType - Get - Return Me.categoryCodeField - End Get - Set - Me.categoryCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReasonCode() As CodeType - Get - Return Me.exemptionReasonCodeField - End Get - Set - Me.exemptionReasonCodeField = Value - End Set - End Property - - ''' - Public Property DueDateTypeCode() As TimeReferenceCodeType - Get - Return Me.dueDateTypeCodeField - End Get - Set - Me.dueDateTypeCodeField = Value - End Set - End Property - - ''' - Public Property RateApplicablePercent() As PercentType - Get - Return Me.rateApplicablePercentField - End Get - Set - Me.rateApplicablePercentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxTypeCodeType - - Private valueField As TaxTypeCodeContentType - - ''' - - Public Property Value() As TaxTypeCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TaxTypeCodeContentType - - ''' - VAT - End Enum - - ''' - - Partial Public Class TaxCategoryCodeType - - Private valueField As TaxCategoryCodeContentType - - ''' - - Public Property Value() As TaxCategoryCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TaxCategoryCodeContentType - - ''' - AE - - ''' - E - - ''' - G - - ''' - K - - ''' - L - - ''' - M - - ''' - O - - ''' - S - - ''' - Z - End Enum - - ''' - - Partial Public Class CodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TimeReferenceCodeType - - Private valueField As TimeReferenceCodeContentType - - ''' - - Public Property Value() As TimeReferenceCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TimeReferenceCodeContentType - - ''' - - Item5 - - ''' - - Item29 - - ''' - - Item72 - End Enum - - ''' - - Partial Public Class CreditorFinancialAccountType - - Private iBANIDField As IDType - - Private proprietaryIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - - ''' - Public Property ProprietaryID() As IDType - Get - Return Me.proprietaryIDField - End Get - Set - Me.proprietaryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DebtorFinancialAccountType - - Private iBANIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class PaymentMeansCodeType - - Private valueField As PaymentMeansCodeContentType - - ''' - - Public Property Value() As PaymentMeansCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum PaymentMeansCodeContentType - - ''' - - Item10 - - ''' - - Item20 - - ''' - - Item30 - - ''' - - Item48 - - ''' - - Item49 - - ''' - - Item57 - - ''' - - Item58 - - ''' - - Item59 - - ''' - ZZZ - End Enum - - ''' - - Partial Public Class TradeSettlementPaymentMeansType - - Private typeCodeField As PaymentMeansCodeType - - Private payerPartyDebtorFinancialAccountField As DebtorFinancialAccountType - - Private payeePartyCreditorFinancialAccountField As CreditorFinancialAccountType - - ''' - Public Property TypeCode() As PaymentMeansCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property PayerPartyDebtorFinancialAccount() As DebtorFinancialAccountType - Get - Return Me.payerPartyDebtorFinancialAccountField - End Get - Set - Me.payerPartyDebtorFinancialAccountField = Value - End Set - End Property - - ''' - Public Property PayeePartyCreditorFinancialAccount() As CreditorFinancialAccountType - Get - Return Me.payeePartyCreditorFinancialAccountField - End Get - Set - Me.payeePartyCreditorFinancialAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CurrencyCodeType - - Private valueField As CurrencyCodeContentType - - ''' - - Public Property Value() As CurrencyCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum CurrencyCodeContentType - - ''' - AED - - ''' - AFN - - ''' - ALL - - ''' - AMD - - ''' - ANG - - ''' - AOA - - ''' - ARS - - ''' - AUD - - ''' - AWG - - ''' - AZN - - ''' - BAM - - ''' - BBD - - ''' - BDT - - ''' - BGN - - ''' - BHD - - ''' - BIF - - ''' - BMD - - ''' - BND - - ''' - BOB - - ''' - BOV - - ''' - BRL - - ''' - BSD - - ''' - BTN - - ''' - BWP - - ''' - BYN - - ''' - BZD - - ''' - CAD - - ''' - CDF - - ''' - CHE - - ''' - CHF - - ''' - CHW - - ''' - CLF - - ''' - CLP - - ''' - CNY - - ''' - COP - - ''' - COU - - ''' - CRC - - ''' - CUC - - ''' - CUP - - ''' - CVE - - ''' - CZK - - ''' - DJF - - ''' - DKK - - ''' - DOP - - ''' - DZD - - ''' - EGP - - ''' - ERN - - ''' - ETB - - ''' - EUR - - ''' - FJD - - ''' - FKP - - ''' - GBP - - ''' - GEL - - ''' - GHS - - ''' - GIP - - ''' - GMD - - ''' - GNF - - ''' - GTQ - - ''' - GYD - - ''' - HKD - - ''' - HNL - - ''' - HRK - - ''' - HTG - - ''' - HUF - - ''' - IDR - - ''' - ILS - - ''' - INR - - ''' - IQD - - ''' - IRR - - ''' - ISK - - ''' - JMD - - ''' - JOD - - ''' - JPY - - ''' - KES - - ''' - KGS - - ''' - KHR - - ''' - KMF - - ''' - KPW - - ''' - KRW - - ''' - KWD - - ''' - KYD - - ''' - KZT - - ''' - LAK - - ''' - LBP - - ''' - LKR - - ''' - LRD - - ''' - LSL - - ''' - LYD - - ''' - MAD - - ''' - MDL - - ''' - MGA - - ''' - MKD - - ''' - MMK - - ''' - MNT - - ''' - MOP - - ''' - MRO - - ''' - MUR - - ''' - MVR - - ''' - MWK - - ''' - MXN - - ''' - MXV - - ''' - MYR - - ''' - MZN - - ''' - NAD - - ''' - NGN - - ''' - NIO - - ''' - NOK - - ''' - NPR - - ''' - NZD - - ''' - OMR - - ''' - PAB - - ''' - PEN - - ''' - PGK - - ''' - PHP - - ''' - PKR - - ''' - PLN - - ''' - PYG - - ''' - QAR - - ''' - RON - - ''' - RSD - - ''' - RUB - - ''' - RWF - - ''' - SAR - - ''' - SBD - - ''' - SCR - - ''' - SDG - - ''' - SEK - - ''' - SGD - - ''' - SHP - - ''' - SLL - - ''' - SOS - - ''' - SRD - - ''' - SSP - - ''' - STD - - ''' - SVC - - ''' - SYP - - ''' - SZL - - ''' - THB - - ''' - TJS - - ''' - TMT - - ''' - TND - - ''' - TOP - - ''' - [TRY] - - ''' - TTD - - ''' - TWD - - ''' - TZS - - ''' - UAH - - ''' - UGX - - ''' - USD - - ''' - USN - - ''' - UYI - - ''' - UYU - - ''' - UZS - - ''' - VEF - - ''' - VND - - ''' - VUV - - ''' - WST - - ''' - XAF - - ''' - XAG - - ''' - XAU - - ''' - XBA - - ''' - XBB - - ''' - XBC - - ''' - XBD - - ''' - XCD - - ''' - XDR - - ''' - XOF - - ''' - XPD - - ''' - XPF - - ''' - XPT - - ''' - XSU - - ''' - XTS - - ''' - XUA - - ''' - XXX - - ''' - YER - - ''' - ZAR - - ''' - ZMW - - ''' - ZWL - End Enum - - ''' - - Partial Public Class HeaderTradeSettlementType - - Private creditorReferenceIDField As IDType - - Private paymentReferenceField As TextType - - Private invoiceCurrencyCodeField As CurrencyCodeType - - Private payeeTradePartyField As TradePartyType - - Private specifiedTradeSettlementPaymentMeansField() As TradeSettlementPaymentMeansType - - Private applicableTradeTaxField() As TradeTaxType - - Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType - - Private specifiedTradePaymentTermsField As TradePaymentTermsType - - Private specifiedTradeSettlementHeaderMonetarySummationField As TradeSettlementHeaderMonetarySummationType - - Private invoiceReferencedDocumentField As ReferencedDocumentType - - Private receivableSpecifiedTradeAccountingAccountField() As TradeAccountingAccountType - - ''' - Public Property CreditorReferenceID() As IDType - Get - Return Me.creditorReferenceIDField - End Get - Set - Me.creditorReferenceIDField = Value - End Set - End Property - - ''' - Public Property PaymentReference() As TextType - Get - Return Me.paymentReferenceField - End Get - Set - Me.paymentReferenceField = Value - End Set - End Property - - ''' - Public Property InvoiceCurrencyCode() As CurrencyCodeType - Get - Return Me.invoiceCurrencyCodeField - End Get - Set - Me.invoiceCurrencyCodeField = Value - End Set - End Property - - ''' - Public Property PayeeTradeParty() As TradePartyType - Get - Return Me.payeeTradePartyField - End Get - Set - Me.payeeTradePartyField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeSettlementPaymentMeans() As TradeSettlementPaymentMeansType() - Get - Return Me.specifiedTradeSettlementPaymentMeansField - End Get - Set - Me.specifiedTradeSettlementPaymentMeansField = Value - End Set - End Property - - ''' - - Public Property ApplicableTradeTax() As TradeTaxType() - Get - Return Me.applicableTradeTaxField - End Get - Set - Me.applicableTradeTaxField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.specifiedTradeAllowanceChargeField - End Get - Set - Me.specifiedTradeAllowanceChargeField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradePaymentTerms() As TradePaymentTermsType - Get - Return Me.specifiedTradePaymentTermsField - End Get - Set - Me.specifiedTradePaymentTermsField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementHeaderMonetarySummation() As TradeSettlementHeaderMonetarySummationType - Get - Return Me.specifiedTradeSettlementHeaderMonetarySummationField - End Get - Set - Me.specifiedTradeSettlementHeaderMonetarySummationField = Value - End Set - End Property - - ''' - Public Property InvoiceReferencedDocument() As ReferencedDocumentType - Get - Return Me.invoiceReferencedDocumentField - End Get - Set - Me.invoiceReferencedDocumentField = Value - End Set - End Property - - ''' - - Public Property ReceivableSpecifiedTradeAccountingAccount() As TradeAccountingAccountType() - Get - Return Me.receivableSpecifiedTradeAccountingAccountField - End Get - Set - Me.receivableSpecifiedTradeAccountingAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePartyType - - Private idField As IDType - - Private globalIDField() As IDType - - Private nameField As TextType - - Private specifiedLegalOrganizationField As LegalOrganizationType - - Private postalTradeAddressField As TradeAddressType - - Private uRIUniversalCommunicationField As UniversalCommunicationType - - Private specifiedTaxRegistrationField() As TaxRegistrationType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - - Public Property GlobalID() As IDType() - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - Public Property SpecifiedLegalOrganization() As LegalOrganizationType - Get - Return Me.specifiedLegalOrganizationField - End Get - Set - Me.specifiedLegalOrganizationField = Value - End Set - End Property - - ''' - Public Property PostalTradeAddress() As TradeAddressType - Get - Return Me.postalTradeAddressField - End Get - Set - Me.postalTradeAddressField = Value - End Set - End Property - - ''' - Public Property URIUniversalCommunication() As UniversalCommunicationType - Get - Return Me.uRIUniversalCommunicationField - End Get - Set - Me.uRIUniversalCommunicationField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTaxRegistration() As TaxRegistrationType() - Get - Return Me.specifiedTaxRegistrationField - End Get - Set - Me.specifiedTaxRegistrationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LegalOrganizationType - - Private idField As IDType - - Private tradingBusinessNameField As TextType - - Private postalTradeAddressField As TradeAddressType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property TradingBusinessName() As TextType - Get - Return Me.tradingBusinessNameField - End Get - Set - Me.tradingBusinessNameField = Value - End Set - End Property - - ''' - Public Property PostalTradeAddress() As TradeAddressType - Get - Return Me.postalTradeAddressField - End Get - Set - Me.postalTradeAddressField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAddressType - - Private postcodeCodeField As CodeType - - Private lineOneField As TextType - - Private lineTwoField As TextType - - Private lineThreeField As TextType - - Private cityNameField As TextType - - Private countryIDField As CountryIDType - - Private countrySubDivisionNameField As TextType - - ''' - Public Property PostcodeCode() As CodeType - Get - Return Me.postcodeCodeField - End Get - Set - Me.postcodeCodeField = Value - End Set - End Property - - ''' - Public Property LineOne() As TextType - Get - Return Me.lineOneField - End Get - Set - Me.lineOneField = Value - End Set - End Property - - ''' - Public Property LineTwo() As TextType - Get - Return Me.lineTwoField - End Get - Set - Me.lineTwoField = Value - End Set - End Property - - ''' - Public Property LineThree() As TextType - Get - Return Me.lineThreeField - End Get - Set - Me.lineThreeField = Value - End Set - End Property - - ''' - Public Property CityName() As TextType - Get - Return Me.cityNameField - End Get - Set - Me.cityNameField = Value - End Set - End Property - - ''' - Public Property CountryID() As CountryIDType - Get - Return Me.countryIDField - End Get - Set - Me.countryIDField = Value - End Set - End Property - - ''' - Public Property CountrySubDivisionName() As TextType - Get - Return Me.countrySubDivisionNameField - End Get - Set - Me.countrySubDivisionNameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CountryIDType - - Private valueField As CountryIDContentType - - ''' - - Public Property Value() As CountryIDContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum CountryIDContentType - - ''' - AD - - ''' - AE - - ''' - AF - - ''' - AG - - ''' - AI - - ''' - AL - - ''' - AM - - ''' - AO - - ''' - AQ - - ''' - AR - - ''' - [AS] - - ''' - AT - - ''' - AU - - ''' - AW - - ''' - AX - - ''' - AZ - - ''' - BA - - ''' - BB - - ''' - BD - - ''' - BE - - ''' - BF - - ''' - BG - - ''' - BH - - ''' - BI - - ''' - BJ - - ''' - BL - - ''' - BM - - ''' - BN - - ''' - BO - - ''' - BQ - - ''' - BR - - ''' - BS - - ''' - BT - - ''' - BV - - ''' - BW - - ''' - BY - - ''' - BZ - - ''' - CA - - ''' - CC - - ''' - CD - - ''' - CF - - ''' - CG - - ''' - CH - - ''' - CI - - ''' - CK - - ''' - CL - - ''' - CM - - ''' - CN - - ''' - CO - - ''' - CR - - ''' - CU - - ''' - CV - - ''' - CW - - ''' - CX - - ''' - CY - - ''' - CZ - - ''' - DE - - ''' - DJ - - ''' - DK - - ''' - DM - - ''' - [DO] - - ''' - DZ - - ''' - EC - - ''' - EE - - ''' - EG - - ''' - EH - - ''' - ER - - ''' - ES - - ''' - ET - - ''' - FI - - ''' - FJ - - ''' - FK - - ''' - FM - - ''' - FO - - ''' - FR - - ''' - GA - - ''' - GB - - ''' - GD - - ''' - GE - - ''' - GF - - ''' - GG - - ''' - GH - - ''' - GI - - ''' - GL - - ''' - GM - - ''' - GN - - ''' - GP - - ''' - GQ - - ''' - GR - - ''' - GS - - ''' - GT - - ''' - GU - - ''' - GW - - ''' - GY - - ''' - HK - - ''' - HM - - ''' - HN - - ''' - HR - - ''' - HT - - ''' - HU - - ''' - ID - - ''' - IE - - ''' - IL - - ''' - IM - - ''' - [IN] - - ''' - IO - - ''' - IQ - - ''' - IR - - ''' - [IS] - - ''' - IT - - ''' - JE - - ''' - JM - - ''' - JO - - ''' - JP - - ''' - KE - - ''' - KG - - ''' - KH - - ''' - KI - - ''' - KM - - ''' - KN - - ''' - KP - - ''' - KR - - ''' - KW - - ''' - KY - - ''' - KZ - - ''' - LA - - ''' - LB - - ''' - LC - - ''' - LI - - ''' - LK - - ''' - LR - - ''' - LS - - ''' - LT - - ''' - LU - - ''' - LV - - ''' - LY - - ''' - MA - - ''' - MC - - ''' - MD - - ''' - [ME] - - ''' - MF - - ''' - MG - - ''' - MH - - ''' - MK - - ''' - ML - - ''' - MM - - ''' - MN - - ''' - MO - - ''' - MP - - ''' - MQ - - ''' - MR - - ''' - MS - - ''' - MT - - ''' - MU - - ''' - MV - - ''' - MW - - ''' - MX - - ''' - MY - - ''' - MZ - - ''' - NA - - ''' - NC - - ''' - NE - - ''' - NF - - ''' - NG - - ''' - NI - - ''' - NL - - ''' - NO - - ''' - NP - - ''' - NR - - ''' - NU - - ''' - NZ - - ''' - OM - - ''' - PA - - ''' - PE - - ''' - PF - - ''' - PG - - ''' - PH - - ''' - PK - - ''' - PL - - ''' - PM - - ''' - PN - - ''' - PR - - ''' - PS - - ''' - PT - - ''' - PW - - ''' - PY - - ''' - QA - - ''' - RE - - ''' - RO - - ''' - RS - - ''' - RU - - ''' - RW - - ''' - SA - - ''' - SB - - ''' - SC - - ''' - SD - - ''' - SE - - ''' - SG - - ''' - SH - - ''' - SI - - ''' - SJ - - ''' - SK - - ''' - SL - - ''' - SM - - ''' - SN - - ''' - SO - - ''' - SR - - ''' - SS - - ''' - ST - - ''' - SV - - ''' - SX - - ''' - SY - - ''' - SZ - - ''' - TC - - ''' - TD - - ''' - TF - - ''' - TG - - ''' - TH - - ''' - TJ - - ''' - TK - - ''' - TL - - ''' - TM - - ''' - TN - - ''' - [TO] - - ''' - TR - - ''' - TT - - ''' - TV - - ''' - TW - - ''' - TZ - - ''' - UA - - ''' - UG - - ''' - UM - - ''' - US - - ''' - UY - - ''' - UZ - - ''' - VA - - ''' - VC - - ''' - VE - - ''' - VG - - ''' - VI - - ''' - VN - - ''' - VU - - ''' - WF - - ''' - WS - - ''' - YE - - ''' - YT - - ''' - ZA - - ''' - ZM - - ''' - ZW - End Enum - - ''' - - Partial Public Class UniversalCommunicationType - - Private uRIIDField As IDType - - ''' - Public Property URIID() As IDType - Get - Return Me.uRIIDField - End Get - Set - Me.uRIIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxRegistrationType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ReferencedDocumentType - - Private issuerAssignedIDField As IDType - - Private formattedIssueDateTimeField As FormattedDateTimeType - - ''' - Public Property IssuerAssignedID() As IDType - Get - Return Me.issuerAssignedIDField - End Get - Set - Me.issuerAssignedIDField = Value - End Set - End Property - - ''' - Public Property FormattedIssueDateTime() As FormattedDateTimeType - Get - Return Me.formattedIssueDateTimeField - End Get - Set - Me.formattedIssueDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class FormattedDateTimeType - - Private dateTimeStringField As FormattedDateTimeTypeDateTimeString - - ''' - Public Property DateTimeString() As FormattedDateTimeTypeDateTimeString - Get - Return Me.dateTimeStringField - End Get - Set - Me.dateTimeStringField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class FormattedDateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainEventType - - Private occurrenceDateTimeField As DateTimeType - - ''' - Public Property OccurrenceDateTime() As DateTimeType - Get - Return Me.occurrenceDateTimeField - End Get - Set - Me.occurrenceDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class HeaderTradeDeliveryType - - Private actualDeliverySupplyChainEventField As SupplyChainEventType - - Private despatchAdviceReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property ActualDeliverySupplyChainEvent() As SupplyChainEventType - Get - Return Me.actualDeliverySupplyChainEventField - End Get - Set - Me.actualDeliverySupplyChainEventField = Value - End Set - End Property - - ''' - Public Property DespatchAdviceReferencedDocument() As ReferencedDocumentType - Get - Return Me.despatchAdviceReferencedDocumentField - End Get - Set - Me.despatchAdviceReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class HeaderTradeAgreementType - - Private buyerReferenceField As TextType - - Private sellerTradePartyField As TradePartyType - - Private buyerTradePartyField As TradePartyType - - Private sellerTaxRepresentativeTradePartyField As TradePartyType - - Private buyerOrderReferencedDocumentField As ReferencedDocumentType - - Private contractReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property BuyerReference() As TextType - Get - Return Me.buyerReferenceField - End Get - Set - Me.buyerReferenceField = Value - End Set - End Property - - ''' - Public Property SellerTradeParty() As TradePartyType - Get - Return Me.sellerTradePartyField - End Get - Set - Me.sellerTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerTradeParty() As TradePartyType - Get - Return Me.buyerTradePartyField - End Get - Set - Me.buyerTradePartyField = Value - End Set - End Property - - ''' - Public Property SellerTaxRepresentativeTradeParty() As TradePartyType - Get - Return Me.sellerTaxRepresentativeTradePartyField - End Get - Set - Me.sellerTaxRepresentativeTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerOrderReferencedDocument() As ReferencedDocumentType - Get - Return Me.buyerOrderReferencedDocumentField - End Get - Set - Me.buyerOrderReferencedDocumentField = Value - End Set - End Property - - ''' - Public Property ContractReferencedDocument() As ReferencedDocumentType - Get - Return Me.contractReferencedDocumentField - End Get - Set - Me.contractReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeTransactionType - - Private applicableHeaderTradeAgreementField As HeaderTradeAgreementType - - Private applicableHeaderTradeDeliveryField As HeaderTradeDeliveryType - - Private applicableHeaderTradeSettlementField As HeaderTradeSettlementType - - ''' - Public Property ApplicableHeaderTradeAgreement() As HeaderTradeAgreementType - Get - Return Me.applicableHeaderTradeAgreementField - End Get - Set - Me.applicableHeaderTradeAgreementField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeDelivery() As HeaderTradeDeliveryType - Get - Return Me.applicableHeaderTradeDeliveryField - End Get - Set - Me.applicableHeaderTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeSettlement() As HeaderTradeSettlementType - Get - Return Me.applicableHeaderTradeSettlementField - End Get - Set - Me.applicableHeaderTradeSettlementField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class NoteType - - Private contentField As TextType - - Private subjectCodeField As CodeType - - ''' - Public Property Content() As TextType - Get - Return Me.contentField - End Get - Set - Me.contentField = Value - End Set - End Property - - ''' - Public Property SubjectCode() As CodeType - Get - Return Me.subjectCodeField - End Get - Set - Me.subjectCodeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentCodeType - - Private valueField As DocumentCodeContentType - - ''' - - Public Property Value() As DocumentCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum DocumentCodeContentType - - ''' - - Item751 - End Enum - - ''' - - Partial Public Class ExchangedDocumentType - - Private idField As IDType - - Private typeCodeField As DocumentCodeType - - Private issueDateTimeField As DateTimeType - - Private includedNoteField() As NoteType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property TypeCode() As DocumentCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property IssueDateTime() As DateTimeType - Get - Return Me.issueDateTimeField - End Get - Set - Me.issueDateTimeField = Value - End Set - End Property - - ''' - - Public Property IncludedNote() As NoteType() - Get - Return Me.includedNoteField - End Get - Set - Me.includedNoteField = Value - End Set - End Property - End Class - -End Namespace diff --git a/Modules.Interfaces/ZUGFeRDInterface/Version2.1.1/CrossIndustryInvoiceType.vb b/Modules.Interfaces/ZUGFeRDInterface/Version2.1.1/CrossIndustryInvoiceType.vb deleted file mode 100644 index 93d1b8bb..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/Version2.1.1/CrossIndustryInvoiceType.vb +++ /dev/null @@ -1,4329 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict Off -Option Explicit On - -Namespace ZUGFeRD.Version2_1_1 - - ' - 'This source code was auto-generated by xsd, Version=4.6.1055.0. - ' - - ''' - - Partial Public Class CrossIndustryInvoiceType - - Private exchangedDocumentContextField As ExchangedDocumentContextType - - Private exchangedDocumentField As ExchangedDocumentType - - Private supplyChainTradeTransactionField As SupplyChainTradeTransactionType - - ''' - Public Property ExchangedDocumentContext() As ExchangedDocumentContextType - Get - Return Me.exchangedDocumentContextField - End Get - Set - Me.exchangedDocumentContextField = Value - End Set - End Property - - ''' - Public Property ExchangedDocument() As ExchangedDocumentType - Get - Return Me.exchangedDocumentField - End Get - Set - Me.exchangedDocumentField = Value - End Set - End Property - - ''' - Public Property SupplyChainTradeTransaction() As SupplyChainTradeTransactionType - Get - Return Me.supplyChainTradeTransactionField - End Get - Set - Me.supplyChainTradeTransactionField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ExchangedDocumentContextType - - Private businessProcessSpecifiedDocumentContextParameterField As DocumentContextParameterType - - Private guidelineSpecifiedDocumentContextParameterField As DocumentContextParameterType - - ''' - Public Property BusinessProcessSpecifiedDocumentContextParameter() As DocumentContextParameterType - Get - Return Me.businessProcessSpecifiedDocumentContextParameterField - End Get - Set - Me.businessProcessSpecifiedDocumentContextParameterField = Value - End Set - End Property - - ''' - Public Property GuidelineSpecifiedDocumentContextParameter() As DocumentContextParameterType - Get - Return Me.guidelineSpecifiedDocumentContextParameterField - End Get - Set - Me.guidelineSpecifiedDocumentContextParameterField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentContextParameterType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IDType - - Private schemeIDField As String - - Private valueField As String - - ''' - - Public Property schemeID() As String - Get - Return Me.schemeIDField - End Get - Set - Me.schemeIDField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAccountingAccountType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementHeaderMonetarySummationType - - Private lineTotalAmountField As AmountType - - Private chargeTotalAmountField As AmountType - - Private allowanceTotalAmountField As AmountType - - Private taxBasisTotalAmountField As AmountType - - Private taxTotalAmountField As AmountType - - Private grandTotalAmountField As AmountType - - Private totalPrepaidAmountField As AmountType - - Private duePayableAmountField As AmountType - - ''' - Public Property LineTotalAmount() As AmountType - Get - Return Me.lineTotalAmountField - End Get - Set - Me.lineTotalAmountField = Value - End Set - End Property - - ''' - Public Property ChargeTotalAmount() As AmountType - Get - Return Me.chargeTotalAmountField - End Get - Set - Me.chargeTotalAmountField = Value - End Set - End Property - - ''' - Public Property AllowanceTotalAmount() As AmountType - Get - Return Me.allowanceTotalAmountField - End Get - Set - Me.allowanceTotalAmountField = Value - End Set - End Property - - ''' - Public Property TaxBasisTotalAmount() As AmountType - Get - Return Me.taxBasisTotalAmountField - End Get - Set - Me.taxBasisTotalAmountField = Value - End Set - End Property - - ''' - Public Property TaxTotalAmount() As AmountType - Get - Return Me.taxTotalAmountField - End Get - Set - Me.taxTotalAmountField = Value - End Set - End Property - - ''' - Public Property GrandTotalAmount() As AmountType - Get - Return Me.grandTotalAmountField - End Get - Set - Me.grandTotalAmountField = Value - End Set - End Property - - ''' - Public Property TotalPrepaidAmount() As AmountType - Get - Return Me.totalPrepaidAmountField - End Get - Set - Me.totalPrepaidAmountField = Value - End Set - End Property - - ''' - Public Property DuePayableAmount() As AmountType - Get - Return Me.duePayableAmountField - End Get - Set - Me.duePayableAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AmountType - - Private currencyIDField As String - - Private valueField As Decimal - - ''' - - Public Property currencyID() As String - Get - Return Me.currencyIDField - End Get - Set - Me.currencyIDField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePaymentTermsType - - Private dueDateDateTimeField As DateTimeType - - Private directDebitMandateIDField As IDType - - ''' - Public Property DueDateDateTime() As DateTimeType - Get - Return Me.dueDateDateTimeField - End Get - Set - Me.dueDateDateTimeField = Value - End Set - End Property - - ''' - Public Property DirectDebitMandateID() As IDType - Get - Return Me.directDebitMandateIDField - End Get - Set - Me.directDebitMandateIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeType - - Private itemField As DateTimeTypeDateTimeString - - ''' - - Public Property Item() As DateTimeTypeDateTimeString - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SpecifiedPeriodType - - Private startDateTimeField As DateTimeType - - Private endDateTimeField As DateTimeType - - ''' - Public Property StartDateTime() As DateTimeType - Get - Return Me.startDateTimeField - End Get - Set - Me.startDateTimeField = Value - End Set - End Property - - ''' - Public Property EndDateTime() As DateTimeType - Get - Return Me.endDateTimeField - End Get - Set - Me.endDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CreditorFinancialAccountType - - Private iBANIDField As IDType - - Private proprietaryIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - - ''' - Public Property ProprietaryID() As IDType - Get - Return Me.proprietaryIDField - End Get - Set - Me.proprietaryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DebtorFinancialAccountType - - Private iBANIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class PaymentMeansCodeType - - Private valueField As PaymentMeansCodeContentType - - ''' - - Public Property Value() As PaymentMeansCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum PaymentMeansCodeContentType - - ''' - - Item10 - - ''' - - Item20 - - ''' - - Item30 - - ''' - - Item42 - - ''' - - Item48 - - ''' - - Item49 - - ''' - - Item57 - - ''' - - Item58 - - ''' - - Item59 - - ''' - - Item97 - - ''' - ZZZ - End Enum - - ''' - - Partial Public Class TradeSettlementPaymentMeansType - - Private typeCodeField As PaymentMeansCodeType - - Private payerPartyDebtorFinancialAccountField As DebtorFinancialAccountType - - Private payeePartyCreditorFinancialAccountField As CreditorFinancialAccountType - - ''' - Public Property TypeCode() As PaymentMeansCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property PayerPartyDebtorFinancialAccount() As DebtorFinancialAccountType - Get - Return Me.payerPartyDebtorFinancialAccountField - End Get - Set - Me.payerPartyDebtorFinancialAccountField = Value - End Set - End Property - - ''' - Public Property PayeePartyCreditorFinancialAccount() As CreditorFinancialAccountType - Get - Return Me.payeePartyCreditorFinancialAccountField - End Get - Set - Me.payeePartyCreditorFinancialAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CurrencyCodeType - - Private valueField As CurrencyCodeContentType - - ''' - - Public Property Value() As CurrencyCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum CurrencyCodeContentType - - ''' - AED - - ''' - AFN - - ''' - ALL - - ''' - AMD - - ''' - ANG - - ''' - AOA - - ''' - ARS - - ''' - AUD - - ''' - AWG - - ''' - AZN - - ''' - BAM - - ''' - BBD - - ''' - BDT - - ''' - BGN - - ''' - BHD - - ''' - BIF - - ''' - BMD - - ''' - BND - - ''' - BOB - - ''' - BOV - - ''' - BRL - - ''' - BSD - - ''' - BTN - - ''' - BWP - - ''' - BYN - - ''' - BZD - - ''' - CAD - - ''' - CDF - - ''' - CHE - - ''' - CHF - - ''' - CHW - - ''' - CLF - - ''' - CLP - - ''' - CNY - - ''' - COP - - ''' - COU - - ''' - CRC - - ''' - CUC - - ''' - CUP - - ''' - CVE - - ''' - CZK - - ''' - DJF - - ''' - DKK - - ''' - DOP - - ''' - DZD - - ''' - EGP - - ''' - ERN - - ''' - ETB - - ''' - EUR - - ''' - FJD - - ''' - FKP - - ''' - GBP - - ''' - GEL - - ''' - GHS - - ''' - GIP - - ''' - GMD - - ''' - GNF - - ''' - GTQ - - ''' - GYD - - ''' - HKD - - ''' - HNL - - ''' - HRK - - ''' - HTG - - ''' - HUF - - ''' - IDR - - ''' - ILS - - ''' - INR - - ''' - IQD - - ''' - IRR - - ''' - ISK - - ''' - JMD - - ''' - JOD - - ''' - JPY - - ''' - KES - - ''' - KGS - - ''' - KHR - - ''' - KMF - - ''' - KPW - - ''' - KRW - - ''' - KWD - - ''' - KYD - - ''' - KZT - - ''' - LAK - - ''' - LBP - - ''' - LKR - - ''' - LRD - - ''' - LSL - - ''' - LYD - - ''' - MAD - - ''' - MDL - - ''' - MGA - - ''' - MKD - - ''' - MMK - - ''' - MNT - - ''' - MOP - - ''' - MRU - - ''' - MUR - - ''' - MVR - - ''' - MWK - - ''' - MXN - - ''' - MXV - - ''' - MYR - - ''' - MZN - - ''' - NAD - - ''' - NGN - - ''' - NIO - - ''' - NOK - - ''' - NPR - - ''' - NZD - - ''' - OMR - - ''' - PAB - - ''' - PEN - - ''' - PGK - - ''' - PHP - - ''' - PKR - - ''' - PLN - - ''' - PYG - - ''' - QAR - - ''' - RON - - ''' - RSD - - ''' - RUB - - ''' - RWF - - ''' - SAR - - ''' - SBD - - ''' - SCR - - ''' - SDG - - ''' - SEK - - ''' - SGD - - ''' - SHP - - ''' - SLL - - ''' - SOS - - ''' - SRD - - ''' - SSP - - ''' - STN - - ''' - SVC - - ''' - SYP - - ''' - SZL - - ''' - THB - - ''' - TJS - - ''' - TMT - - ''' - TND - - ''' - TOP - - ''' - [TRY] - - ''' - TTD - - ''' - TWD - - ''' - TZS - - ''' - UAH - - ''' - UGX - - ''' - USD - - ''' - USN - - ''' - UYI - - ''' - UYU - - ''' - UYW - - ''' - UZS - - ''' - VES - - ''' - VND - - ''' - VUV - - ''' - WST - - ''' - XAF - - ''' - XAG - - ''' - XAU - - ''' - XBA - - ''' - XBB - - ''' - XBC - - ''' - XBD - - ''' - XCD - - ''' - XDR - - ''' - XOF - - ''' - XPD - - ''' - XPF - - ''' - XPT - - ''' - XSU - - ''' - XTS - - ''' - XUA - - ''' - XXX - - ''' - YER - - ''' - ZAR - - ''' - ZMW - - ''' - ZWL - End Enum - - ''' - - Partial Public Class HeaderTradeSettlementType - - Private creditorReferenceIDField As IDType - - Private paymentReferenceField As TextType - - Private invoiceCurrencyCodeField As CurrencyCodeType - - Private payeeTradePartyField As TradePartyType - - Private specifiedTradeSettlementPaymentMeansField() As TradeSettlementPaymentMeansType - - Private applicableTradeTaxField() As TradeTaxType - - Private billingSpecifiedPeriodField As SpecifiedPeriodType - - Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType - - Private specifiedTradePaymentTermsField As TradePaymentTermsType - - Private specifiedTradeSettlementHeaderMonetarySummationField As TradeSettlementHeaderMonetarySummationType - - Private invoiceReferencedDocumentField As ReferencedDocumentType - - Private receivableSpecifiedTradeAccountingAccountField As TradeAccountingAccountType - - ''' - Public Property CreditorReferenceID() As IDType - Get - Return Me.creditorReferenceIDField - End Get - Set - Me.creditorReferenceIDField = Value - End Set - End Property - - ''' - Public Property PaymentReference() As TextType - Get - Return Me.paymentReferenceField - End Get - Set - Me.paymentReferenceField = Value - End Set - End Property - - ''' - Public Property InvoiceCurrencyCode() As CurrencyCodeType - Get - Return Me.invoiceCurrencyCodeField - End Get - Set - Me.invoiceCurrencyCodeField = Value - End Set - End Property - - ''' - Public Property PayeeTradeParty() As TradePartyType - Get - Return Me.payeeTradePartyField - End Get - Set - Me.payeeTradePartyField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeSettlementPaymentMeans() As TradeSettlementPaymentMeansType() - Get - Return Me.specifiedTradeSettlementPaymentMeansField - End Get - Set - Me.specifiedTradeSettlementPaymentMeansField = Value - End Set - End Property - - ''' - - Public Property ApplicableTradeTax() As TradeTaxType() - Get - Return Me.applicableTradeTaxField - End Get - Set - Me.applicableTradeTaxField = Value - End Set - End Property - - ''' - Public Property BillingSpecifiedPeriod() As SpecifiedPeriodType - Get - Return Me.billingSpecifiedPeriodField - End Get - Set - Me.billingSpecifiedPeriodField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.specifiedTradeAllowanceChargeField - End Get - Set - Me.specifiedTradeAllowanceChargeField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradePaymentTerms() As TradePaymentTermsType - Get - Return Me.specifiedTradePaymentTermsField - End Get - Set - Me.specifiedTradePaymentTermsField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementHeaderMonetarySummation() As TradeSettlementHeaderMonetarySummationType - Get - Return Me.specifiedTradeSettlementHeaderMonetarySummationField - End Get - Set - Me.specifiedTradeSettlementHeaderMonetarySummationField = Value - End Set - End Property - - ''' - Public Property InvoiceReferencedDocument() As ReferencedDocumentType - Get - Return Me.invoiceReferencedDocumentField - End Get - Set - Me.invoiceReferencedDocumentField = Value - End Set - End Property - - ''' - Public Property ReceivableSpecifiedTradeAccountingAccount() As TradeAccountingAccountType - Get - Return Me.receivableSpecifiedTradeAccountingAccountField - End Get - Set - Me.receivableSpecifiedTradeAccountingAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TextType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePartyType - - Private idField() As IDType - - Private globalIDField() As IDType - - Private nameField As TextType - - Private specifiedLegalOrganizationField As LegalOrganizationType - - Private postalTradeAddressField As TradeAddressType - - Private uRIUniversalCommunicationField As UniversalCommunicationType - - Private specifiedTaxRegistrationField() As TaxRegistrationType - - ''' - - Public Property ID() As IDType() - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - - Public Property GlobalID() As IDType() - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - Public Property SpecifiedLegalOrganization() As LegalOrganizationType - Get - Return Me.specifiedLegalOrganizationField - End Get - Set - Me.specifiedLegalOrganizationField = Value - End Set - End Property - - ''' - Public Property PostalTradeAddress() As TradeAddressType - Get - Return Me.postalTradeAddressField - End Get - Set - Me.postalTradeAddressField = Value - End Set - End Property - - ''' - Public Property URIUniversalCommunication() As UniversalCommunicationType - Get - Return Me.uRIUniversalCommunicationField - End Get - Set - Me.uRIUniversalCommunicationField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTaxRegistration() As TaxRegistrationType() - Get - Return Me.specifiedTaxRegistrationField - End Get - Set - Me.specifiedTaxRegistrationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LegalOrganizationType - - Private idField As IDType - - Private tradingBusinessNameField As TextType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property TradingBusinessName() As TextType - Get - Return Me.tradingBusinessNameField - End Get - Set - Me.tradingBusinessNameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAddressType - - Private postcodeCodeField As CodeType - - Private lineOneField As TextType - - Private lineTwoField As TextType - - Private lineThreeField As TextType - - Private cityNameField As TextType - - Private countryIDField As CountryIDType - - ''' - Public Property PostcodeCode() As CodeType - Get - Return Me.postcodeCodeField - End Get - Set - Me.postcodeCodeField = Value - End Set - End Property - - ''' - Public Property LineOne() As TextType - Get - Return Me.lineOneField - End Get - Set - Me.lineOneField = Value - End Set - End Property - - ''' - Public Property LineTwo() As TextType - Get - Return Me.lineTwoField - End Get - Set - Me.lineTwoField = Value - End Set - End Property - - ''' - Public Property LineThree() As TextType - Get - Return Me.lineThreeField - End Get - Set - Me.lineThreeField = Value - End Set - End Property - - ''' - Public Property CityName() As TextType - Get - Return Me.cityNameField - End Get - Set - Me.cityNameField = Value - End Set - End Property - - ''' - Public Property CountryID() As CountryIDType - Get - Return Me.countryIDField - End Get - Set - Me.countryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CountryIDType - - Private valueField As CountryIDContentType - - ''' - - Public Property Value() As CountryIDContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum CountryIDContentType - - ''' - - Item1A - - ''' - AD - - ''' - AE - - ''' - AF - - ''' - AG - - ''' - AI - - ''' - AL - - ''' - AM - - ''' - AO - - ''' - AQ - - ''' - AR - - ''' - [AS] - - ''' - AT - - ''' - AU - - ''' - AW - - ''' - AX - - ''' - AZ - - ''' - BA - - ''' - BB - - ''' - BD - - ''' - BE - - ''' - BF - - ''' - BG - - ''' - BH - - ''' - BI - - ''' - BJ - - ''' - BL - - ''' - BM - - ''' - BN - - ''' - BO - - ''' - BQ - - ''' - BR - - ''' - BS - - ''' - BT - - ''' - BV - - ''' - BW - - ''' - BY - - ''' - BZ - - ''' - CA - - ''' - CC - - ''' - CD - - ''' - CF - - ''' - CG - - ''' - CH - - ''' - CI - - ''' - CK - - ''' - CL - - ''' - CM - - ''' - CN - - ''' - CO - - ''' - CR - - ''' - CU - - ''' - CV - - ''' - CW - - ''' - CX - - ''' - CY - - ''' - CZ - - ''' - DE - - ''' - DJ - - ''' - DK - - ''' - DM - - ''' - [DO] - - ''' - DZ - - ''' - EC - - ''' - EE - - ''' - EG - - ''' - EH - - ''' - ER - - ''' - ES - - ''' - ET - - ''' - FI - - ''' - FJ - - ''' - FK - - ''' - FM - - ''' - FO - - ''' - FR - - ''' - GA - - ''' - GB - - ''' - GD - - ''' - GE - - ''' - GF - - ''' - GG - - ''' - GH - - ''' - GI - - ''' - GL - - ''' - GM - - ''' - GN - - ''' - GP - - ''' - GQ - - ''' - GR - - ''' - GS - - ''' - GT - - ''' - GU - - ''' - GW - - ''' - GY - - ''' - HK - - ''' - HM - - ''' - HN - - ''' - HR - - ''' - HT - - ''' - HU - - ''' - ID - - ''' - IE - - ''' - IL - - ''' - IM - - ''' - [IN] - - ''' - IO - - ''' - IQ - - ''' - IR - - ''' - [IS] - - ''' - IT - - ''' - JE - - ''' - JM - - ''' - JO - - ''' - JP - - ''' - KE - - ''' - KG - - ''' - KH - - ''' - KI - - ''' - KM - - ''' - KN - - ''' - KP - - ''' - KR - - ''' - KW - - ''' - KY - - ''' - KZ - - ''' - LA - - ''' - LB - - ''' - LC - - ''' - LI - - ''' - LK - - ''' - LR - - ''' - LS - - ''' - LT - - ''' - LU - - ''' - LV - - ''' - LY - - ''' - MA - - ''' - MC - - ''' - MD - - ''' - [ME] - - ''' - MF - - ''' - MG - - ''' - MH - - ''' - MK - - ''' - ML - - ''' - MM - - ''' - MN - - ''' - MO - - ''' - MP - - ''' - MQ - - ''' - MR - - ''' - MS - - ''' - MT - - ''' - MU - - ''' - MV - - ''' - MW - - ''' - MX - - ''' - MY - - ''' - MZ - - ''' - NA - - ''' - NC - - ''' - NE - - ''' - NF - - ''' - NG - - ''' - NI - - ''' - NL - - ''' - NO - - ''' - NP - - ''' - NR - - ''' - NU - - ''' - NZ - - ''' - OM - - ''' - PA - - ''' - PE - - ''' - PF - - ''' - PG - - ''' - PH - - ''' - PK - - ''' - PL - - ''' - PM - - ''' - PN - - ''' - PR - - ''' - PS - - ''' - PT - - ''' - PW - - ''' - PY - - ''' - QA - - ''' - RE - - ''' - RO - - ''' - RS - - ''' - RU - - ''' - RW - - ''' - SA - - ''' - SB - - ''' - SC - - ''' - SD - - ''' - SE - - ''' - SG - - ''' - SH - - ''' - SI - - ''' - SJ - - ''' - SK - - ''' - SL - - ''' - SM - - ''' - SN - - ''' - SO - - ''' - SR - - ''' - SS - - ''' - ST - - ''' - SV - - ''' - SX - - ''' - SY - - ''' - SZ - - ''' - TC - - ''' - TD - - ''' - TF - - ''' - TG - - ''' - TH - - ''' - TJ - - ''' - TK - - ''' - TL - - ''' - TM - - ''' - TN - - ''' - [TO] - - ''' - TR - - ''' - TT - - ''' - TV - - ''' - TW - - ''' - TZ - - ''' - UA - - ''' - UG - - ''' - UM - - ''' - US - - ''' - UY - - ''' - UZ - - ''' - VA - - ''' - VC - - ''' - VE - - ''' - VG - - ''' - VI - - ''' - VN - - ''' - VU - - ''' - WF - - ''' - WS - - ''' - YE - - ''' - YT - - ''' - ZA - - ''' - ZM - - ''' - ZW - End Enum - - ''' - - Partial Public Class UniversalCommunicationType - - Private uRIIDField As IDType - - ''' - Public Property URIID() As IDType - Get - Return Me.uRIIDField - End Get - Set - Me.uRIIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxRegistrationType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeTaxType - - Private calculatedAmountField As AmountType - - Private typeCodeField As TaxTypeCodeType - - Private exemptionReasonField As TextType - - Private basisAmountField As AmountType - - Private categoryCodeField As TaxCategoryCodeType - - Private exemptionReasonCodeField As CodeType - - Private dueDateTypeCodeField As TimeReferenceCodeType - - Private rateApplicablePercentField As PercentType - - ''' - Public Property CalculatedAmount() As AmountType - Get - Return Me.calculatedAmountField - End Get - Set - Me.calculatedAmountField = Value - End Set - End Property - - ''' - Public Property TypeCode() As TaxTypeCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReason() As TextType - Get - Return Me.exemptionReasonField - End Get - Set - Me.exemptionReasonField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property CategoryCode() As TaxCategoryCodeType - Get - Return Me.categoryCodeField - End Get - Set - Me.categoryCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReasonCode() As CodeType - Get - Return Me.exemptionReasonCodeField - End Get - Set - Me.exemptionReasonCodeField = Value - End Set - End Property - - ''' - Public Property DueDateTypeCode() As TimeReferenceCodeType - Get - Return Me.dueDateTypeCodeField - End Get - Set - Me.dueDateTypeCodeField = Value - End Set - End Property - - ''' - Public Property RateApplicablePercent() As PercentType - Get - Return Me.rateApplicablePercentField - End Get - Set - Me.rateApplicablePercentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxTypeCodeType - - Private valueField As TaxTypeCodeContentType - - ''' - - Public Property Value() As TaxTypeCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TaxTypeCodeContentType - - ''' - VAT - End Enum - - ''' - - Partial Public Class TaxCategoryCodeType - - Private valueField As TaxCategoryCodeContentType - - ''' - - Public Property Value() As TaxCategoryCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TaxCategoryCodeContentType - - ''' - AE - - ''' - E - - ''' - G - - ''' - K - - ''' - L - - ''' - M - - ''' - O - - ''' - S - - ''' - Z - End Enum - - ''' - - Partial Public Class TimeReferenceCodeType - - Private valueField As TimeReferenceCodeContentType - - ''' - - Public Property Value() As TimeReferenceCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TimeReferenceCodeContentType - - ''' - - Item5 - - ''' - - Item29 - - ''' - - Item72 - End Enum - - ''' - - Partial Public Class PercentType - - Private valueField As Decimal - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAllowanceChargeType - - Private chargeIndicatorField As IndicatorType - - Private calculationPercentField As PercentType - - Private basisAmountField As AmountType - - Private actualAmountField As AmountType - - Private reasonCodeField As AllowanceChargeReasonCodeType - - Private reasonField As TextType - - Private categoryTradeTaxField As TradeTaxType - - ''' - Public Property ChargeIndicator() As IndicatorType - Get - Return Me.chargeIndicatorField - End Get - Set - Me.chargeIndicatorField = Value - End Set - End Property - - ''' - Public Property CalculationPercent() As PercentType - Get - Return Me.calculationPercentField - End Get - Set - Me.calculationPercentField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property ActualAmount() As AmountType - Get - Return Me.actualAmountField - End Get - Set - Me.actualAmountField = Value - End Set - End Property - - ''' - Public Property ReasonCode() As AllowanceChargeReasonCodeType - Get - Return Me.reasonCodeField - End Get - Set - Me.reasonCodeField = Value - End Set - End Property - - ''' - Public Property Reason() As TextType - Get - Return Me.reasonField - End Get - Set - Me.reasonField = Value - End Set - End Property - - ''' - Public Property CategoryTradeTax() As TradeTaxType - Get - Return Me.categoryTradeTaxField - End Get - Set - Me.categoryTradeTaxField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IndicatorType - - Private itemField As Boolean - - ''' - - Public Property Item() As Boolean - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AllowanceChargeReasonCodeType - - Private valueField As AllowanceChargeReasonCodeContentType - - ''' - - Public Property Value() As AllowanceChargeReasonCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum AllowanceChargeReasonCodeContentType - - ''' - AA - - ''' - AAA - - ''' - AAC - - ''' - AAD - - ''' - AAE - - ''' - AAF - - ''' - AAH - - ''' - AAI - - ''' - AAS - - ''' - AAT - - ''' - AAV - - ''' - AAY - - ''' - AAZ - - ''' - ABA - - ''' - ABB - - ''' - ABC - - ''' - ABD - - ''' - ABF - - ''' - ABK - - ''' - ABL - - ''' - ABN - - ''' - ABR - - ''' - ABS - - ''' - ABT - - ''' - ABU - - ''' - ACF - - ''' - ACG - - ''' - ACH - - ''' - ACI - - ''' - ACJ - - ''' - ACK - - ''' - ACL - - ''' - ACM - - ''' - ACS - - ''' - ADC - - ''' - ADE - - ''' - ADJ - - ''' - ADK - - ''' - ADL - - ''' - ADM - - ''' - ADN - - ''' - ADO - - ''' - ADP - - ''' - ADQ - - ''' - ADR - - ''' - ADT - - ''' - ADW - - ''' - ADY - - ''' - ADZ - - ''' - AEA - - ''' - AEB - - ''' - AEC - - ''' - AED - - ''' - AEF - - ''' - AEH - - ''' - AEI - - ''' - AEJ - - ''' - AEK - - ''' - AEL - - ''' - AEM - - ''' - AEN - - ''' - AEO - - ''' - AEP - - ''' - AES - - ''' - AET - - ''' - AEU - - ''' - AEV - - ''' - AEW - - ''' - AEX - - ''' - AEY - - ''' - AEZ - - ''' - AJ - - ''' - AU - - ''' - CA - - ''' - CAB - - ''' - CAD - - ''' - CAE - - ''' - CAF - - ''' - CAI - - ''' - CAJ - - ''' - CAK - - ''' - CAL - - ''' - CAM - - ''' - CAN - - ''' - CAO - - ''' - CAP - - ''' - CAQ - - ''' - CAR - - ''' - CAS - - ''' - CAT - - ''' - CAU - - ''' - CAV - - ''' - CAW - - ''' - CAX - - ''' - CAY - - ''' - CAZ - - ''' - CD - - ''' - CG - - ''' - CS - - ''' - CT - - ''' - DAB - - ''' - DAC - - ''' - DAD - - ''' - DAF - - ''' - DAG - - ''' - DAH - - ''' - DAI - - ''' - DAJ - - ''' - DAK - - ''' - DAL - - ''' - DAM - - ''' - DAN - - ''' - DAO - - ''' - DAP - - ''' - DAQ - - ''' - DL - - ''' - EG - - ''' - EP - - ''' - ER - - ''' - FAA - - ''' - FAB - - ''' - FAC - - ''' - FC - - ''' - FH - - ''' - FI - - ''' - GAA - - ''' - HAA - - ''' - HD - - ''' - HH - - ''' - IAA - - ''' - IAB - - ''' - ID - - ''' - [IF] - - ''' - IR - - ''' - [IS] - - ''' - KO - - ''' - L1 - - ''' - LA - - ''' - LAA - - ''' - LAB - - ''' - LF - - ''' - MAE - - ''' - MI - - ''' - ML - - ''' - NAA - - ''' - OA - - ''' - PA - - ''' - PAA - - ''' - PC - - ''' - PL - - ''' - RAB - - ''' - RAC - - ''' - RAD - - ''' - RAF - - ''' - RE - - ''' - RF - - ''' - RH - - ''' - RV - - ''' - SA - - ''' - SAA - - ''' - SAD - - ''' - SAE - - ''' - SAI - - ''' - SG - - ''' - SH - - ''' - SM - - ''' - SU - - ''' - TAB - - ''' - TAC - - ''' - TT - - ''' - TV - - ''' - V1 - - ''' - V2 - - ''' - WH - - ''' - XAA - - ''' - YY - - ''' - ZZZ - - ''' - - Item41 - - ''' - - Item42 - - ''' - - Item60 - - ''' - - Item62 - - ''' - - Item63 - - ''' - - Item64 - - ''' - - Item65 - - ''' - - Item66 - - ''' - - Item67 - - ''' - - Item68 - - ''' - - Item70 - - ''' - - Item71 - - ''' - - Item88 - - ''' - - Item95 - - ''' - - Item100 - - ''' - - Item102 - - ''' - - Item103 - - ''' - - Item104 - - ''' - - Item105 - End Enum - - ''' - - Partial Public Class ReferencedDocumentType - - Private issuerAssignedIDField As IDType - - Private formattedIssueDateTimeField As FormattedDateTimeType - - ''' - Public Property IssuerAssignedID() As IDType - Get - Return Me.issuerAssignedIDField - End Get - Set - Me.issuerAssignedIDField = Value - End Set - End Property - - ''' - Public Property FormattedIssueDateTime() As FormattedDateTimeType - Get - Return Me.formattedIssueDateTimeField - End Get - Set - Me.formattedIssueDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class FormattedDateTimeType - - Private dateTimeStringField As FormattedDateTimeTypeDateTimeString - - ''' - Public Property DateTimeString() As FormattedDateTimeTypeDateTimeString - Get - Return Me.dateTimeStringField - End Get - Set - Me.dateTimeStringField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class FormattedDateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainEventType - - Private occurrenceDateTimeField As DateTimeType - - ''' - Public Property OccurrenceDateTime() As DateTimeType - Get - Return Me.occurrenceDateTimeField - End Get - Set - Me.occurrenceDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class HeaderTradeDeliveryType - - Private shipToTradePartyField As TradePartyType - - Private actualDeliverySupplyChainEventField As SupplyChainEventType - - Private despatchAdviceReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property ShipToTradeParty() As TradePartyType - Get - Return Me.shipToTradePartyField - End Get - Set - Me.shipToTradePartyField = Value - End Set - End Property - - ''' - Public Property ActualDeliverySupplyChainEvent() As SupplyChainEventType - Get - Return Me.actualDeliverySupplyChainEventField - End Get - Set - Me.actualDeliverySupplyChainEventField = Value - End Set - End Property - - ''' - Public Property DespatchAdviceReferencedDocument() As ReferencedDocumentType - Get - Return Me.despatchAdviceReferencedDocumentField - End Get - Set - Me.despatchAdviceReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class HeaderTradeAgreementType - - Private buyerReferenceField As TextType - - Private sellerTradePartyField As TradePartyType - - Private buyerTradePartyField As TradePartyType - - Private sellerTaxRepresentativeTradePartyField As TradePartyType - - Private buyerOrderReferencedDocumentField As ReferencedDocumentType - - Private contractReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property BuyerReference() As TextType - Get - Return Me.buyerReferenceField - End Get - Set - Me.buyerReferenceField = Value - End Set - End Property - - ''' - Public Property SellerTradeParty() As TradePartyType - Get - Return Me.sellerTradePartyField - End Get - Set - Me.sellerTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerTradeParty() As TradePartyType - Get - Return Me.buyerTradePartyField - End Get - Set - Me.buyerTradePartyField = Value - End Set - End Property - - ''' - Public Property SellerTaxRepresentativeTradeParty() As TradePartyType - Get - Return Me.sellerTaxRepresentativeTradePartyField - End Get - Set - Me.sellerTaxRepresentativeTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerOrderReferencedDocument() As ReferencedDocumentType - Get - Return Me.buyerOrderReferencedDocumentField - End Get - Set - Me.buyerOrderReferencedDocumentField = Value - End Set - End Property - - ''' - Public Property ContractReferencedDocument() As ReferencedDocumentType - Get - Return Me.contractReferencedDocumentField - End Get - Set - Me.contractReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementLineMonetarySummationType - - Private lineTotalAmountField As AmountType - - ''' - Public Property LineTotalAmount() As AmountType - Get - Return Me.lineTotalAmountField - End Get - Set - Me.lineTotalAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LineTradeSettlementType - - Private applicableTradeTaxField As TradeTaxType - - Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType - - Private specifiedTradeSettlementLineMonetarySummationField As TradeSettlementLineMonetarySummationType - - ''' - Public Property ApplicableTradeTax() As TradeTaxType - Get - Return Me.applicableTradeTaxField - End Get - Set - Me.applicableTradeTaxField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.specifiedTradeAllowanceChargeField - End Get - Set - Me.specifiedTradeAllowanceChargeField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementLineMonetarySummation() As TradeSettlementLineMonetarySummationType - Get - Return Me.specifiedTradeSettlementLineMonetarySummationField - End Get - Set - Me.specifiedTradeSettlementLineMonetarySummationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LineTradeDeliveryType - - Private billedQuantityField As QuantityType - - ''' - Public Property BilledQuantity() As QuantityType - Get - Return Me.billedQuantityField - End Get - Set - Me.billedQuantityField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class QuantityType - - Private unitCodeField As String - - Private valueField As Decimal - - ''' - - Public Property unitCode() As String - Get - Return Me.unitCodeField - End Get - Set - Me.unitCodeField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePriceType - - Private chargeAmountField As AmountType - - Private basisQuantityField As QuantityType - - ''' - Public Property ChargeAmount() As AmountType - Get - Return Me.chargeAmountField - End Get - Set - Me.chargeAmountField = Value - End Set - End Property - - ''' - Public Property BasisQuantity() As QuantityType - Get - Return Me.basisQuantityField - End Get - Set - Me.basisQuantityField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LineTradeAgreementType - - Private netPriceProductTradePriceField As TradePriceType - - ''' - Public Property NetPriceProductTradePrice() As TradePriceType - Get - Return Me.netPriceProductTradePriceField - End Get - Set - Me.netPriceProductTradePriceField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeProductType - - Private globalIDField As IDType - - Private nameField As TextType - - ''' - Public Property GlobalID() As IDType - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentLineDocumentType - - Private lineIDField As IDType - - ''' - Public Property LineID() As IDType - Get - Return Me.lineIDField - End Get - Set - Me.lineIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeLineItemType - - Private associatedDocumentLineDocumentField As DocumentLineDocumentType - - Private specifiedTradeProductField As TradeProductType - - Private specifiedLineTradeAgreementField As LineTradeAgreementType - - Private specifiedLineTradeDeliveryField As LineTradeDeliveryType - - Private specifiedLineTradeSettlementField As LineTradeSettlementType - - ''' - Public Property AssociatedDocumentLineDocument() As DocumentLineDocumentType - Get - Return Me.associatedDocumentLineDocumentField - End Get - Set - Me.associatedDocumentLineDocumentField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeProduct() As TradeProductType - Get - Return Me.specifiedTradeProductField - End Get - Set - Me.specifiedTradeProductField = Value - End Set - End Property - - ''' - Public Property SpecifiedLineTradeAgreement() As LineTradeAgreementType - Get - Return Me.specifiedLineTradeAgreementField - End Get - Set - Me.specifiedLineTradeAgreementField = Value - End Set - End Property - - ''' - Public Property SpecifiedLineTradeDelivery() As LineTradeDeliveryType - Get - Return Me.specifiedLineTradeDeliveryField - End Get - Set - Me.specifiedLineTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property SpecifiedLineTradeSettlement() As LineTradeSettlementType - Get - Return Me.specifiedLineTradeSettlementField - End Get - Set - Me.specifiedLineTradeSettlementField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeTransactionType - - Private includedSupplyChainTradeLineItemField() As SupplyChainTradeLineItemType - - Private applicableHeaderTradeAgreementField As HeaderTradeAgreementType - - Private applicableHeaderTradeDeliveryField As HeaderTradeDeliveryType - - Private applicableHeaderTradeSettlementField As HeaderTradeSettlementType - - ''' - - Public Property IncludedSupplyChainTradeLineItem() As SupplyChainTradeLineItemType() - Get - Return Me.includedSupplyChainTradeLineItemField - End Get - Set - Me.includedSupplyChainTradeLineItemField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeAgreement() As HeaderTradeAgreementType - Get - Return Me.applicableHeaderTradeAgreementField - End Get - Set - Me.applicableHeaderTradeAgreementField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeDelivery() As HeaderTradeDeliveryType - Get - Return Me.applicableHeaderTradeDeliveryField - End Get - Set - Me.applicableHeaderTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeSettlement() As HeaderTradeSettlementType - Get - Return Me.applicableHeaderTradeSettlementField - End Get - Set - Me.applicableHeaderTradeSettlementField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class NoteType - - Private contentField As TextType - - Private subjectCodeField As CodeType - - ''' - Public Property Content() As TextType - Get - Return Me.contentField - End Get - Set - Me.contentField = Value - End Set - End Property - - ''' - Public Property SubjectCode() As CodeType - Get - Return Me.subjectCodeField - End Get - Set - Me.subjectCodeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentCodeType - - Private valueField As DocumentCodeContentType - - ''' - - Public Property Value() As DocumentCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum DocumentCodeContentType - - ''' - - Item80 - - ''' - - Item81 - - ''' - - Item82 - - ''' - - Item83 - - ''' - - Item84 - - ''' - - Item130 - - ''' - - Item202 - - ''' - - Item203 - - ''' - - Item204 - - ''' - - Item211 - - ''' - - Item261 - - ''' - - Item262 - - ''' - - Item295 - - ''' - - Item296 - - ''' - - Item308 - - ''' - - Item325 - - ''' - - Item326 - - ''' - - Item380 - - ''' - - Item381 - - ''' - - Item383 - - ''' - - Item384 - - ''' - - Item385 - - ''' - - Item386 - - ''' - - Item387 - - ''' - - Item388 - - ''' - - Item389 - - ''' - - Item390 - - ''' - - Item393 - - ''' - - Item394 - - ''' - - Item395 - - ''' - - Item396 - - ''' - - Item420 - - ''' - - Item456 - - ''' - - Item457 - - ''' - - Item458 - - ''' - - Item527 - - ''' - - Item575 - - ''' - - Item623 - - ''' - - Item633 - - ''' - - Item751 - - ''' - - Item780 - - ''' - - Item935 - End Enum - - ''' - - Partial Public Class ExchangedDocumentType - - Private idField As IDType - - Private typeCodeField As DocumentCodeType - - Private issueDateTimeField As DateTimeType - - Private includedNoteField() As NoteType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property TypeCode() As DocumentCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property IssueDateTime() As DateTimeType - Get - Return Me.issueDateTimeField - End Get - Set - Me.issueDateTimeField = Value - End Set - End Property - - ''' - - Public Property IncludedNote() As NoteType() - Get - Return Me.includedNoteField - End Get - Set - Me.includedNoteField = Value - End Set - End Property - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.Interfaces/ZUGFeRDInterface/Version2.2_FacturX/CrossIndustryInvoiceType.vb b/Modules.Interfaces/ZUGFeRDInterface/Version2.2_FacturX/CrossIndustryInvoiceType.vb deleted file mode 100644 index 61d654b2..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/Version2.2_FacturX/CrossIndustryInvoiceType.vb +++ /dev/null @@ -1,4427 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict Off -Option Explicit On - -' -'This source code was auto-generated by xsd, Version=4.6.1055.0. -'Source: Factur-X_1.0.06_BASIC_XSD - -Namespace ZUGFeRD.Version2_2_FacturX - ''' - - Partial Public Class CrossIndustryInvoiceType - - Private exchangedDocumentContextField As ExchangedDocumentContextType - - Private exchangedDocumentField As ExchangedDocumentType - - Private supplyChainTradeTransactionField As SupplyChainTradeTransactionType - - ''' - Public Property ExchangedDocumentContext() As ExchangedDocumentContextType - Get - Return Me.exchangedDocumentContextField - End Get - Set - Me.exchangedDocumentContextField = Value - End Set - End Property - - ''' - Public Property ExchangedDocument() As ExchangedDocumentType - Get - Return Me.exchangedDocumentField - End Get - Set - Me.exchangedDocumentField = Value - End Set - End Property - - ''' - Public Property SupplyChainTradeTransaction() As SupplyChainTradeTransactionType - Get - Return Me.supplyChainTradeTransactionField - End Get - Set - Me.supplyChainTradeTransactionField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class ExchangedDocumentContextType - - Private businessProcessSpecifiedDocumentContextParameterField As DocumentContextParameterType - - Private guidelineSpecifiedDocumentContextParameterField As DocumentContextParameterType - - ''' - Public Property BusinessProcessSpecifiedDocumentContextParameter() As DocumentContextParameterType - Get - Return Me.businessProcessSpecifiedDocumentContextParameterField - End Get - Set - Me.businessProcessSpecifiedDocumentContextParameterField = Value - End Set - End Property - - ''' - Public Property GuidelineSpecifiedDocumentContextParameter() As DocumentContextParameterType - Get - Return Me.guidelineSpecifiedDocumentContextParameterField - End Get - Set - Me.guidelineSpecifiedDocumentContextParameterField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentContextParameterType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IDType - - Private schemeIDField As String - - Private valueField As String - - ''' - - Public Property schemeID() As String - Get - Return Me.schemeIDField - End Get - Set - Me.schemeIDField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAccountingAccountType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementHeaderMonetarySummationType - - Private lineTotalAmountField As AmountType - - Private chargeTotalAmountField As AmountType - - Private allowanceTotalAmountField As AmountType - - Private taxBasisTotalAmountField As AmountType - - Private taxTotalAmountField() As AmountType - - Private grandTotalAmountField As AmountType - - Private totalPrepaidAmountField As AmountType - - Private duePayableAmountField As AmountType - - ''' - Public Property LineTotalAmount() As AmountType - Get - Return Me.lineTotalAmountField - End Get - Set - Me.lineTotalAmountField = Value - End Set - End Property - - ''' - Public Property ChargeTotalAmount() As AmountType - Get - Return Me.chargeTotalAmountField - End Get - Set - Me.chargeTotalAmountField = Value - End Set - End Property - - ''' - Public Property AllowanceTotalAmount() As AmountType - Get - Return Me.allowanceTotalAmountField - End Get - Set - Me.allowanceTotalAmountField = Value - End Set - End Property - - ''' - Public Property TaxBasisTotalAmount() As AmountType - Get - Return Me.taxBasisTotalAmountField - End Get - Set - Me.taxBasisTotalAmountField = Value - End Set - End Property - - ''' - - Public Property TaxTotalAmount() As AmountType() - Get - Return Me.taxTotalAmountField - End Get - Set - Me.taxTotalAmountField = Value - End Set - End Property - - ''' - Public Property GrandTotalAmount() As AmountType - Get - Return Me.grandTotalAmountField - End Get - Set - Me.grandTotalAmountField = Value - End Set - End Property - - ''' - Public Property TotalPrepaidAmount() As AmountType - Get - Return Me.totalPrepaidAmountField - End Get - Set - Me.totalPrepaidAmountField = Value - End Set - End Property - - ''' - Public Property DuePayableAmount() As AmountType - Get - Return Me.duePayableAmountField - End Get - Set - Me.duePayableAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AmountType - - Private currencyIDField As String - - Private valueField As Decimal - - ''' - - Public Property currencyID() As String - Get - Return Me.currencyIDField - End Get - Set - Me.currencyIDField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePaymentTermsType - - Private descriptionField As TextType - - Private dueDateDateTimeField As DateTimeType - - Private directDebitMandateIDField As IDType - - ''' - Public Property Description() As TextType - Get - Return Me.descriptionField - End Get - Set - Me.descriptionField = Value - End Set - End Property - - ''' - Public Property DueDateDateTime() As DateTimeType - Get - Return Me.dueDateDateTimeField - End Get - Set - Me.dueDateDateTimeField = Value - End Set - End Property - - ''' - Public Property DirectDebitMandateID() As IDType - Get - Return Me.directDebitMandateIDField - End Get - Set - Me.directDebitMandateIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TextType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeType - - Private itemField As DateTimeTypeDateTimeString - - ''' - - Public Property Item() As DateTimeTypeDateTimeString - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CreditorFinancialAccountType - - Private iBANIDField As IDType - - Private proprietaryIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - - ''' - Public Property ProprietaryID() As IDType - Get - Return Me.proprietaryIDField - End Get - Set - Me.proprietaryIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DebtorFinancialAccountType - - Private iBANIDField As IDType - - ''' - Public Property IBANID() As IDType - Get - Return Me.iBANIDField - End Get - Set - Me.iBANIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class PaymentMeansCodeType - - Private valueField As PaymentMeansCodeContentType - - ''' - - Public Property Value() As PaymentMeansCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum PaymentMeansCodeContentType - - ''' - - Item10 - - ''' - - Item20 - - ''' - - Item30 - - ''' - - Item42 - - ''' - - Item48 - - ''' - - Item49 - - ''' - - Item57 - - ''' - - Item58 - - ''' - - Item59 - - ''' - - Item97 - - ''' - ZZZ - End Enum - - ''' - - Partial Public Class TradeSettlementPaymentMeansType - - Private typeCodeField As PaymentMeansCodeType - - Private payerPartyDebtorFinancialAccountField As DebtorFinancialAccountType - - Private payeePartyCreditorFinancialAccountField As CreditorFinancialAccountType - - ''' - Public Property TypeCode() As PaymentMeansCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property PayerPartyDebtorFinancialAccount() As DebtorFinancialAccountType - Get - Return Me.payerPartyDebtorFinancialAccountField - End Get - Set - Me.payerPartyDebtorFinancialAccountField = Value - End Set - End Property - - ''' - Public Property PayeePartyCreditorFinancialAccount() As CreditorFinancialAccountType - Get - Return Me.payeePartyCreditorFinancialAccountField - End Get - Set - Me.payeePartyCreditorFinancialAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CurrencyCodeType - - Private valueField As CurrencyCodeContentType - - ''' - - Public Property Value() As CurrencyCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum CurrencyCodeContentType - - ''' - AED - - ''' - AFN - - ''' - ALL - - ''' - AMD - - ''' - ANG - - ''' - AOA - - ''' - ARS - - ''' - AUD - - ''' - AWG - - ''' - AZN - - ''' - BAM - - ''' - BBD - - ''' - BDT - - ''' - BGN - - ''' - BHD - - ''' - BIF - - ''' - BMD - - ''' - BND - - ''' - BOB - - ''' - BOV - - ''' - BRL - - ''' - BSD - - ''' - BTN - - ''' - BWP - - ''' - BYN - - ''' - BZD - - ''' - CAD - - ''' - CDF - - ''' - CHE - - ''' - CHF - - ''' - CHW - - ''' - CLF - - ''' - CLP - - ''' - CNY - - ''' - COP - - ''' - COU - - ''' - CRC - - ''' - CUC - - ''' - CUP - - ''' - CVE - - ''' - CZK - - ''' - DJF - - ''' - DKK - - ''' - DOP - - ''' - DZD - - ''' - EGP - - ''' - ERN - - ''' - ETB - - ''' - EUR - - ''' - FJD - - ''' - FKP - - ''' - GBP - - ''' - GEL - - ''' - GHS - - ''' - GIP - - ''' - GMD - - ''' - GNF - - ''' - GTQ - - ''' - GYD - - ''' - HKD - - ''' - HNL - - ''' - HRK - - ''' - HTG - - ''' - HUF - - ''' - IDR - - ''' - ILS - - ''' - INR - - ''' - IQD - - ''' - IRR - - ''' - ISK - - ''' - JMD - - ''' - JOD - - ''' - JPY - - ''' - KES - - ''' - KGS - - ''' - KHR - - ''' - KMF - - ''' - KPW - - ''' - KRW - - ''' - KWD - - ''' - KYD - - ''' - KZT - - ''' - LAK - - ''' - LBP - - ''' - LKR - - ''' - LRD - - ''' - LSL - - ''' - LYD - - ''' - MAD - - ''' - MDL - - ''' - MGA - - ''' - MKD - - ''' - MMK - - ''' - MNT - - ''' - MOP - - ''' - MRU - - ''' - MUR - - ''' - MVR - - ''' - MWK - - ''' - MXN - - ''' - MXV - - ''' - MYR - - ''' - MZN - - ''' - NAD - - ''' - NGN - - ''' - NIO - - ''' - NOK - - ''' - NPR - - ''' - NZD - - ''' - OMR - - ''' - PAB - - ''' - PEN - - ''' - PGK - - ''' - PHP - - ''' - PKR - - ''' - PLN - - ''' - PYG - - ''' - QAR - - ''' - RON - - ''' - RSD - - ''' - RUB - - ''' - RWF - - ''' - SAR - - ''' - SBD - - ''' - SCR - - ''' - SDG - - ''' - SEK - - ''' - SGD - - ''' - SHP - - ''' - SLL - - ''' - SOS - - ''' - SRD - - ''' - SSP - - ''' - STN - - ''' - SVC - - ''' - SYP - - ''' - SZL - - ''' - THB - - ''' - TJS - - ''' - TMT - - ''' - TND - - ''' - TOP - - ''' - [TRY] - - ''' - TTD - - ''' - TWD - - ''' - TZS - - ''' - UAH - - ''' - UGX - - ''' - USD - - ''' - USN - - ''' - UYI - - ''' - UYU - - ''' - UYW - - ''' - UZS - - ''' - VES - - ''' - VND - - ''' - VUV - - ''' - WST - - ''' - XAF - - ''' - XAG - - ''' - XAU - - ''' - XBA - - ''' - XBB - - ''' - XBC - - ''' - XBD - - ''' - XCD - - ''' - XDR - - ''' - XOF - - ''' - XPD - - ''' - XPF - - ''' - XPT - - ''' - XSU - - ''' - XTS - - ''' - XUA - - ''' - XXX - - ''' - YER - - ''' - ZAR - - ''' - ZMW - - ''' - ZWL - End Enum - - ''' - - Partial Public Class HeaderTradeSettlementType - - Private creditorReferenceIDField As IDType - - Private paymentReferenceField As TextType - - Private taxCurrencyCodeField As CurrencyCodeType - - Private invoiceCurrencyCodeField As CurrencyCodeType - - Private payeeTradePartyField As TradePartyType - - Private specifiedTradeSettlementPaymentMeansField As TradeSettlementPaymentMeansType - - Private applicableTradeTaxField() As TradeTaxType - - Private billingSpecifiedPeriodField As SpecifiedPeriodType - - Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType - - Private specifiedTradePaymentTermsField As TradePaymentTermsType - - Private specifiedTradeSettlementHeaderMonetarySummationField As TradeSettlementHeaderMonetarySummationType - - Private invoiceReferencedDocumentField As ReferencedDocumentType - - Private receivableSpecifiedTradeAccountingAccountField As TradeAccountingAccountType - - ''' - Public Property CreditorReferenceID() As IDType - Get - Return Me.creditorReferenceIDField - End Get - Set - Me.creditorReferenceIDField = Value - End Set - End Property - - ''' - Public Property PaymentReference() As TextType - Get - Return Me.paymentReferenceField - End Get - Set - Me.paymentReferenceField = Value - End Set - End Property - - ''' - Public Property TaxCurrencyCode() As CurrencyCodeType - Get - Return Me.taxCurrencyCodeField - End Get - Set - Me.taxCurrencyCodeField = Value - End Set - End Property - - ''' - Public Property InvoiceCurrencyCode() As CurrencyCodeType - Get - Return Me.invoiceCurrencyCodeField - End Get - Set - Me.invoiceCurrencyCodeField = Value - End Set - End Property - - ''' - Public Property PayeeTradeParty() As TradePartyType - Get - Return Me.payeeTradePartyField - End Get - Set - Me.payeeTradePartyField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementPaymentMeans() As TradeSettlementPaymentMeansType - Get - Return Me.specifiedTradeSettlementPaymentMeansField - End Get - Set - Me.specifiedTradeSettlementPaymentMeansField = Value - End Set - End Property - - ''' - - Public Property ApplicableTradeTax() As TradeTaxType() - Get - Return Me.applicableTradeTaxField - End Get - Set - Me.applicableTradeTaxField = Value - End Set - End Property - - ''' - Public Property BillingSpecifiedPeriod() As SpecifiedPeriodType - Get - Return Me.billingSpecifiedPeriodField - End Get - Set - Me.billingSpecifiedPeriodField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.specifiedTradeAllowanceChargeField - End Get - Set - Me.specifiedTradeAllowanceChargeField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradePaymentTerms() As TradePaymentTermsType - Get - Return Me.specifiedTradePaymentTermsField - End Get - Set - Me.specifiedTradePaymentTermsField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementHeaderMonetarySummation() As TradeSettlementHeaderMonetarySummationType - Get - Return Me.specifiedTradeSettlementHeaderMonetarySummationField - End Get - Set - Me.specifiedTradeSettlementHeaderMonetarySummationField = Value - End Set - End Property - - ''' - Public Property InvoiceReferencedDocument() As ReferencedDocumentType - Get - Return Me.invoiceReferencedDocumentField - End Get - Set - Me.invoiceReferencedDocumentField = Value - End Set - End Property - - ''' - Public Property ReceivableSpecifiedTradeAccountingAccount() As TradeAccountingAccountType - Get - Return Me.receivableSpecifiedTradeAccountingAccountField - End Get - Set - Me.receivableSpecifiedTradeAccountingAccountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePartyType - - Private idField() As IDType - - Private globalIDField() As IDType - - Private nameField As TextType - - Private specifiedLegalOrganizationField As LegalOrganizationType - - Private postalTradeAddressField As TradeAddressType - - Private uRIUniversalCommunicationField As UniversalCommunicationType - - Private specifiedTaxRegistrationField() As TaxRegistrationType - - ''' - - Public Property ID() As IDType() - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - - Public Property GlobalID() As IDType() - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - Public Property SpecifiedLegalOrganization() As LegalOrganizationType - Get - Return Me.specifiedLegalOrganizationField - End Get - Set - Me.specifiedLegalOrganizationField = Value - End Set - End Property - - ''' - Public Property PostalTradeAddress() As TradeAddressType - Get - Return Me.postalTradeAddressField - End Get - Set - Me.postalTradeAddressField = Value - End Set - End Property - - ''' - Public Property URIUniversalCommunication() As UniversalCommunicationType - Get - Return Me.uRIUniversalCommunicationField - End Get - Set - Me.uRIUniversalCommunicationField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTaxRegistration() As TaxRegistrationType() - Get - Return Me.specifiedTaxRegistrationField - End Get - Set - Me.specifiedTaxRegistrationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LegalOrganizationType - - Private idField As IDType - - Private tradingBusinessNameField As TextType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property TradingBusinessName() As TextType - Get - Return Me.tradingBusinessNameField - End Get - Set - Me.tradingBusinessNameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAddressType - - Private postcodeCodeField As CodeType - - Private lineOneField As TextType - - Private lineTwoField As TextType - - Private lineThreeField As TextType - - Private cityNameField As TextType - - Private countryIDField As CountryIDType - - Private countrySubDivisionNameField As TextType - - ''' - Public Property PostcodeCode() As CodeType - Get - Return Me.postcodeCodeField - End Get - Set - Me.postcodeCodeField = Value - End Set - End Property - - ''' - Public Property LineOne() As TextType - Get - Return Me.lineOneField - End Get - Set - Me.lineOneField = Value - End Set - End Property - - ''' - Public Property LineTwo() As TextType - Get - Return Me.lineTwoField - End Get - Set - Me.lineTwoField = Value - End Set - End Property - - ''' - Public Property LineThree() As TextType - Get - Return Me.lineThreeField - End Get - Set - Me.lineThreeField = Value - End Set - End Property - - ''' - Public Property CityName() As TextType - Get - Return Me.cityNameField - End Get - Set - Me.cityNameField = Value - End Set - End Property - - ''' - Public Property CountryID() As CountryIDType - Get - Return Me.countryIDField - End Get - Set - Me.countryIDField = Value - End Set - End Property - - ''' - Public Property CountrySubDivisionName() As TextType - Get - Return Me.countrySubDivisionNameField - End Get - Set - Me.countrySubDivisionNameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CodeType - - Private valueField As String - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class CountryIDType - - Private valueField As CountryIDContentType - - ''' - - Public Property Value() As CountryIDContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum CountryIDContentType - - ''' - - Item1A - - ''' - AD - - ''' - AE - - ''' - AF - - ''' - AG - - ''' - AI - - ''' - AL - - ''' - AM - - ''' - AO - - ''' - AQ - - ''' - AR - - ''' - [AS] - - ''' - AT - - ''' - AU - - ''' - AW - - ''' - AX - - ''' - AZ - - ''' - BA - - ''' - BB - - ''' - BD - - ''' - BE - - ''' - BF - - ''' - BG - - ''' - BH - - ''' - BI - - ''' - BJ - - ''' - BL - - ''' - BM - - ''' - BN - - ''' - BO - - ''' - BQ - - ''' - BR - - ''' - BS - - ''' - BT - - ''' - BV - - ''' - BW - - ''' - BY - - ''' - BZ - - ''' - CA - - ''' - CC - - ''' - CD - - ''' - CF - - ''' - CG - - ''' - CH - - ''' - CI - - ''' - CK - - ''' - CL - - ''' - CM - - ''' - CN - - ''' - CO - - ''' - CR - - ''' - CU - - ''' - CV - - ''' - CW - - ''' - CX - - ''' - CY - - ''' - CZ - - ''' - DE - - ''' - DJ - - ''' - DK - - ''' - DM - - ''' - [DO] - - ''' - DZ - - ''' - EC - - ''' - EE - - ''' - EG - - ''' - EH - - ''' - ER - - ''' - ES - - ''' - ET - - ''' - FI - - ''' - FJ - - ''' - FK - - ''' - FM - - ''' - FO - - ''' - FR - - ''' - GA - - ''' - GB - - ''' - GD - - ''' - GE - - ''' - GF - - ''' - GG - - ''' - GH - - ''' - GI - - ''' - GL - - ''' - GM - - ''' - GN - - ''' - GP - - ''' - GQ - - ''' - GR - - ''' - GS - - ''' - GT - - ''' - GU - - ''' - GW - - ''' - GY - - ''' - HK - - ''' - HM - - ''' - HN - - ''' - HR - - ''' - HT - - ''' - HU - - ''' - ID - - ''' - IE - - ''' - IL - - ''' - IM - - ''' - [IN] - - ''' - IO - - ''' - IQ - - ''' - IR - - ''' - [IS] - - ''' - IT - - ''' - JE - - ''' - JM - - ''' - JO - - ''' - JP - - ''' - KE - - ''' - KG - - ''' - KH - - ''' - KI - - ''' - KM - - ''' - KN - - ''' - KP - - ''' - KR - - ''' - KW - - ''' - KY - - ''' - KZ - - ''' - LA - - ''' - LB - - ''' - LC - - ''' - LI - - ''' - LK - - ''' - LR - - ''' - LS - - ''' - LT - - ''' - LU - - ''' - LV - - ''' - LY - - ''' - MA - - ''' - MC - - ''' - MD - - ''' - [ME] - - ''' - MF - - ''' - MG - - ''' - MH - - ''' - MK - - ''' - ML - - ''' - MM - - ''' - MN - - ''' - MO - - ''' - MP - - ''' - MQ - - ''' - MR - - ''' - MS - - ''' - MT - - ''' - MU - - ''' - MV - - ''' - MW - - ''' - MX - - ''' - MY - - ''' - MZ - - ''' - NA - - ''' - NC - - ''' - NE - - ''' - NF - - ''' - NG - - ''' - NI - - ''' - NL - - ''' - NO - - ''' - NP - - ''' - NR - - ''' - NU - - ''' - NZ - - ''' - OM - - ''' - PA - - ''' - PE - - ''' - PF - - ''' - PG - - ''' - PH - - ''' - PK - - ''' - PL - - ''' - PM - - ''' - PN - - ''' - PR - - ''' - PS - - ''' - PT - - ''' - PW - - ''' - PY - - ''' - QA - - ''' - RE - - ''' - RO - - ''' - RS - - ''' - RU - - ''' - RW - - ''' - SA - - ''' - SB - - ''' - SC - - ''' - SD - - ''' - SE - - ''' - SG - - ''' - SH - - ''' - SI - - ''' - SJ - - ''' - SK - - ''' - SL - - ''' - SM - - ''' - SN - - ''' - SO - - ''' - SR - - ''' - SS - - ''' - ST - - ''' - SV - - ''' - SX - - ''' - SY - - ''' - SZ - - ''' - TC - - ''' - TD - - ''' - TF - - ''' - TG - - ''' - TH - - ''' - TJ - - ''' - TK - - ''' - TL - - ''' - TM - - ''' - TN - - ''' - [TO] - - ''' - TR - - ''' - TT - - ''' - TV - - ''' - TW - - ''' - TZ - - ''' - UA - - ''' - UG - - ''' - UM - - ''' - US - - ''' - UY - - ''' - UZ - - ''' - VA - - ''' - VC - - ''' - VE - - ''' - VG - - ''' - VI - - ''' - VN - - ''' - VU - - ''' - WF - - ''' - WS - - ''' - XI - - ''' - YE - - ''' - YT - - ''' - ZA - - ''' - ZM - - ''' - ZW - End Enum - - ''' - - Partial Public Class UniversalCommunicationType - - Private uRIIDField As IDType - - ''' - Public Property URIID() As IDType - Get - Return Me.uRIIDField - End Get - Set - Me.uRIIDField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxRegistrationType - - Private idField As IDType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeTaxType - - Private calculatedAmountField As AmountType - - Private typeCodeField As TaxTypeCodeType - - Private exemptionReasonField As TextType - - Private basisAmountField As AmountType - - Private categoryCodeField As TaxCategoryCodeType - - Private exemptionReasonCodeField As CodeType - - Private dueDateTypeCodeField As TimeReferenceCodeType - - Private rateApplicablePercentField As PercentType - - ''' - Public Property CalculatedAmount() As AmountType - Get - Return Me.calculatedAmountField - End Get - Set - Me.calculatedAmountField = Value - End Set - End Property - - ''' - Public Property TypeCode() As TaxTypeCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReason() As TextType - Get - Return Me.exemptionReasonField - End Get - Set - Me.exemptionReasonField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property CategoryCode() As TaxCategoryCodeType - Get - Return Me.categoryCodeField - End Get - Set - Me.categoryCodeField = Value - End Set - End Property - - ''' - Public Property ExemptionReasonCode() As CodeType - Get - Return Me.exemptionReasonCodeField - End Get - Set - Me.exemptionReasonCodeField = Value - End Set - End Property - - ''' - Public Property DueDateTypeCode() As TimeReferenceCodeType - Get - Return Me.dueDateTypeCodeField - End Get - Set - Me.dueDateTypeCodeField = Value - End Set - End Property - - ''' - Public Property RateApplicablePercent() As PercentType - Get - Return Me.rateApplicablePercentField - End Get - Set - Me.rateApplicablePercentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TaxTypeCodeType - - Private valueField As TaxTypeCodeContentType - - ''' - - Public Property Value() As TaxTypeCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TaxTypeCodeContentType - - ''' - VAT - End Enum - - ''' - - Partial Public Class TaxCategoryCodeType - - Private valueField As TaxCategoryCodeContentType - - ''' - - Public Property Value() As TaxCategoryCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TaxCategoryCodeContentType - - ''' - AE - - ''' - E - - ''' - G - - ''' - K - - ''' - L - - ''' - M - - ''' - O - - ''' - S - - ''' - Z - End Enum - - ''' - - Partial Public Class TimeReferenceCodeType - - Private valueField As TimeReferenceCodeContentType - - ''' - - Public Property Value() As TimeReferenceCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum TimeReferenceCodeContentType - - ''' - - Item5 - - ''' - - Item29 - - ''' - - Item72 - End Enum - - ''' - - Partial Public Class PercentType - - Private valueField As Decimal - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SpecifiedPeriodType - - Private startDateTimeField As DateTimeType - - Private endDateTimeField As DateTimeType - - ''' - Public Property StartDateTime() As DateTimeType - Get - Return Me.startDateTimeField - End Get - Set - Me.startDateTimeField = Value - End Set - End Property - - ''' - Public Property EndDateTime() As DateTimeType - Get - Return Me.endDateTimeField - End Get - Set - Me.endDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeAllowanceChargeType - - Private chargeIndicatorField As IndicatorType - - Private calculationPercentField As PercentType - - Private basisAmountField As AmountType - - Private actualAmountField As AmountType - - Private reasonCodeField As AllowanceChargeReasonCodeType - - Private reasonField As TextType - - Private categoryTradeTaxField As TradeTaxType - - ''' - Public Property ChargeIndicator() As IndicatorType - Get - Return Me.chargeIndicatorField - End Get - Set - Me.chargeIndicatorField = Value - End Set - End Property - - ''' - Public Property CalculationPercent() As PercentType - Get - Return Me.calculationPercentField - End Get - Set - Me.calculationPercentField = Value - End Set - End Property - - ''' - Public Property BasisAmount() As AmountType - Get - Return Me.basisAmountField - End Get - Set - Me.basisAmountField = Value - End Set - End Property - - ''' - Public Property ActualAmount() As AmountType - Get - Return Me.actualAmountField - End Get - Set - Me.actualAmountField = Value - End Set - End Property - - ''' - Public Property ReasonCode() As AllowanceChargeReasonCodeType - Get - Return Me.reasonCodeField - End Get - Set - Me.reasonCodeField = Value - End Set - End Property - - ''' - Public Property Reason() As TextType - Get - Return Me.reasonField - End Get - Set - Me.reasonField = Value - End Set - End Property - - ''' - Public Property CategoryTradeTax() As TradeTaxType - Get - Return Me.categoryTradeTaxField - End Get - Set - Me.categoryTradeTaxField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class IndicatorType - - Private itemField As Boolean - - ''' - - Public Property Item() As Boolean - Get - Return Me.itemField - End Get - Set - Me.itemField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class AllowanceChargeReasonCodeType - - Private valueField As AllowanceChargeReasonCodeContentType - - ''' - - Public Property Value() As AllowanceChargeReasonCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum AllowanceChargeReasonCodeContentType - - ''' - AA - - ''' - AAA - - ''' - AAC - - ''' - AAD - - ''' - AAE - - ''' - AAF - - ''' - AAH - - ''' - AAI - - ''' - AAS - - ''' - AAT - - ''' - AAV - - ''' - AAY - - ''' - AAZ - - ''' - ABA - - ''' - ABB - - ''' - ABC - - ''' - ABD - - ''' - ABF - - ''' - ABK - - ''' - ABL - - ''' - ABN - - ''' - ABR - - ''' - ABS - - ''' - ABT - - ''' - ABU - - ''' - ACF - - ''' - ACG - - ''' - ACH - - ''' - ACI - - ''' - ACJ - - ''' - ACK - - ''' - ACL - - ''' - ACM - - ''' - ACS - - ''' - ADC - - ''' - ADE - - ''' - ADJ - - ''' - ADK - - ''' - ADL - - ''' - ADM - - ''' - ADN - - ''' - ADO - - ''' - ADP - - ''' - ADQ - - ''' - ADR - - ''' - ADT - - ''' - ADW - - ''' - ADY - - ''' - ADZ - - ''' - AEA - - ''' - AEB - - ''' - AEC - - ''' - AED - - ''' - AEF - - ''' - AEH - - ''' - AEI - - ''' - AEJ - - ''' - AEK - - ''' - AEL - - ''' - AEM - - ''' - AEN - - ''' - AEO - - ''' - AEP - - ''' - AES - - ''' - AET - - ''' - AEU - - ''' - AEV - - ''' - AEW - - ''' - AEX - - ''' - AEY - - ''' - AEZ - - ''' - AJ - - ''' - AU - - ''' - CA - - ''' - CAB - - ''' - CAD - - ''' - CAE - - ''' - CAF - - ''' - CAI - - ''' - CAJ - - ''' - CAK - - ''' - CAL - - ''' - CAM - - ''' - CAN - - ''' - CAO - - ''' - CAP - - ''' - CAQ - - ''' - CAR - - ''' - CAS - - ''' - CAT - - ''' - CAU - - ''' - CAV - - ''' - CAW - - ''' - CAX - - ''' - CAY - - ''' - CAZ - - ''' - CD - - ''' - CG - - ''' - CS - - ''' - CT - - ''' - DAB - - ''' - DAC - - ''' - DAD - - ''' - DAF - - ''' - DAG - - ''' - DAH - - ''' - DAI - - ''' - DAJ - - ''' - DAK - - ''' - DAL - - ''' - DAM - - ''' - DAN - - ''' - DAO - - ''' - DAP - - ''' - DAQ - - ''' - DL - - ''' - EG - - ''' - EP - - ''' - ER - - ''' - FAA - - ''' - FAB - - ''' - FAC - - ''' - FC - - ''' - FH - - ''' - FI - - ''' - GAA - - ''' - HAA - - ''' - HD - - ''' - HH - - ''' - IAA - - ''' - IAB - - ''' - ID - - ''' - [IF] - - ''' - IR - - ''' - [IS] - - ''' - KO - - ''' - L1 - - ''' - LA - - ''' - LAA - - ''' - LAB - - ''' - LF - - ''' - MAE - - ''' - MI - - ''' - ML - - ''' - NAA - - ''' - OA - - ''' - PA - - ''' - PAA - - ''' - PC - - ''' - PL - - ''' - RAB - - ''' - RAC - - ''' - RAD - - ''' - RAF - - ''' - RE - - ''' - RF - - ''' - RH - - ''' - RV - - ''' - SA - - ''' - SAA - - ''' - SAD - - ''' - SAE - - ''' - SAI - - ''' - SG - - ''' - SH - - ''' - SM - - ''' - SU - - ''' - TAB - - ''' - TAC - - ''' - TT - - ''' - TV - - ''' - V1 - - ''' - V2 - - ''' - WH - - ''' - XAA - - ''' - YY - - ''' - ZZZ - - ''' - - Item41 - - ''' - - Item42 - - ''' - - Item60 - - ''' - - Item62 - - ''' - - Item63 - - ''' - - Item64 - - ''' - - Item65 - - ''' - - Item66 - - ''' - - Item67 - - ''' - - Item68 - - ''' - - Item70 - - ''' - - Item71 - - ''' - - Item88 - - ''' - - Item95 - - ''' - - Item100 - - ''' - - Item102 - - ''' - - Item103 - - ''' - - Item104 - - ''' - - Item105 - End Enum - - ''' - - Partial Public Class ReferencedDocumentType - - Private issuerAssignedIDField As IDType - - Private formattedIssueDateTimeField As FormattedDateTimeType - - ''' - Public Property IssuerAssignedID() As IDType - Get - Return Me.issuerAssignedIDField - End Get - Set - Me.issuerAssignedIDField = Value - End Set - End Property - - ''' - Public Property FormattedIssueDateTime() As FormattedDateTimeType - Get - Return Me.formattedIssueDateTimeField - End Get - Set - Me.formattedIssueDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class FormattedDateTimeType - - Private dateTimeStringField As FormattedDateTimeTypeDateTimeString - - ''' - Public Property DateTimeString() As FormattedDateTimeTypeDateTimeString - Get - Return Me.dateTimeStringField - End Get - Set - Me.dateTimeStringField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class FormattedDateTimeTypeDateTimeString - - Private formatField As String - - Private valueField As String - - ''' - - Public Property format() As String - Get - Return Me.formatField - End Get - Set - Me.formatField = Value - End Set - End Property - - ''' - - Public Property Value() As String - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainEventType - - Private occurrenceDateTimeField As DateTimeType - - ''' - Public Property OccurrenceDateTime() As DateTimeType - Get - Return Me.occurrenceDateTimeField - End Get - Set - Me.occurrenceDateTimeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class HeaderTradeDeliveryType - - Private shipToTradePartyField As TradePartyType - - Private actualDeliverySupplyChainEventField As SupplyChainEventType - - Private despatchAdviceReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property ShipToTradeParty() As TradePartyType - Get - Return Me.shipToTradePartyField - End Get - Set - Me.shipToTradePartyField = Value - End Set - End Property - - ''' - Public Property ActualDeliverySupplyChainEvent() As SupplyChainEventType - Get - Return Me.actualDeliverySupplyChainEventField - End Get - Set - Me.actualDeliverySupplyChainEventField = Value - End Set - End Property - - ''' - Public Property DespatchAdviceReferencedDocument() As ReferencedDocumentType - Get - Return Me.despatchAdviceReferencedDocumentField - End Get - Set - Me.despatchAdviceReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class HeaderTradeAgreementType - - Private buyerReferenceField As TextType - - Private sellerTradePartyField As TradePartyType - - Private buyerTradePartyField As TradePartyType - - Private sellerTaxRepresentativeTradePartyField As TradePartyType - - Private buyerOrderReferencedDocumentField As ReferencedDocumentType - - Private contractReferencedDocumentField As ReferencedDocumentType - - ''' - Public Property BuyerReference() As TextType - Get - Return Me.buyerReferenceField - End Get - Set - Me.buyerReferenceField = Value - End Set - End Property - - ''' - Public Property SellerTradeParty() As TradePartyType - Get - Return Me.sellerTradePartyField - End Get - Set - Me.sellerTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerTradeParty() As TradePartyType - Get - Return Me.buyerTradePartyField - End Get - Set - Me.buyerTradePartyField = Value - End Set - End Property - - ''' - Public Property SellerTaxRepresentativeTradeParty() As TradePartyType - Get - Return Me.sellerTaxRepresentativeTradePartyField - End Get - Set - Me.sellerTaxRepresentativeTradePartyField = Value - End Set - End Property - - ''' - Public Property BuyerOrderReferencedDocument() As ReferencedDocumentType - Get - Return Me.buyerOrderReferencedDocumentField - End Get - Set - Me.buyerOrderReferencedDocumentField = Value - End Set - End Property - - ''' - Public Property ContractReferencedDocument() As ReferencedDocumentType - Get - Return Me.contractReferencedDocumentField - End Get - Set - Me.contractReferencedDocumentField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeSettlementLineMonetarySummationType - - Private lineTotalAmountField As AmountType - - ''' - Public Property LineTotalAmount() As AmountType - Get - Return Me.lineTotalAmountField - End Get - Set - Me.lineTotalAmountField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LineTradeSettlementType - - Private applicableTradeTaxField As TradeTaxType - - Private billingSpecifiedPeriodField As SpecifiedPeriodType - - Private specifiedTradeAllowanceChargeField() As TradeAllowanceChargeType - - Private specifiedTradeSettlementLineMonetarySummationField As TradeSettlementLineMonetarySummationType - - ''' - Public Property ApplicableTradeTax() As TradeTaxType - Get - Return Me.applicableTradeTaxField - End Get - Set - Me.applicableTradeTaxField = Value - End Set - End Property - - ''' - Public Property BillingSpecifiedPeriod() As SpecifiedPeriodType - Get - Return Me.billingSpecifiedPeriodField - End Get - Set - Me.billingSpecifiedPeriodField = Value - End Set - End Property - - ''' - - Public Property SpecifiedTradeAllowanceCharge() As TradeAllowanceChargeType() - Get - Return Me.specifiedTradeAllowanceChargeField - End Get - Set - Me.specifiedTradeAllowanceChargeField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeSettlementLineMonetarySummation() As TradeSettlementLineMonetarySummationType - Get - Return Me.specifiedTradeSettlementLineMonetarySummationField - End Get - Set - Me.specifiedTradeSettlementLineMonetarySummationField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LineTradeDeliveryType - - Private billedQuantityField As QuantityType - - ''' - Public Property BilledQuantity() As QuantityType - Get - Return Me.billedQuantityField - End Get - Set - Me.billedQuantityField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class QuantityType - - Private unitCodeField As String - - Private valueField As Decimal - - ''' - - Public Property unitCode() As String - Get - Return Me.unitCodeField - End Get - Set - Me.unitCodeField = Value - End Set - End Property - - ''' - - Public Property Value() As Decimal - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradePriceType - - Private chargeAmountField As AmountType - - Private basisQuantityField As QuantityType - - Private appliedTradeAllowanceChargeField As TradeAllowanceChargeType - - ''' - Public Property ChargeAmount() As AmountType - Get - Return Me.chargeAmountField - End Get - Set - Me.chargeAmountField = Value - End Set - End Property - - ''' - Public Property BasisQuantity() As QuantityType - Get - Return Me.basisQuantityField - End Get - Set - Me.basisQuantityField = Value - End Set - End Property - - ''' - Public Property AppliedTradeAllowanceCharge() As TradeAllowanceChargeType - Get - Return Me.appliedTradeAllowanceChargeField - End Get - Set - Me.appliedTradeAllowanceChargeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class LineTradeAgreementType - - Private grossPriceProductTradePriceField As TradePriceType - - Private netPriceProductTradePriceField As TradePriceType - - ''' - Public Property GrossPriceProductTradePrice() As TradePriceType - Get - Return Me.grossPriceProductTradePriceField - End Get - Set - Me.grossPriceProductTradePriceField = Value - End Set - End Property - - ''' - Public Property NetPriceProductTradePrice() As TradePriceType - Get - Return Me.netPriceProductTradePriceField - End Get - Set - Me.netPriceProductTradePriceField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class TradeProductType - - Private globalIDField As IDType - - Private nameField As TextType - - ''' - Public Property GlobalID() As IDType - Get - Return Me.globalIDField - End Get - Set - Me.globalIDField = Value - End Set - End Property - - ''' - Public Property Name() As TextType - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentLineDocumentType - - Private lineIDField As IDType - - Private includedNoteField As NoteType - - ''' - Public Property LineID() As IDType - Get - Return Me.lineIDField - End Get - Set - Me.lineIDField = Value - End Set - End Property - - ''' - Public Property IncludedNote() As NoteType - Get - Return Me.includedNoteField - End Get - Set - Me.includedNoteField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class NoteType - - Private contentField As TextType - - Private subjectCodeField As CodeType - - ''' - Public Property Content() As TextType - Get - Return Me.contentField - End Get - Set - Me.contentField = Value - End Set - End Property - - ''' - Public Property SubjectCode() As CodeType - Get - Return Me.subjectCodeField - End Get - Set - Me.subjectCodeField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeLineItemType - - Private associatedDocumentLineDocumentField As DocumentLineDocumentType - - Private specifiedTradeProductField As TradeProductType - - Private specifiedLineTradeAgreementField As LineTradeAgreementType - - Private specifiedLineTradeDeliveryField As LineTradeDeliveryType - - Private specifiedLineTradeSettlementField As LineTradeSettlementType - - ''' - Public Property AssociatedDocumentLineDocument() As DocumentLineDocumentType - Get - Return Me.associatedDocumentLineDocumentField - End Get - Set - Me.associatedDocumentLineDocumentField = Value - End Set - End Property - - ''' - Public Property SpecifiedTradeProduct() As TradeProductType - Get - Return Me.specifiedTradeProductField - End Get - Set - Me.specifiedTradeProductField = Value - End Set - End Property - - ''' - Public Property SpecifiedLineTradeAgreement() As LineTradeAgreementType - Get - Return Me.specifiedLineTradeAgreementField - End Get - Set - Me.specifiedLineTradeAgreementField = Value - End Set - End Property - - ''' - Public Property SpecifiedLineTradeDelivery() As LineTradeDeliveryType - Get - Return Me.specifiedLineTradeDeliveryField - End Get - Set - Me.specifiedLineTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property SpecifiedLineTradeSettlement() As LineTradeSettlementType - Get - Return Me.specifiedLineTradeSettlementField - End Get - Set - Me.specifiedLineTradeSettlementField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class SupplyChainTradeTransactionType - - Private includedSupplyChainTradeLineItemField() As SupplyChainTradeLineItemType - - Private applicableHeaderTradeAgreementField As HeaderTradeAgreementType - - Private applicableHeaderTradeDeliveryField As HeaderTradeDeliveryType - - Private applicableHeaderTradeSettlementField As HeaderTradeSettlementType - - ''' - - Public Property IncludedSupplyChainTradeLineItem() As SupplyChainTradeLineItemType() - Get - Return Me.includedSupplyChainTradeLineItemField - End Get - Set - Me.includedSupplyChainTradeLineItemField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeAgreement() As HeaderTradeAgreementType - Get - Return Me.applicableHeaderTradeAgreementField - End Get - Set - Me.applicableHeaderTradeAgreementField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeDelivery() As HeaderTradeDeliveryType - Get - Return Me.applicableHeaderTradeDeliveryField - End Get - Set - Me.applicableHeaderTradeDeliveryField = Value - End Set - End Property - - ''' - Public Property ApplicableHeaderTradeSettlement() As HeaderTradeSettlementType - Get - Return Me.applicableHeaderTradeSettlementField - End Get - Set - Me.applicableHeaderTradeSettlementField = Value - End Set - End Property - End Class - - ''' - - Partial Public Class DocumentCodeType - - Private valueField As DocumentCodeContentType - - ''' - - Public Property Value() As DocumentCodeContentType - Get - Return Me.valueField - End Get - Set - Me.valueField = Value - End Set - End Property - End Class - - ''' - - Public Enum DocumentCodeContentType - - ''' - - Item80 - - ''' - - Item81 - - ''' - - Item82 - - ''' - - Item83 - - ''' - - Item84 - - ''' - - Item130 - - ''' - - Item202 - - ''' - - Item203 - - ''' - - Item204 - - ''' - - Item211 - - ''' - - Item261 - - ''' - - Item262 - - ''' - - Item295 - - ''' - - Item296 - - ''' - - Item308 - - ''' - - Item325 - - ''' - - Item326 - - ''' - - Item380 - - ''' - - Item381 - - ''' - - Item383 - - ''' - - Item384 - - ''' - - Item385 - - ''' - - Item386 - - ''' - - Item387 - - ''' - - Item388 - - ''' - - Item389 - - ''' - - Item390 - - ''' - - Item393 - - ''' - - Item394 - - ''' - - Item395 - - ''' - - Item396 - - ''' - - Item420 - - ''' - - Item456 - - ''' - - Item457 - - ''' - - Item458 - - ''' - - Item527 - - ''' - - Item575 - - ''' - - Item623 - - ''' - - Item633 - - ''' - - Item751 - - ''' - - Item780 - - ''' - - Item875 - - ''' - - Item876 - - ''' - - Item877 - - ''' - - Item935 - End Enum - - ''' - - Partial Public Class ExchangedDocumentType - - Private idField As IDType - - Private typeCodeField As DocumentCodeType - - Private issueDateTimeField As DateTimeType - - Private includedNoteField() As NoteType - - ''' - Public Property ID() As IDType - Get - Return Me.idField - End Get - Set - Me.idField = Value - End Set - End Property - - ''' - Public Property TypeCode() As DocumentCodeType - Get - Return Me.typeCodeField - End Get - Set - Me.typeCodeField = Value - End Set - End Property - - ''' - Public Property IssueDateTime() As DateTimeType - Get - Return Me.issueDateTimeField - End Get - Set - Me.issueDateTimeField = Value - End Set - End Property - - ''' - - Public Property IncludedNote() As NoteType() - Get - Return Me.includedNoteField - End Get - Set - Me.includedNoteField = Value - End Set - End Property - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.Interfaces/ZUGFeRDInterface/XmlItemProperty.vb b/Modules.Interfaces/ZUGFeRDInterface/XmlItemProperty.vb deleted file mode 100644 index a14c456e..00000000 --- a/Modules.Interfaces/ZUGFeRDInterface/XmlItemProperty.vb +++ /dev/null @@ -1,8 +0,0 @@ -Public Class XmlItemProperty - Public TableName As String - Public TableColumn As String - Public Description As String - Public IsRequired As Boolean - Public IsGrouped As Boolean - Public GroupScope As String -End Class \ No newline at end of file diff --git a/Modules.Interfaces/app.config b/Modules.Interfaces/app.config deleted file mode 100644 index d5fed9f7..00000000 --- a/Modules.Interfaces/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.Interfaces/packages.config b/Modules.Interfaces/packages.config deleted file mode 100644 index ef03c2c1..00000000 --- a/Modules.Interfaces/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Modules.Jobs/App.config b/Modules.Jobs/App.config deleted file mode 100644 index 6117847c..00000000 --- a/Modules.Jobs/App.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.Jobs/EDMI/ADSync/ADSyncArgs.vb b/Modules.Jobs/EDMI/ADSync/ADSyncArgs.vb deleted file mode 100644 index d98716de..00000000 --- a/Modules.Jobs/EDMI/ADSync/ADSyncArgs.vb +++ /dev/null @@ -1,14 +0,0 @@ -Public Class ADSyncArgs - Inherits JobArgs - - ''' - ''' LDAP URI that acts as the root node of searches, ex: LDAP://DIGITALDATA - ''' - Public RootPath As String - - Public UserFilter As String - Public GroupFilter As String - - Public DisableFirebird As String - Public DisableMSSQL As String -End Class diff --git a/Modules.Jobs/EDMI/ADSync/ADSyncJob.vb b/Modules.Jobs/EDMI/ADSync/ADSyncJob.vb deleted file mode 100644 index 5598f275..00000000 --- a/Modules.Jobs/EDMI/ADSync/ADSyncJob.vb +++ /dev/null @@ -1,85 +0,0 @@ -Imports System.Collections.Generic -Imports System.Data -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Interfaces -Imports DigitalData.Modules.Logging - -Public Class ADSyncJob - Inherits JobBase - Implements IJob(Of ADSyncArgs) - - Public Sub New(LogConfig As LogConfig, Firebird As Firebird, MSSQL As MSSQLServer) - MyBase.New(LogConfig, Firebird, MSSQL) - End Sub - - Public Sub Start(Arguments As ADSyncArgs) Implements IJob(Of ADSyncArgs).Start - Dim oJobName As String = [GetType]().Name - - Try - Dim oSync = New ActiveDirectoryInterface(_LogConfig, Arguments.RootPath) - - _Logger.Info("Running job {0}", oJobName) - - If oSync.Authenticate() = False Then - _Logger.Warn("Job {0} could not be completed! Authentication failed!", oJobName) - Exit Sub - End If - - Dim oGroups = GetGroups() - Dim oAttributeMappings = GetAttributeMappings() - _Logger.Debug("Found {0} Groups", oGroups.Count) - - For Each oGroup In oGroups - _Logger.Debug("Syncing Group [{0}]", oGroup) - Dim oSyncedUsers = oSync.SyncUsersForGroup(oGroup, oAttributeMappings, _Firebird, _MSSQL, Arguments.UserFilter) - - If oSyncedUsers Is Nothing Then - _Logger.Warn("Group [{0}] could not be synced!", oGroup) - ElseIf oSyncedUsers.Count > 0 Then - _Logger.Info("Processed [{0}] users for group [{1}]", oSyncedUsers.Count, oGroup) - End If - Next - - _Logger.Info("Job {0} completed!", oJobName) - Catch ex As Exception - _Logger.Warn("Job {0} failed!", oJobName) - _Logger.Error(ex) - End Try - End Sub - - Private Function GetGroups() As List(Of String) - Try - Dim oGroups As New List(Of String) - Dim oDatatable = _MSSQL.GetDatatable("SELECT NAME FROM TBDD_GROUPS WHERE AD_SYNC = 1 AND ACTIVE = 1") - - For Each oRow As DataRow In oDatatable.Rows - oGroups.Add(oRow.Item("NAME")) - Next - - Return oGroups - Catch ex As Exception - _Logger.Error(ex) - Return New List(Of String) - End Try - End Function - - Private Function GetAttributeMappings() As List(Of AttributeMapping) - Dim oDatatable = _MSSQL.GetDatatable("SELECT * FROM TBDD_EXTATTRIBUTES_MATCHING") - - Dim oAttributeMappings = New List(Of AttributeMapping) - - For Each oRow As DataRow In oDatatable.Rows - oAttributeMappings.Add(New AttributeMapping() With { - .AttributeName = oRow.Item("EXT_ATTRIBUTE"), - .FirebirdSyskey = oRow.Item("FB_SYS_KEY"), - .MSSQLColumn = oRow.Item("TBDD_USER_COLUMN") - }) - Next - - Return oAttributeMappings - End Function - - Public Function ShouldStart(Arguments As ADSyncArgs) As Boolean Implements IJob(Of ADSyncArgs).ShouldStart - Return Arguments.Enabled - End Function -End Class diff --git a/Modules.Jobs/EDMI/GraphQL/GraphQLArgs.vb b/Modules.Jobs/EDMI/GraphQL/GraphQLArgs.vb deleted file mode 100644 index 392d86cc..00000000 --- a/Modules.Jobs/EDMI/GraphQL/GraphQLArgs.vb +++ /dev/null @@ -1,5 +0,0 @@ -Public Class GraphQLArgs - Inherits JobArgs - - Public QueryConfigPath As String -End Class diff --git a/Modules.Jobs/EDMI/GraphQL/GraphQLConfig.vb b/Modules.Jobs/EDMI/GraphQL/GraphQLConfig.vb deleted file mode 100644 index e9ca33aa..00000000 --- a/Modules.Jobs/EDMI/GraphQL/GraphQLConfig.vb +++ /dev/null @@ -1,6 +0,0 @@ -Public Class GraphQLConfig - Public Property BaseUrl As String = "" - Public Property Email As String = "" - Public Property Password As String = "" - Public Property CertificateFingerprint As String = "" -End Class diff --git a/Modules.Jobs/EDMI/GraphQL/GraphQLJob.vb b/Modules.Jobs/EDMI/GraphQL/GraphQLJob.vb deleted file mode 100644 index 1151b1c3..00000000 --- a/Modules.Jobs/EDMI/GraphQL/GraphQLJob.vb +++ /dev/null @@ -1,223 +0,0 @@ -Option Explicit On - -Imports System.IO -Imports DigitalData.Modules.Interfaces -Imports DigitalData.Modules.Jobs -Imports DigitalData.Modules.Config -Imports DigitalData.Modules.Logging -Imports Newtonsoft.Json.Linq -Imports System.Collections.Generic -Imports System.Linq -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Database -Imports System.Data - -Public Class GraphQLJob - Inherits JobBase - Implements IJob(Of GraphQLArgs) - - Private _GraphQL As GraphQLInterface = Nothing - - Private Const PLACEHOLDER_STATIC = "STATIC:" - - Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer) - MyBase.New(LogConfig, Nothing, MSSQL) - End Sub - - Public Sub Start(Args As GraphQLArgs) Implements IJob(Of GraphQLArgs).Start - Try - Dim oConfigPath As String = Args.QueryConfigPath - Dim oConfigManager As New ConfigManager(Of GraphQLConfig)(_LogConfig, oConfigPath) - - With oConfigManager.Config - _GraphQL = New GraphQLInterface(_LogConfig, .BaseUrl, .Email, .Password, .CertificateFingerprint) - End With - - ' Login to get cookie - _Logger.Debug("Logging in") - Dim oLoginResponse = _GraphQL.Login() - - ' save cookie for future requests - _GraphQL.SaveCookies(oLoginResponse.Cookies.Item(0)) - - _Logger.Debug("Loading Queries") - - ' Load query data from TBCUST_JOBRUNNER_QUERY - Dim oQueryTable As DataTable = _MSSQL.GetDatatable("SELECT * FROM TBCUST_JOBRUNNER_QUERY ORDER BY OPERATION_NAME, CLEAR_BEFORE_FILL ASC") - Dim oQueryList As New List(Of GraphQL.Query) - - ' Save query data to business objects - For Each oRow As DataRow In oQueryTable.Rows - Dim oQuery As New GraphQL.Query With { - .Id = oRow.Item("GUID"), - .Name = oRow.Item("TITLE"), - .ClearBeforeFill = oRow.Item("CLEAR_BEFORE_FILL"), - .ConnectionId = oRow.Item("CON_ID"), ' TODO: Connection String? - .DestinationTable = oRow.Item("DESTINATION_TABLE"), - .OperationName = oRow.Item("OPERATION_NAME"), - .MappingBasePath = oRow.Item("MAPPING_BASE_PATH"), - .QueryString = oRow.Item("QUERY_STRING"), - .QueryConstraint = oRow.Item("QUERY_CONSTRAINT") - } - oQueryList.Add(oQuery) - Next - - _Logger.Debug("Getting the data from GraphQL") - - For Each oQuery As GraphQL.Query In oQueryList - Try - _Logger.NewBlock($"Query [{oQuery.Name}]") - - Dim oConnectionId As Integer = oQuery.ConnectionId - Dim oConnectionString = _MSSQL.Get_ConnectionStringforID(oConnectionId) - - Dim oDatabase As New MSSQLServer(_LogConfig, oConnectionString) - - ' Reset all records to status = 0 - _Logger.Info("Resetting data with constraint [{1}]", oQuery.Name, oQuery.QueryConstraint) - - Dim oResetSQL = $"UPDATE {oQuery.DestinationTable} SET STATUS = 0" - If oQuery.QueryConstraint <> String.Empty Then - oResetSQL &= $" WHERE {oQuery.QueryConstraint}" - End If - _MSSQL.ExecuteNonQuery(oResetSQL) - - _Logger.Info("Getting data..", oQuery.Name) - - ' get the data from GraphQL - Dim oDataResponse = _GraphQL.GetData(oQuery.QueryString, oQuery.OperationName) - Dim oResult As String - - ' write data to string - Using oStream = oDataResponse.GetResponseStream() - Using oReader As New StreamReader(oStream) - oResult = oReader.ReadToEnd() - End Using - End Using - - ' Fill the query object with field mapping data from TBCUST_JOBRUNNER_QUERY_MAPPING - Dim oSQL As String = "SELECT t2.* FROM TBCUST_JOBRUNNER_QUERY_MAPPING t - JOIN TBCUST_JOBRUNNER_MAPPING t2 ON t.MAPPING_ID = t2.GUID - WHERE t.QUERY_ID = {0}" - Dim oMappingTable As DataTable = _MSSQL.GetDatatable(String.Format(oSQL, oQuery.Id)) - - For Each oMapping As DataRow In oMappingTable.Rows - oQuery.MappingFields.Add(New GraphQL.FieldMapping With { - .DestinationColumn = oMapping.Item("DestinationColumn"), - .SourcePath = oMapping.Item("SourcePath") - }) - Next - - ' Handle the response from GraphQL and insert Data - Dim oQueryHandleResult = HandleResponse(oResult, oQuery, oDatabase) - - If IsNothing(oQueryHandleResult) Then - Continue For - End If - - ' Finally delete all old records - Dim oDeleteSQL = $"DELETE FROM {oQuery.DestinationTable} WHERE STATUS = 0" - If oQuery.QueryConstraint <> String.Empty Then - oDeleteSQL &= $" AND {oQuery.QueryConstraint}" - End If - - _Logger.Info("Success, deleting old records..", oQuery.Name) - _MSSQL.ExecuteNonQuery(oDeleteSQL) - - Catch ex As Exception - _Logger.Warn("Error while getting Data for Name/OperationName [{0}]/[{1}]", oQuery.Name, oQuery.OperationName) - _Logger.Error(ex) - - _Logger.Info("Failure, deleting new records..", oQuery.Name) - - ' If a crash happens, delete all records which were inserted in this run, - ' thus going back to the previous state - Dim oDeleteSQL = $"DELETE FROM {oQuery.DestinationTable} WHERE STATUS = 1" - If oQuery.QueryConstraint <> String.Empty Then - oDeleteSQL &= $" AND {oQuery.QueryConstraint}" - End If - _MSSQL.ExecuteNonQuery(oDeleteSQL) - Finally - _Logger.EndBlock() - End Try - Next - - ' logout - _Logger.Debug("Logging out") - Dim oLogoutResponse = _GraphQL.Logout() - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Sub - - Private Function HandleResponse(JsonString As String, QueryData As GraphQL.Query, DB As Database.MSSQLServer) As GraphQL.Query - Dim oObj As JObject = JObject.Parse(JsonString) - Dim oResultList As JToken - - If _GraphQL.ReadJSONPathFragmented(oObj, QueryData.MappingBasePath) = False Then - _Logger.Warn("There is an error in the MappingBasePath [{1}] configuration of query [{0}]", QueryData.Name, QueryData.MappingBasePath) - End If - - Try - oResultList = oObj.SelectToken(QueryData.MappingBasePath, errorWhenNoMatch:=True) - Catch ex As Exception - _Logger.Warn("HandleResponse: Could not find BasePath: [{0}] for query [{1}]", QueryData.MappingBasePath, QueryData.Name) - _Logger.Error(ex) - Return Nothing - End Try - - If oResultList Is Nothing Then - _Logger.Warn("HandleResponse: Could not find BasePath: [{0}] for query [{1}]", QueryData.MappingBasePath, QueryData.Name) - Return Nothing - End If - - _Logger.Info("HandleResponse: Processing Queue [{0}] with [{1}] Items", QueryData.Name, oResultList.Count) - - For Each oResultItem As JToken In oResultList - Try - Dim oValues As New List(Of String) - Dim oKeys As New List(Of String) - - For Each oMapping In QueryData.MappingFields - Dim oValue As String = String.Empty - - If oMapping.SourcePath.StartsWith(PLACEHOLDER_STATIC) Then - oValue = oMapping.SourcePath.Replace(PLACEHOLDER_STATIC, String.Empty) - Else - Dim oToken = oResultItem.SelectToken(oMapping.SourcePath) - - If oToken Is Nothing Then - _Logger.Warn("HandleResponse: Could not find value at SourcePath: {0}", oMapping.SourcePath) - oValue = String.Empty - Else - oValue = oToken.ToString - End If - End If - - oValues.Add(oValue) - oKeys.Add(oMapping.DestinationColumn) - Next - - Dim oColumnValues = oValues. - Select(Function(Value) Regex.Replace(Value, "'", "''")). - Select(Function(Value) $"'{Value}'"). - ToList() - Dim oValueString = String.Join(",", oColumnValues) - - Dim oColumns = String.Join(",", oKeys.ToArray) - Dim oSQL As String = $"INSERT INTO {QueryData.DestinationTable} ({oColumns}) VALUES ({oValueString})" - - DB.ExecuteNonQuery(oSQL) - Catch ex As Exception - _Logger.Error(ex) - End Try - Next - - Return QueryData - End Function - - Public Function ShouldStart(Arguments As GraphQLArgs) As Boolean Implements IJob(Of GraphQLArgs).ShouldStart - Return Arguments.Enabled - End Function -End Class diff --git a/Modules.Jobs/EDMI/GraphQL/GraphQLQuery.vb b/Modules.Jobs/EDMI/GraphQL/GraphQLQuery.vb deleted file mode 100644 index 408bd5f9..00000000 --- a/Modules.Jobs/EDMI/GraphQL/GraphQLQuery.vb +++ /dev/null @@ -1,24 +0,0 @@ -Imports System.Collections.Generic - -Namespace GraphQL - Public Class Query - Public Property Id As Integer - Public Property Name As String - Public Property ConnectionId As String = "" - Public Property ClearBeforeFill As Boolean = False - Public Property ClearCommand As String = "" - Public Property QueryString As String = "" - Public Property QueryConstraint As String = "" - Public Property OperationName As String = "" - Public Property DestinationTable As String = "" - - Public Property MappingBasePath As String = "" - Public Property MappingFields As New List(Of FieldMapping) - End Class - - Public Class FieldMapping - Public SourcePath As String = "" - Public DestinationColumn As String = "" - Public Value As String = "" - End Class -End Namespace diff --git a/Modules.Jobs/EDMI/ZUGFeRD/EmailData.vb b/Modules.Jobs/EDMI/ZUGFeRD/EmailData.vb deleted file mode 100644 index 65d2ad7c..00000000 --- a/Modules.Jobs/EDMI/ZUGFeRD/EmailData.vb +++ /dev/null @@ -1,5 +0,0 @@ -Public Class EmailData - Public Attachment As String = "" - Public Subject As String - Public From As String -End Class \ No newline at end of file diff --git a/Modules.Jobs/EDMI/ZUGFeRD/EmailFunctions.vb b/Modules.Jobs/EDMI/ZUGFeRD/EmailFunctions.vb deleted file mode 100644 index cb697665..00000000 --- a/Modules.Jobs/EDMI/ZUGFeRD/EmailFunctions.vb +++ /dev/null @@ -1,203 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Database -Imports System.Data -Imports System.IO -Imports System.Data.SqlClient - -Public Class EmailFunctions - Private ReadOnly _logConfig As LogConfig - Private ReadOnly _logger As Logger - Private ReadOnly _mssql As MSSQLServer - Private ReadOnly _firebird As Firebird - - Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer, Firebird As Firebird) - _logConfig = LogConfig - _logger = _logConfig.GetLogger() - _mssql = MSSQL - _firebird = Firebird - End Sub - - Public Sub AddToEmailQueueFB(MessageId As String, BodyText As String, EmailData As EmailData, NamePortal As String) - If EmailData Is Nothing Then - _logger.Warn("EmailData is empty. Email will not be sent!") - Exit Sub - End If - - Try - Dim oJobId = RandomValue(1, 10000) - Dim oReference = MessageId - Dim oEmailTo = "" - Dim oSubject = EmailStrings.EMAIL_SUBJECT_REJECTED.Replace(EmailStrings.constNAME_ZUGFERD_PORTAL, NamePortal) - Dim oAccountId = 1 - Dim oCreatedWho = "ZUGFeRD Service" - Dim oFinalBodyText = String.Format(EmailStrings.EMAIL_WRAPPING_TEXT.Replace(EmailStrings.constNAME_ZUGFERD_PORTAL, NamePortal), BodyText) - - Dim oEmailAddress = EmailData.From - Dim oAttachment = EmailData.Attachment - - If IsNothing(oEmailAddress) OrElse String.IsNullOrWhiteSpace(oEmailAddress) Then - _logger.Warn("Could not find email-address for MessageId {0}", MessageId) - oEmailTo = String.Empty - Else - oEmailTo = oEmailAddress - End If - - _logger.Debug("Generated Email:") - _logger.Debug("To: {0}", oEmailTo) - _logger.Debug("Subject: {0}", oSubject) - _logger.Debug("Body {0}", oFinalBodyText) - Dim osql = $"select * from TBEDM_EMAIL_QUEUE where REFERENCE1 = '{oReference} and EMAIL_TO = ''{oEmailTo}' and EMAIL_SUBJ = '{oSubject}'" - - Dim oDTResult As DataTable = _firebird.GetDatatable(osql) - - If oDTResult.Rows.Count = 0 Then - Dim oSQLInsert = $"INSERT INTO TBEDM_EMAIL_QUEUE " - oSQLInsert &= "(JOB_ID, REFERENCE1, EMAIL_ACCOUNT_ID, EMAIL_TO, EMAIL_SUBJ, EMAIL_BODY, CREATEDWHO, EMAIL_ATTMT1) VALUES " - oSQLInsert &= $"({oJobId}, '{oReference}', {oAccountId}, '{oEmailTo}', '{oSubject}', '{oFinalBodyText.Replace("'", "''")}', '{oCreatedWho}', '{oAttachment}')" - _firebird.ExecuteNonQuery(oSQLInsert) - _logger.Debug("Email Queue updated for MessageId {0}.", MessageId, oEmailTo) - Else - _logger.Debug("Email has already been sent!!") - End If - Catch ex As Exception - _logger.Error(ex) - End Try - End Sub - Public Sub AddToEmailQueueMSSQL(MessageId As String, BodyText As String, pEmailData As EmailData, SourceProcedure As String, pEmailAccountId As Integer, NamePortal As String) - If pEmailData Is Nothing Then - _logger.Warn("EmailData is empty. Email will not be sent!") - Exit Sub - End If - - Try - Dim oJobId = RandomValue(1, 10000) - Dim oReference = MessageId - Dim oEmailTo = "" - Dim oSubject = EmailStrings.EMAIL_SUBJECT_REJECTED.Replace(EmailStrings.constNAME_ZUGFERD_PORTAL, NamePortal) - Dim oCreatedWho = "ZUGFeRD Service" - - Dim oMaskedBodyText = BodyText.Replace("'", "''") - Dim oSubjectBodyText = String.Format(EmailStrings.EMAIL_SUBJECT_TEXT.Replace(EmailStrings.constNAME_ZUGFERD_PORTAL, NamePortal), pEmailData.Subject).Replace("'", "''") - Dim oCompleteBodyText = oMaskedBodyText & oSubjectBodyText - - Dim oFinalBodyText = String.Format(EmailStrings.EMAIL_WRAPPING_TEXT.Replace(EmailStrings.constNAME_ZUGFERD_PORTAL, NamePortal), oCompleteBodyText) - - Dim oEmailAddress = pEmailData.From - Dim oAttachment = pEmailData.Attachment - If oAttachment <> String.Empty Then - _logger.Debug($"Attachment_String [{oAttachment}]!") - If IO.File.Exists(oAttachment) = False Then - _logger.Info($"Attachment.File [{oAttachment}] is not existing!!!") - End If - End If - - If IsNothing(oEmailAddress) OrElse String.IsNullOrWhiteSpace(oEmailAddress) Then - _logger.Warn("Could not find email-address for MessageId {0}", MessageId) - oEmailTo = String.Empty - Else - oEmailTo = oEmailAddress - End If - - _logger.Debug("Generated Email:") - _logger.Debug("To: {0}", oEmailTo) - _logger.Debug("Subject: {0}", oSubject) - _logger.Debug("Body {0}", oFinalBodyText) - Dim osql = $"Select MAX(GUID) FROM TBEMLP_HISTORY WHERE EMAIL_MSGID = '{MessageId}'" - Dim oHistoryID = _mssql.GetScalarValue(osql) - - 'osql = $"select * from TBEMLP_EMAIL_OUT where REFERENCE_ID = {oHistoryID} and EMAIL_ADRESS = '{oEmailTo}' and EMAIL_SUBJ = '{oSubject}'" - - 'Dim oDTResult As DataTable = _mssql.GetDatatable(osql) - - If IsNumeric(oHistoryID) Then - Dim oInsert = $"INSERT INTO [dbo].[TBEMLP_EMAIL_OUT] ( - [REMINDER_TYPE_ID] - ,[SENDING_PROFILE] - ,[REFERENCE_ID] - ,[REFERENCE_STRING] - ,[WF_ID] - ,[EMAIL_ADRESS] - ,[EMAIL_SUBJ] - ,[EMAIL_BODY] - ,[COMMENT] - ,[ADDED_WHO] - ,EMAIL_ATTMT1) - VALUES - (77 - ,{pEmailAccountId} - ,{oHistoryID} - ,'{MessageId}' - ,77 - ,'{oEmailTo}' - ,'{oSubject}' - ,'{oFinalBodyText}' - ,'{SourceProcedure}' - ,'{oCreatedWho}' - ,'{oAttachment}')" - _mssql.ExecuteNonQuery(oInsert) - Else - 'If oDTResult.Rows.Count = 0 Then - ' _logger.Debug("Email has already been sent!!") - 'Else - _logger.Warn("Could not get oHistoryID in AddToEmailQueueMSSQL!!") - ' End If - End If - Catch ex As Exception - _logger.Error(ex) - End Try - End Sub - - Public Function GetEmailDataForMessageId(MessageId As String) As EmailData - Dim oSQL = $"SELECT EMAIL_FROM, EMAIL_SUBJECT, EMAIL_ATTMT1 FROM TBEDM_EMAIL_PROFILER_HISTORY WHERE EMAIL_MSGID = '{MessageId}'" - Try - Dim oDatatable = _firebird.GetDatatable(oSQL) - Dim oRow As DataRow - - If oDatatable.Rows.Count = 0 Then - _logger.Warn("Got no results for MessageId {0}", MessageId) - Return Nothing - ElseIf oDatatable.Rows.Count > 1 Then - _logger.Warn("Got too many results for MessageId {0}. Using last row.", MessageId) - End If - - _logger.Debug("Got Email Data for FileId {0}", MessageId) - oRow = oDatatable.Rows.Item(oDatatable.Rows.Count - 1) - - Return New EmailData() With { - .From = oRow.Item("EMAIL_FROM"), - .Attachment = oRow.Item("EMAIL_ATTMT1"), - .Subject = oRow.Item("EMAIL_SUBJECT") - } - Catch ex As Exception - _logger.Warn("Could not fetch Email Data for FileId {0}", MessageId) - Return Nothing - End Try - End Function - - Public Function GetOriginalEmailPath(OriginalEmailDirectory As String, MessageId As String) As String - Dim oAttachmentDirectory = OriginalEmailDirectory - Dim oAttachmentFile = MessageId & ".eml" - Dim oAttachmentPath = Path.Combine(oAttachmentDirectory, oAttachmentFile) - - If File.Exists(oAttachmentPath) Then - Return oAttachmentPath - Else - _logger.Warn("Email File {0} does not exist. Empty String will be returned.", oAttachmentPath) - Return String.Empty - End If - End Function - - Public Function GetEmailPathWithSubjectAsName(RejectedEmailDirectory As String, UncleanedSubject As String) As String - Dim oCleanSubject = String.Join("", UncleanedSubject.Split(Path.GetInvalidPathChars())) - Dim oAttachmentDirectory = RejectedEmailDirectory - Dim oAttachmentFile = oCleanSubject & ".eml" - Dim oAttachmentPath = Path.Combine(oAttachmentDirectory, oAttachmentFile) - - Return oAttachmentPath - End Function - - Private Function RandomValue(lowerBound As Integer, upperBound As Integer) As Integer - Dim oRandomValue = CInt(Math.Floor((upperBound - lowerBound + 1) * Rnd())) + lowerBound - Return oRandomValue - End Function -End Class diff --git a/Modules.Jobs/EDMI/ZUGFeRD/EmailStrings.vb b/Modules.Jobs/EDMI/ZUGFeRD/EmailStrings.vb deleted file mode 100644 index 3def7e00..00000000 --- a/Modules.Jobs/EDMI/ZUGFeRD/EmailStrings.vb +++ /dev/null @@ -1,40 +0,0 @@ -Public Class EmailStrings - Public Const constNAME_ZUGFERD_PORTAL = "@NAME_ZUGFERD_PORTAL" - Public Const EMAIL_WRAPPING_TEXT = "Sehr geehrte Damen und Herren,

- das @NAME_ZUGFERD_PORTAL zur Verarbeitung der Eingangsrechnungen im ZUGFeRD-Format konnte die von Ihnen gesandte Rechnung - leider nicht verarbeiten!

Grund: {0}

Bitte prüfen Sie die Datei und nehmen Sie bei Bedarf mit uns Kontakt auf.

- Vielen Dank für Ihr Verständnis.
Mit freundlichen Grüßen
Ihre IT-Abteilung" - Public Const EMAIL_SUBJECT_TEXT = "

Der Betreff der Original-Email war: {0}

" - - Public Const EMAIL_SUBJECT_REJECTED = "@NAME_ZUGFERD_PORTAL: Beleg abgelehnt" - Public Const EMAIL_SUBJECT_EXCEPTION = "@NAME_ZUGFERD_PORTAL: Unbehandelte Ausnahme" - - Public Const EMAIL_UNHANDLED_EXCEPTION = """ -

Beim Verarbeiten der Datei mit der Message ID '{0}' ist ein schwerer Fehler aufgetreten.

-

Fehlerbeschreibung: {1}

-
{2}
- """ - - Public Const EMAIL_MISSINGPROPERTIES_1 = "

Die angehängte Datei entspricht nicht dem WISAG ZUGFeRD-Format: {0}

" - Public Const EMAIL_MISSINGPROPERTIES_2 = "

Die folgenden Eigenschaften wurden als ERFORDERLICH eingestuft, wurden aber nicht gefunden:

" - - Public Const EMAIL_MD5_ERROR = "

Die von Ihnen gesendete Rechnung wurde bereits von unserem System verarbeitet.

" - - Public Const EMAIL_TOO_MUCH_FERDS = "

Ihre Email enthielt mehr als ein ZUGFeRD-Dokument.

" - - Public Const EMAIL_NO_FERDS = "

Ihre Email enthielt keine ZUGFeRD-Dokumente.

" - - Public Const EMAIL_FILE_SIZE_REACHED = " -

Die von Ihnen gesendete Rechnung oder einer der Rechnungs-Anhänge überschreitet die erlaubte Größe von {0} MB.

-

Die folgende Datei hat die erlaubte Größe überschritten:

    -
  • {1}
  • -

- " - - Public Const EMAIL_INVALID_DOCUMENT = " -

Ihre Email enthielt ein ZUGFeRD Dokument, welches aber inkorrekt formatiert wurde.

-

Mögliche Gründe für ein inkorrektes Format:

    -
  • Betrags-Werte weisen ungültiges Format auf (25,01 anstatt 25.01)
  • -

- " -End Class diff --git a/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb b/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb deleted file mode 100644 index 11914534..00000000 --- a/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb +++ /dev/null @@ -1,825 +0,0 @@ -Imports System.Collections.Generic -Imports System.Data -Imports System.IO -Imports System.Linq -Imports System.Security.Cryptography -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Interfaces -Imports DigitalData.Modules.Interfaces.Exceptions -Imports DigitalData.Modules.Jobs.Exceptions -Imports DigitalData.Modules.Logging -Imports FirebirdSql.Data.FirebirdClient -Imports System.Data.SqlClient - -Public Class ImportZUGFeRDFiles - Implements IJob - - Public Const ZUGFERD_IN = "ZUGFeRD in" - Public Const ZUGFERD_ERROR = "ZUGFeRD Error" - Public Const ZUGFERD_SUCCESS = "ZUGFeRD Success" - Public Const ZUGFERD_EML = "ZUGFeRD Eml" - Public Const ZUGFERD_REJECTED_EML = "ZUGFeRD Eml Rejected" - Public Const ZUGFERD_ATTACHMENTS = "ZUGFeRD Attachments" - Public Const ZUGFERD_NO_ZUGFERD = "Non-ZUGFeRD Files" - - Public HISTORY_ID As Integer - - Private Const DIRECTORY_DONT_MOVE = "DIRECTORY_DONT_MOVE" - - - ' List of allowed extensions for PDF/A Attachments - ' This list should not contain xml so the zugferd xml file will be filtered out - Private ReadOnly AllowedExtensions As List(Of String) = New List(Of String) From {"docx", "doc", "pdf", "xls", "xlsx", "ppt", "pptx", "txt"} - - Private ReadOnly _logger As Logger - Private ReadOnly _logConfig As LogConfig - Private ReadOnly _zugferd As ZUGFeRDInterface - Private ReadOnly _firebird As Firebird - Private ReadOnly _filesystem As Filesystem.File - Private ReadOnly _EmailOutAccountId As Integer - Private ReadOnly _mssql As MSSQLServer - Private ReadOnly _email As EmailFunctions - - - Public Sub New(LogConfig As LogConfig, Firebird As Firebird, pEmailOutAccount As Integer, pPortalName As String, Optional MSSQL As MSSQLServer = Nothing) - _logConfig = LogConfig - _logger = LogConfig.GetLogger() - _firebird = Firebird - _filesystem = New Filesystem.File(_logConfig) - _mssql = MSSQL - _EmailOutAccountId = pEmailOutAccount - _email = New EmailFunctions(LogConfig, _mssql, _firebird) - - _logger.Debug("Registering GDPicture License") - If _mssql IsNot Nothing Then - Dim oSQL = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'" - Dim oLicenseKey As String = _mssql.GetScalarValue(oSQL) - _zugferd = New ZUGFeRDInterface(_logConfig, oLicenseKey) - Else - _logger.Warn("GDPicture License could not be registered! MSSQL is not enabled!") - Throw New ArgumentNullException("MSSQL") - End If - End Sub - - Private Function MoveAndRenameEmailToRejected(Args As WorkerArgs, MessageId As String) As EmailData - Dim oEmailData = _email.GetEmailDataForMessageId(MessageId) - Dim oSource = _email.GetOriginalEmailPath(Args.OriginalEmailDirectory, MessageId) - Dim oDateSubDirectoryName As String = Now.ToString("yyyy-MM-dd") - Dim oDestination As String - - Dim oRejectedDirectory As String = Path.Combine(Args.RejectedEmailDirectory, oDateSubDirectoryName) - - ' Create the destination directory if it does not exist - If Not Directory.Exists(oRejectedDirectory) Then - Try - Directory.CreateDirectory(oRejectedDirectory) - Catch ex As Exception - _logger.Error(ex) - End Try - End If - - ' If oEmailData is Nothing, TBEDM_EMAIL_PROFILER_HISTORY for MessageId was not found. - ' This only should happen when testing and db-tables are deleted frequently - If oEmailData Is Nothing Then - oDestination = _email.GetEmailPathWithSubjectAsName(oRejectedDirectory, MessageId) - Else - oDestination = _email.GetEmailPathWithSubjectAsName(oRejectedDirectory, oEmailData.Subject) - End If - - _logger.Debug("Destination for eml file is {0}", oDestination) - - Dim oFinalFileName = _filesystem.GetVersionedFilename(oDestination) - - _logger.Debug("Versioned filename for eml file is {0}", oFinalFileName) - - If oEmailData Is Nothing Then - _logger.Warn("Could not get Email Data from firebird-database. File {0} will not be moved!", oSource) - Return Nothing - End If - - Try - _logger.Info("Moving email from {0} to {1}", oSource, oFinalFileName) - IO.File.Move(oSource, oFinalFileName) - oEmailData.Attachment = oFinalFileName - Catch ex As Exception - _logger.Warn("File {0} could not be moved! Original Filename will be used!", oSource) - _logger.Error(ex) - oEmailData.Attachment = oSource - End Try - - Return oEmailData - End Function - - Private Sub AddRejectedState(oMessageID As String, oTitle As String, oTitle1 As String, oComment As String, Transaction As SqlTransaction) - Try - 'PRCUST_ADD_HISTORY_STATE: @MessageID VARCHAR(250), @TITLE1 VARCHAR(250), @TITLE2 VARCHAR(250) - Dim oSQL = $"EXEC PRCUST_ADD_HISTORY_STATE '{oMessageID}','{oTitle}','{oTitle1}','{oComment.Replace("'", "''")}'" - _mssql.ExecuteNonQuery(oSQL, Transaction) - Catch ex As Exception - _logger.Error(ex) - End Try - End Sub - - Public Sub Start(Arguments As Object) Implements IJob.Start - Dim oArgs As WorkerArgs = Arguments - Dim oPropertyExtractor = New PropertyValues(_logConfig) - Dim oAttachmentExtractor = New PDFEmbeds(_logConfig) - - _logger.Debug("Starting Job {0}", [GetType].Name) - - Try - For Each oPath As String In oArgs.WatchDirectories - Dim oDirInfo As New DirectoryInfo(oPath) - - _logger.Debug($"Start processing directory {oDirInfo.FullName}") - - If oDirInfo.Exists Then - ' Filter out *.lock files - Dim oFiles As List(Of FileInfo) = oDirInfo. - GetFiles(). - Where(Function(f) Not f.Name.EndsWith(".lock")). - ToList() - Dim oFileCount = oFiles.Count - Dim oCurrentFileCount = 0 - - If oFileCount = 0 Then - _logger.Debug("No files to process.") - Continue For - Else - _logger.Info("Found {0} files", oFileCount) - End If - - ' Group files by messageId - Dim oGrouped As Dictionary(Of String, List(Of FileInfo)) = _zugferd.FileGroup.GroupFiles(oFiles) - - _logger.Info("Found {0} file groups", oGrouped.Count) - - ' Process each file group together - For Each oFileGroup In oGrouped - ' Start a new transaction for each file group. - ' This way we can rollback database changes for the whole filegroup in case something goes wrong. - Dim oFBConnection As FbConnection = _firebird.GetConnection() - Dim oFBTransaction As FbTransaction = oFBConnection.BeginTransaction() - - Dim oSQLConnection As SqlConnection = _mssql.GetConnection() - Dim oSQLTransaction As SqlTransaction = oSQLConnection?.BeginTransaction() - - If oSQLConnection Is Nothing Then - _logger.Warn("SQL Connection was not set. No INSERTs for MSSQL Server will be performed!") - oArgs.InsertIntoSQLServer = False - End If - - ' Count the amount of ZUGFeRD files - Dim oZUGFeRDCount As Integer = 0 - - ' Set the default Move Directory - Dim oMoveDirectory As String = oArgs.ErrorDirectory - - ' Flag to save if the whole process was a success. - ' Will be set only at the end of the function if no error occurred. - Dim oIsSuccess As Boolean = False - - ' Flag to save if the occurred error (if any) was expected - ' Used to determine if transactions should be committed or not - Dim oExpectedError As Boolean = True - - ' Create file lists - Dim oFileGroupFiles As List(Of FileInfo) = oFileGroup.Value - Dim oEmailAttachmentFiles As New List(Of FileInfo) - Dim oEmbeddedAttachmentFiles As New List(Of PDFEmbeds.EmbeddedFile) - - Dim oMessageId As String = oFileGroup.Key - Dim oMissingProperties As New List(Of String) - Dim oMD5CheckSum As String = String.Empty - - _logger.NewBlock($"Message Id {oMessageId}") - _logger.Info("Start processing file group {0}", oMessageId) - - Try - For Each oFile In oFileGroupFiles - ' 09.12.2021: oDocument is now an Object, because have different classes corresponding to the - ' different versions of ZUGFeRD and the type is unknown at compile-time. - Dim oDocument As Object - - ' Start a global group counter for each file - Dim oGlobalGroupCounter = 0 - ' Clear missing properties for the new file - oMissingProperties = New List(Of String) - oCurrentFileCount += 1 - - ' Only pdf files are allowed from here on - If Not oFile.Name.ToUpper.EndsWith(".PDF") Then - _logger.Debug("Skipping non-pdf file {0}", oFile.Name) - oEmailAttachmentFiles.Add(oFile) - - ' Checking filesize for attachment files - If Check_FileSize(oFile, oArgs.MaxAttachmentSizeInMegaBytes) = False Then - _logger.Warn("Filesize for File [{0}] exceeded limit of {1} MB", oFile.Name, oArgs.MaxAttachmentSizeInMegaBytes) - Throw New FileSizeLimitReachedException(oFile.Name, oArgs.MaxAttachmentSizeInMegaBytes) - End If - - Continue For - End If - - _logger.Info("Start processing file {0}", oFile.Name) - - ' Checking filesize for pdf files - If Check_FileSize(oFile, oArgs.MaxAttachmentSizeInMegaBytes) = False Then - _logger.Warn("Filesize for File [{0}] exceeded limit of {1} MB", oFile.Name, oArgs.MaxAttachmentSizeInMegaBytes) - Throw New FileSizeLimitReachedException(oFile.Name, oArgs.MaxAttachmentSizeInMegaBytes) - End If - - Try - oDocument = _zugferd.ExtractZUGFeRDFileWithGDPicture(oFile.FullName) - Catch ex As ZUGFeRDExecption - Select Case ex.ErrorType - Case ZUGFeRDInterface.ErrorType.NoZugferd - _logger.Info("File [{0}] is not a valid ZUGFeRD document. Skipping.", oFile.Name) - oEmailAttachmentFiles.Add(oFile) - Continue For - - Case ZUGFeRDInterface.ErrorType.NoValidZugferd - _logger.Warn("File [{0}] is an Incorrectly formatted ZUGFeRD document!", oFile.Name) - Throw New InvalidFerdException() - - Case Else - _logger.Warn("Unexpected Error occurred while extracting ZUGFeRD Information from file {0}", oFile.Name) - Throw ex - End Select - End Try - - ' Extract all attachments with the extensions specified in `AllowedExtensions`. - ' If you need to extract and use embedded xml files, you need to filter out the zugferd-invoice.xml yourself. - ' Right now the zugferd-invoice.xml is filtered out because `AllowedExtensions` does not contain `xml`. - Dim oAttachments = oAttachmentExtractor.Extract(oFile.FullName, AllowedExtensions) - If oAttachments Is Nothing Then - _logger.Warn("Attachments for file [{0}] could not be extracted", oFile.FullName) - Else - oEmbeddedAttachmentFiles.AddRange(oAttachments) - End If - - ' Check the Checksum and rejection status - oMD5CheckSum = GenerateAndCheck_MD5Sum(oFile.FullName, oArgs.IgnoreRejectionStatus) - - ' Check if there are more than one ZUGFeRD files - If oZUGFeRDCount = 1 Then - Throw New TooMuchFerdsException() - End If - - ' Since extraction went well, increase the amount of ZUGFeRD files - oZUGFeRDCount += 1 - - ' Check the document against the configured property map and return: - ' - a List of valid properties - ' - a List of missing properties - Dim oCheckResult = _zugferd.PropertyValues.CheckPropertyValues(oDocument, oArgs.PropertyMap, oMessageId) - - _logger.Info("Properties checked: [{0}] missing properties / [{1}] valid properties found.", oCheckResult.MissingProperties.Count, oCheckResult.ValidProperties.Count) - - If oCheckResult.MissingProperties.Count > 0 Then - _logger.Warn("[{0}] missing properties found. Exiting.", oCheckResult.MissingProperties.Count) - oMissingProperties = oCheckResult.MissingProperties - Throw New MissingValueException(oFile) - End If - - _logger.Debug("No missing properties found. Continuing.") - - Dim oDelSQL = $"DELETE FROM TBEDMI_ITEM_VALUE where REFERENCE_GUID = '{oMessageId}'" - Dim oStep As String - - oStep = "Firebird TBEDMI_ITEM_VALUE Delete messageID Items" - Try - _firebird.ExecuteNonQueryWithConnection(oDelSQL, oFBConnection, Firebird.TransactionMode.ExternalTransaction, oFBTransaction) - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Step [{0}] with SQL [{1}] was not successful.", oStep, oDelSQL) - End Try - - If oArgs.InsertIntoSQLServer = True Then - oStep = "MSSQL TBEDMI_ITEM_VALUE Delete messageID Items" - Try - _mssql.ExecuteNonQueryWithConnectionObject(oDelSQL, oSQLConnection, MSSQLServer.TransactionMode.ExternalTransaction, oSQLTransaction) - Catch ex As Exception - _logger.Warn("Step [{0}] with SQL [{1}] was not successful.", oStep, oDelSQL) - End Try - End If - - For Each oProperty In oCheckResult.ValidProperties - Dim oGroupCounterValue = oProperty.GroupCounter - - ' If GroupCounter is -1, it means this is a default property that can only occur once. - ' Set the actual inserted value to 0 - If oGroupCounterValue = -1 Then - oGroupCounterValue = 0 - End If - - Dim oCommand = $"INSERT INTO {oProperty.TableName} (REFERENCE_GUID, ITEM_DESCRIPTION, ITEM_VALUE, GROUP_COUNTER,SPEC_NAME,IS_REQUIRED) VALUES - ('{oMessageId}', '{oProperty.Description}', '{oProperty.Value.Replace("'", "''")}', {oGroupCounterValue},'{oProperty.TableColumn}','{oProperty.ISRequired}')" - _logger.Debug("Mapping Property [{0}] with value [{1}], Will be inserted into table [{2}]", oProperty.TableColumn, oProperty.Value.Replace("'", "''"), oProperty.TableName) - ' Insert into SQL Server - If oArgs.InsertIntoSQLServer = True Then - Dim oResult = _mssql.ExecuteNonQueryWithConnectionObject(oCommand, oSQLConnection, MSSQLServer.TransactionMode.ExternalTransaction, oSQLTransaction) - If oResult = False Then - _logger.Warn($"SQL Command [{oCommand}] was not successful. Check the log.") - End If - End If - ' Insert into Firebird - _firebird.ExecuteNonQueryWithConnection(oCommand, oFBConnection, Firebird.TransactionMode.ExternalTransaction, oFBTransaction) - Next - Next - - 'Check if there are no ZUGFeRD files - If oZUGFeRDCount = 0 Then - ' If NonZugferdDirectory is not set, a NoFerdsException will be thrown and a rejection will be generated - ' This is the default/initial behaviour. - If oArgs.NonZugferdDirectory Is Nothing OrElse oArgs.NonZugferdDirectory = String.Empty Then - Throw New NoFerdsException() - End If - - ' Also, if the directory is set but does not exist, still a rejection will be generated. - If Not IO.Directory.Exists(oArgs.NonZugferdDirectory) Then - Throw New NoFerdsException() - End If - - ' Only if the directory is set and does exist, it will be used and any file groups which - ' do NOT CONTAIN ANY ZUGFERD DOCUMENTS, are moved to that directory. - Throw New NoFerdsAlternateException() - - End If - - 'If no errors occurred... - 'Log the History - If oMD5CheckSum <> String.Empty Then - Create_HistoryEntry(oMessageId, oMD5CheckSum, "SUCCESS", oFBTransaction) - - 'Dim oInsertCommand = $"INSERT INTO TBEDM_ZUGFERD_HISTORY_IN (MESSAGE_ID, MD5HASH) VALUES ('{oMessageId}', '{oMD5CheckSum}')" - '_firebird.ExecuteNonQueryWithConnection(oInsertCommand, oFBConnection, Firebird.TransactionMode.ExternalTransaction, oFBTransaction) - '' History ID is only need in case of an error - 'oFBTransaction.Commit() - 'Try - ' Dim oSQL = $"SELECT MAX(GUID) FROM TBEDM_ZUGFERD_HISTORY_IN WHERE MESSAGE_ID = '{oMessageId}'" - ' HISTORY_ID = _firebird.GetScalarValue(oSQL) - 'Catch ex As Exception - ' HISTORY_ID = 0 - 'End Try - Else - Create_HistoryEntry(oMessageId, String.Empty, "SUCCESS (with empty MD5Hash)", oFBTransaction) - End If - - oIsSuccess = True - oMoveDirectory = oArgs.SuccessDirectory - - Catch ex As MD5HashException - _logger.Error(ex) - - Dim oMessage = "REJECTED - Already processed (MD5Hash)" - Update_HistoryEntry(oMessageId, oMD5CheckSum, oMessage, oFBTransaction) - - Dim oBody = EmailStrings.EMAIL_MD5_ERROR - Dim oEmailData = MoveAndRenameEmailToRejected(oArgs, oMessageId) - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "MD5HashException", _EmailOutAccountId, oArgs.NamePortal) - AddRejectedState(oMessageId, "MD5HashException", "Die gesendete Rechnung wurde bereits verarbeitet!", "", oSQLTransaction) - - Catch ex As InvalidFerdException - _logger.Error(ex) - - ' When InvalidFerdException is thrown, we don't have a MD5Hash yet. - ' That 's why we set it to String.Empty here. - Create_HistoryEntry(oMessageId, String.Empty, "REJECTED - ZUGFeRD yes but incorrect format", oFBTransaction) - - Dim oBody = EmailStrings.EMAIL_INVALID_DOCUMENT - Dim oEmailData = MoveAndRenameEmailToRejected(oArgs, oMessageId) - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "InvalidFerdException", _EmailOutAccountId, oArgs.NamePortal) - AddRejectedState(oMessageId, "InvalidFerdException", "Inkorrekte Formate", "", oSQLTransaction) - - Catch ex As TooMuchFerdsException - _logger.Error(ex) - - Create_HistoryEntry(oMessageId, oMD5CheckSum, "REJECTED - More than one ZUGFeRD-document in email", oFBTransaction) - - Dim oBody = EmailStrings.EMAIL_TOO_MUCH_FERDS - Dim oEmailData = MoveAndRenameEmailToRejected(oArgs, oMessageId) - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "TooMuchFerdsException", _EmailOutAccountId, oArgs.NamePortal) - AddRejectedState(oMessageId, "TooMuchFerdsException", "Email enthielt mehr als ein ZUGFeRD-Dokument", "", oSQLTransaction) - - Catch ex As NoFerdsException - _logger.Error(ex) - - Create_HistoryEntry(oMessageId, oMD5CheckSum, "REJECTED - no ZUGFeRD-Document in email", oFBTransaction) - - Dim oBody = EmailStrings.EMAIL_NO_FERDS - Dim oEmailData = MoveAndRenameEmailToRejected(oArgs, oMessageId) - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "NoFerdsException", _EmailOutAccountId, oArgs.NamePortal) - AddRejectedState(oMessageId, "NoFerdsException", " Email enthielt keine ZUGFeRD-Dokumente", "", oSQLTransaction) - - Catch ex As NoFerdsAlternateException - ' TODO: Maybe dont even log this 'error', since it's not really an error and it might happen *A LOT* - _logger.Error(ex) - oMoveDirectory = oArgs.NonZugferdDirectory - - Catch ex As MissingValueException - _logger.Error(ex) - - Dim oMessage As String = "" - For Each prop In oMissingProperties - oMessage &= $"- {prop}" - Next - - Create_HistoryEntry(oMessageId, oMD5CheckSum, $"REJECTED - Missing Required Properties: [{oMessage}]", oFBTransaction) - - Dim oBody = CreateBodyForMissingProperties(ex.File.Name, oMissingProperties) - Dim oEmailData = MoveAndRenameEmailToRejected(oArgs, oMessageId) - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "MissingValueException", _EmailOutAccountId, oArgs.NamePortal) - AddRejectedState(oMessageId, "MissingValueException", "Es fehlten ZugferdSpezifikationen", oMessage, oSQLTransaction) - - Catch ex As FileSizeLimitReachedException - _logger.Error(ex) - - Create_HistoryEntry(oMessageId, oMD5CheckSum, "REJECTED - File size limit reached", oFBTransaction) - - Dim oEmailData = MoveAndRenameEmailToRejected(oArgs, oMessageId) - - Dim oKey = FileSizeLimitReachedException.KEY_FILENAME - Dim oFileExceedingThreshold As String = IIf(ex.Data.Contains(oKey), ex.Data.Item(oKey), "") - Dim oFileWithoutMessageId = oFileExceedingThreshold. - Replace(oMessageId, ""). - Replace("~", "") - - Dim oBody = String.Format(EmailStrings.EMAIL_FILE_SIZE_REACHED, oArgs.MaxAttachmentSizeInMegaBytes, oFileWithoutMessageId) - - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "FileSizeLimitReachedException", _EmailOutAccountId, oArgs.NamePortal) - AddRejectedState(oMessageId, "FileSizeLimitReachedException", "Erlaubte Dateigröße überschritten", "", oSQLTransaction) - - Catch ex As OutOfMemoryException - _logger.Warn("OutOfMemory Error occurred: {0}", ex.Message) - _logger.Error(ex) - - ' Send Email to Digital Data - Dim oBody = CreateBodyForUnhandledException(oMessageId, ex) - Dim oEmailData As New EmailData With { - .From = oArgs.ExceptionEmailAddress, - .Subject = $"OutOfMemoryException im ZUGFeRD-Parser @ {oMessageId}" - } - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "OutOfMemoryException", _EmailOutAccountId, oArgs.NamePortal) - - ' Rollback Firebird - oFBTransaction.Rollback() - - ' Rollback MSSQL - oSQLTransaction.Rollback() - - oMoveDirectory = DIRECTORY_DONT_MOVE - - oExpectedError = False - - Catch ex As Exception - _logger.Warn("Unknown Error occurred: {0}", ex.Message) - _logger.Error(ex) - - ' Send Email to Digital Data - Dim oBody = CreateBodyForUnhandledException(oMessageId, ex) - Dim oEmailData As New EmailData With { - .From = oArgs.ExceptionEmailAddress, - .Subject = $"UnhandledException im ZUGFeRD-Parser @ {oMessageId}" - } - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "UnhandledException", _EmailOutAccountId, oArgs.NamePortal) - - ' Rollback Firebird - oFBTransaction.Rollback() - - ' Rollback MSSQL - oSQLTransaction.Rollback() - - oMoveDirectory = DIRECTORY_DONT_MOVE - - oExpectedError = False - - Finally - Try - ' If an application error occurred, dont move files so they will be processed again later - If oMoveDirectory = DIRECTORY_DONT_MOVE Then - _logger.Info("Application Error occurred. Files for message Id {0} will not be moved.", oMessageId) - Else - ' Move all files of the current group - MoveFiles(oArgs, oMessageId, oFileGroupFiles, oEmailAttachmentFiles, oEmbeddedAttachmentFiles, oMoveDirectory, oIsSuccess) - End If - _logger.Info("Finished processing file group {0}", oMessageId) - Catch ex As Exception - ' Send Email to Digital Data - Dim oBody = CreateBodyForUnhandledException(oMessageId, ex) - Dim oEmailData As New EmailData With { - .From = oArgs.ExceptionEmailAddress, - .Subject = $"FileMoveException im ZUGFeRD-Parser @ {oMessageId}" - } - _email.AddToEmailQueueMSSQL(oMessageId, oBody, oEmailData, "FileMoveException", _EmailOutAccountId, oArgs.NamePortal) - - _logger.Warn("Could not move files!") - _logger.Error(ex) - Throw ex - Finally - _logger.EndBlock() - End Try - - Try - ' If everything went OK or an expected error occurred, - ' finally commit all changes To the Database - ' ================================================================== - If oIsSuccess Or oExpectedError Then - ' Commit SQL Transaction - oSQLTransaction.Commit() - - ' Commit Firebird Transaction - oFBTransaction.Commit() - End If - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Database Transactions were not committed successfully.") - End Try - - Try - oFBConnection.Close() - oSQLConnection.Close() - Catch ex As Exception - _logger.Error(ex) - _logger.Warn("Database Connections were not closed successfully.") - End Try - End Try - Next - End If - Next - - _logger.Debug("Finishing Job {0}", Me.GetType.Name) - Catch ex As Exception - _logger.Error(ex) - _logger.Info("Job Failed! See error log for details") - End Try - End Sub - - Private Sub MoveFiles( - Args As WorkerArgs, - MessageId As String, - Files As List(Of FileInfo), - AttachmentFiles As List(Of FileInfo), - EmbeddedAttachments As List(Of PDFEmbeds.EmbeddedFile), - MoveDirectory As String, - IsSuccess As Boolean) - - Dim oFinalMoveDirectory As String = MoveDirectory - Dim oDateSubDirectoryName As String = Now.ToString("yyyy\\MM\\dd") - Dim oAttachmentDirectory As String = Path.Combine(oFinalMoveDirectory, Args.AttachmentsSubDirectory, oDateSubDirectoryName) - - ' Files will be moved to a subfolder for the current day if they are rejected - If Not IsSuccess Then - oFinalMoveDirectory = Path.Combine(oFinalMoveDirectory, oDateSubDirectoryName) - End If - - ' Create directories if they don't exist - If Not Directory.Exists(oFinalMoveDirectory) Then - Try - Directory.CreateDirectory(oFinalMoveDirectory) - Catch ex As Exception - _logger.Error(ex) - End Try - End If - - If Not Directory.Exists(oAttachmentDirectory) And AttachmentFiles.Count > 0 Then - Try - Directory.CreateDirectory(oAttachmentDirectory) - Catch ex As Exception - _logger.Error(ex) - End Try - End If - - ' Filter out Attachments from `Files` - Dim oInvoiceFiles As List(Of FileInfo) = Files.Except(AttachmentFiles).ToList() - - ' Move PDF/A Files - For Each oFile In oInvoiceFiles - Try - Dim oFilePath = _filesystem.GetVersionedFilename(Path.Combine(oFinalMoveDirectory, oFile.Name)) - - _filesystem.MoveTo(oFile.FullName, oFilePath, oFinalMoveDirectory) - - _logger.Info("File moved to {0}", oFilePath) - Catch ex As Exception - _logger.Warn("Could not move file {0}", oFile.FullName) - _logger.Error(ex) - End Try - Next - - ' Move non-PDF/A Email Attachments/Files - For Each oFile In AttachmentFiles - Try - Dim oFilePath = _filesystem.GetVersionedFilename(Path.Combine(oAttachmentDirectory, oFile.Name)) - - _filesystem.MoveTo(oFile.FullName, oFilePath, oAttachmentDirectory) - _logger.Info("Attachment moved to {0}", oFilePath) - Catch ex As Exception - _logger.Warn("Could not move attachment {0}", oFile.FullName) - _logger.Error(ex) - End Try - Next - - ' Write Embedded Files to disk - For Each oResult In EmbeddedAttachments - Try - Dim oFileName As String = $"{MessageId}~{oResult.FileName}" - Dim oFilePath As String = Path.Combine(oAttachmentDirectory, oFileName) - - If Not File.Exists(oAttachmentDirectory) Then - Directory.CreateDirectory(oAttachmentDirectory) - End If - - Using oWriter As New FileStream(oFilePath, FileMode.Create) - oWriter.Write(oResult.FileContents, 0, oResult.FileContents.Length) - _logger.Info("Embedded Attachment moved to {0}", oFilePath) - End Using - Catch ex As Exception - _logger.Warn("Could not save embedded attachment {0}", oResult.FileName) - _logger.Error(ex) - End Try - Next - - _logger.Info("Finished moving files") - End Sub - - - Private Function CreateBodyForMissingProperties(OriginalFilename As String, MissingProperties As List(Of String)) As String - Dim oBody = String.Format(EmailStrings.EMAIL_MISSINGPROPERTIES_1, OriginalFilename) - - If MissingProperties.Count > 0 Then - oBody &= $"{vbNewLine}{vbNewLine}" - oBody &= EmailStrings.EMAIL_MISSINGPROPERTIES_2 - oBody &= $"{vbNewLine}{vbNewLine}" - - For Each prop In MissingProperties - oBody &= $"- {prop}" - Next - End If - - Return oBody - End Function - - Private Function CreateBodyForUnhandledException(MessageId As String, Exception As Exception) As String - Dim oBody = String.Format(EmailStrings.EMAIL_UNHANDLED_EXCEPTION, MessageId, Exception.Message, Exception.StackTrace) - - Return oBody - End Function - - Private Function CreateMD5(ByVal Filename As String) As String - Try - Dim oMD5 As New MD5CryptoServiceProvider - Dim oHash As Byte() - Dim oHashString As String - Dim oResult As String = "" - - Using oFileStream As New FileStream(Filename, FileMode.Open, FileAccess.Read, FileShare.Read, 8192) - oHash = oMD5.ComputeHash(oFileStream) - oHashString = BitConverter.ToString(oHash) - End Using - - oResult = oHashString.Replace("-", "") - Return oResult - Catch ex As Exception - _logger.Error(ex) - Return "" - End Try - End Function - - Private Function Create_HistoryEntry(MessageId As String, MD5Checksum As String, Message As String, Transaction As FbTransaction) As Boolean - Try - Dim oConnection = _firebird.GetConnection() - Dim oSQL = $"INSERT INTO TBEDM_ZUGFERD_HISTORY_IN (COMMENT, MD5HASH, MESSAGE_ID) VALUES ('{Message}', '{MD5Checksum}', '{MessageId}')" - - ' 09.07.2021: This can't be in the transaction since the history - ' Entry needs to be accessed by MoveAndRenameEmailToRejected shortly after - _firebird.ExecuteNonQueryWithConnection(oSQL, oConnection, Firebird.TransactionMode.WithTransaction) - - ' Close the connection - oConnection.Close() - If Message.Contains("REJECTED") Then - oSQL = $"UPDATE TBEMLP_HISTORY SET STATUS = 'REJECTED', COMMENT = '{Message}', CUST_REJECTED = 1,CUST_REJECTED_WHEN = GETDATE() WHERE EMAIL_MSGID = '{MessageId}'" - _mssql.ExecuteNonQuery(oSQL) - End If - - Return True - Catch ex As Exception - _logger.Warn("History Entry count not be created for message id [{0}] and md5 [{1}]", MessageId, MD5Checksum) - _logger.Error(ex) - - Return False - End Try - End Function - - Private Function Update_HistoryEntry(MessageId As String, MD5Checksum As String, Message As String, Transaction As FbTransaction) As Boolean - Try - Dim oConnection = _firebird.GetConnection() - Dim oSQL = $"UPDATE TBEDM_ZUGFERD_HISTORY_IN SET COMMENT = '{Message}' WHERE MD5HASH = '{MD5Checksum}' AND MESSAGE_ID = '{MessageId}'" - - _firebird.ExecuteNonQueryWithConnection(oSQL, oConnection, Firebird.TransactionMode.WithTransaction) - - ' Close the connection - oConnection.Close() - - Return True - Catch ex As Exception - _logger.Warn("History Entry count not be updated for message id [{0}] and md5 [{1}]", MessageId, MD5Checksum) - _logger.Error(ex) - - Return False - End Try - End Function - - ''' - ''' Generates the MD5 Checksum of a file and checks it against the histroy table TBEDM_ZUGFERD_HISTORY_IN - ''' - ''' The path of the file to be checked - ''' Should the check take into account the rejection status of the file? - ''' The MD5 Checksum of the file, or an empty string, if the Checksum could not be created - ''' Throws, when the file should be rejected, ie. if it already exists in the table - Private Function GenerateAndCheck_MD5Sum(pFilePath As String, pIgnoreRejectionStatus As Boolean) As String - Dim oMD5CheckSum = CreateMD5(pFilePath) - - ' Exit if MD5 could not be created - If oMD5CheckSum = String.Empty Then - _logger.Warn("MD5 Checksum is nothing for file [{0}]!", pFilePath) - Return oMD5CheckSum - End If - - ' Check if Checksum exists in History Table - Dim oCheckCommand = $"SELECT * FROM TBEDM_ZUGFERD_HISTORY_IN WHERE GUID = (SELECT MAX(GUID) FROM TBEDM_ZUGFERD_HISTORY_IN WHERE UPPER(MD5HASH) = UPPER('{oMD5CheckSum}'))" - Dim oTable As DataTable = _firebird.GetDatatable(oCheckCommand, Firebird.TransactionMode.NoTransaction) - - ' If History entries could not be fetched, just return the MD5 Checksum - If IsNothing(oTable) Then - _logger.Warn("Be careful: oExistsDT is nothing for file [{0}]!", pFilePath) - Return oMD5CheckSum - End If - - ' If Checksum does not exist in History entries, just return the MD5 Checksum - If oTable.Rows.Count = 0 Then - _logger.Debug("File [{0}] was not found in History!", pFilePath) - Return oMD5CheckSum - End If - - ' ==================================================== - ' Checksum exists in History entries, reject! - ' ==================================================== - - Dim oRejected As Boolean - Dim oHistoryId As Integer - - ' Try to read Rejected Status and History Id - Try - Dim oRow As DataRow = oTable.Rows.Item(0) - oRejected = DirectCast(oRow.Item("REJECTED"), Boolean) - oHistoryId = oRow.Item("GUID") - - Catch ex As Exception - _logger.Warn("Error while converting REJECTED: " & ex.Message) - oRejected = False - - End Try - _logger.Info("File has already been processed...") - ' If the file was already rejected, it is allowed to be processed again, - ' even if the Checksum exists in the history entries (default case) - ' Which means, if it was not rejected before, it will be rejected in any case! - ' - ' This logic can be overwritten by the IgnoreRejectionStatus parameter. - ' If it is set to true, the file will be rejected if the file exists in the history entries, - ' regardless of the rejected parameter. - If oRejected = True And pIgnoreRejectionStatus = True Then - _logger.Info("ZuGFeRDFile already has been processed, but formerly obviously was rejected!") - Else - Throw New MD5HashException($"There is already an identical invoice! - HistoryID [{oHistoryId}]") - End If - - Return oMD5CheckSum - End Function - - ''' - ''' Checks the size of the supplied file. - ''' - ''' - ''' - ''' - Private Function Check_FileSize(pFileInfo As FileInfo, pMaxFileSizeInMegaBytes As Integer) As Boolean - _logger.Info("Checking Filesize of {0}", pFileInfo.Name) - _logger.Debug("Filesize threshold is {0} MB.", pMaxFileSizeInMegaBytes) - - If pMaxFileSizeInMegaBytes <= 0 Then - _logger.Debug("Filesize is not configured. Skipping check.") - Return True - End If - - Dim oMaxSize = pMaxFileSizeInMegaBytes * 1024 * 1024 - - If oMaxSize > 0 And pFileInfo.Length > oMaxSize Then - _logger.Debug("Filesize is bigger than threshold. Rejecting.") - Return False - Else - _logger.Debug("Filesize is smaller than threshold. All fine.") - Return True - End If - End Function -End Class diff --git a/Modules.Jobs/EDMI/ZUGFeRD/WorkerArgs.vb b/Modules.Jobs/EDMI/ZUGFeRD/WorkerArgs.vb deleted file mode 100644 index 662f107f..00000000 --- a/Modules.Jobs/EDMI/ZUGFeRD/WorkerArgs.vb +++ /dev/null @@ -1,23 +0,0 @@ -Imports System.Collections.Generic -Imports DigitalData.Modules.Interfaces - -Public Class WorkerArgs - ' Directory Parameters - Public WatchDirectories As New List(Of String) - Public SuccessDirectory As String = Nothing - Public ErrorDirectory As String = Nothing - Public OriginalEmailDirectory As String = Nothing - Public RejectedEmailDirectory As String = Nothing - Public AttachmentsSubDirectory As String = Nothing - Public NonZugferdDirectory As String = Nothing - - ' Property Parameter - Public PropertyMap As New Dictionary(Of String, XmlItemProperty) - - ' Misc Flag Parameters - Public InsertIntoSQLServer As Boolean = False - Public ExceptionEmailAddress As String = Nothing - Public IgnoreRejectionStatus As Boolean = False - Public MaxAttachmentSizeInMegaBytes As Integer = -1 - Public NamePortal As String = "NO PORTAL_NAME IN CONFIG" -End Class \ No newline at end of file diff --git a/Modules.Jobs/Exceptions.vb b/Modules.Jobs/Exceptions.vb deleted file mode 100644 index 17d69987..00000000 --- a/Modules.Jobs/Exceptions.vb +++ /dev/null @@ -1,67 +0,0 @@ -Imports System.IO - -Public Class Exceptions - Public Class MissingValueException - Inherits ApplicationException - - Public ReadOnly File As FileInfo - - Public Sub New(File As FileInfo) - MyBase.New() - - Me.File = File - End Sub - End Class - - Public Class TooMuchFerdsException - Inherits ApplicationException - - Public Sub New() - MyBase.New("More than one ZUGFeRD document found") - End Sub - End Class - - Public Class FileSizeLimitReachedException - Inherits ApplicationException - - Public Const KEY_FILENAME = "FILENAME" - - Public Sub New(pFilePath As String, pFileSizeLimitInMegaBytes As Integer) - MyBase.New($"At least one file exceeded the filesize limit of {pFileSizeLimitInMegaBytes}MB: {pFilePath}") - Data.Add(KEY_FILENAME, pFilePath) - End Sub - 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 - Inherits ApplicationException - - Public Sub New() - MyBase.New("No ZUGFeRD documents found") - End Sub - End Class - - Public Class NoFerdsAlternateException - Inherits ApplicationException - - Public Sub New() - MyBase.New("No ZUGFeRD documents found, no rejection will be generated") - End Sub - End Class - - - Public Class MD5HashException - Inherits ApplicationException - - Public Sub New(pInfo As String) - MyBase.New(pInfo) - End Sub - End Class -End Class diff --git a/Modules.Jobs/JobArgs.vb b/Modules.Jobs/JobArgs.vb deleted file mode 100644 index 43156ec6..00000000 --- a/Modules.Jobs/JobArgs.vb +++ /dev/null @@ -1,4 +0,0 @@ -Public Class JobArgs - Public Enabled As Boolean - Public Interval As Long -End Class diff --git a/Modules.Jobs/JobBase.vb b/Modules.Jobs/JobBase.vb deleted file mode 100644 index 0f02b631..00000000 --- a/Modules.Jobs/JobBase.vb +++ /dev/null @@ -1,16 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging - -Public Class JobBase - Protected _LogConfig As LogConfig - Protected _Logger As Logger - Protected _Firebird As Firebird - Protected _MSSQL As MSSQLServer - - Public Sub New(LogConfig As LogConfig, Firebird As Firebird, MSSQL As MSSQLServer) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - _Firebird = Firebird - _MSSQL = MSSQL - End Sub -End Class diff --git a/Modules.Jobs/JobConfig.vb b/Modules.Jobs/JobConfig.vb deleted file mode 100644 index 4c09a2cd..00000000 --- a/Modules.Jobs/JobConfig.vb +++ /dev/null @@ -1,8 +0,0 @@ -Imports System.Collections.Generic - -Public Class JobConfig - Public Enabled As Boolean - Public StartImmediately As Boolean - Public CronExpression As String - Public Arguments As Dictionary(Of String, String) -End Class \ No newline at end of file diff --git a/Modules.Jobs/JobConfigParser.vb b/Modules.Jobs/JobConfigParser.vb deleted file mode 100644 index fff93541..00000000 --- a/Modules.Jobs/JobConfigParser.vb +++ /dev/null @@ -1,78 +0,0 @@ -Imports System.Collections.Generic -Imports System.Text.RegularExpressions - -Public Class JobConfigParser - Private Shared JobOptionsRegex As New Regex("(?True|False|Debug)\|(?[\w\d\s,\?*-/]*)(?:\|(?(?:\w*::[^,\n]+,?)*))?") - Private Shared JobArgumentsRegex As New Regex("(?:(?:\w+::[^,\n]+,?)?)+") - Private Const ARGS_ITEM_DELIMITER As String = "," - Private Const ARGS_KEYVALUE_DELIMITER As String = "::" - Private Const ARGS_LIST_DELIMITER As String = "|" - - ''' - ''' Parse a job config string. ex: True|0 0/3 * * * ?|Arg1::Foo,Arg2::Bar - ''' - ''' - ''' A populated JobConfig object - Public Shared Function ParseConfig(ConfigString As String) As JobConfig - If JobOptionsRegex.IsMatch(ConfigString) Then - Dim oMatches = JobOptionsRegex.Matches(ConfigString) - Dim oOptions As New JobConfig - - Dim oSplitOptions As String() = ConfigString.Split(ARGS_LIST_DELIMITER) - - If oSplitOptions.Length = 3 Then - oOptions = ParseEnabled(oSplitOptions(0), oOptions) - oOptions.CronExpression = oSplitOptions(1) - oOptions.Arguments = ParseOptionalArguments(oSplitOptions(2)) - ElseIf oSplitOptions.Length = 2 Then - oOptions = ParseEnabled(oSplitOptions(0), oOptions) - oOptions.CronExpression = oSplitOptions(1) - oOptions.Arguments = New Dictionary(Of String, String) - Else - Throw New ArgumentException("Config Malformed") - End If - - Return oOptions - Else - Throw New ArgumentException("Config Malformed") - End If - End Function - - Public Shared Function ParseEnabled(EnabledValue As String, Options As JobConfig) As JobConfig - Select Case EnabledValue - Case "True" - Options.Enabled = True - Options.StartImmediately = False - Case "Debug" - Options.Enabled = True - Options.StartImmediately = True - Case Else - Options.Enabled = False - Options.StartImmediately = False - End Select - - Return Options - End Function - - Private Shared Function ParseOptionalArguments(ArgsString As String) As Dictionary(Of String, String) - Dim oArgsDictionary As New Dictionary(Of String, String) - - If JobArgumentsRegex.IsMatch(ArgsString) Then - Dim oArgs As String() = ArgsString.Split(ARGS_ITEM_DELIMITER) - - For Each oArg In oArgs - Dim oDelimiter As String() = New String() {ARGS_KEYVALUE_DELIMITER} - Dim oArgSplit = oArg.Split(oDelimiter, StringSplitOptions.RemoveEmptyEntries) - Regex.Split(oArg, "::") - - If oArgSplit.Length = 2 Then - oArgsDictionary.Add(oArgSplit(0), oArgSplit(1)) - Else - Throw New ArgumentException("Config Malformed") - End If - Next - End If - - Return oArgsDictionary - End Function -End Class diff --git a/Modules.Jobs/JobInterface.vb b/Modules.Jobs/JobInterface.vb deleted file mode 100644 index edd8a83a..00000000 --- a/Modules.Jobs/JobInterface.vb +++ /dev/null @@ -1,9 +0,0 @@ -Public Interface IJob - Sub Start(Arguments As Object) -End Interface - -Public Interface IJob(Of T) - Sub Start(Arguments As T) - - Function ShouldStart(Arguments As T) As Boolean -End Interface diff --git a/Modules.Jobs/Jobs.vbproj b/Modules.Jobs/Jobs.vbproj deleted file mode 100644 index 6b265cd3..00000000 --- a/Modules.Jobs/Jobs.vbproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - Debug - AnyCPU - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3} - Library - DigitalData.Modules.Jobs - DigitalData.Modules.Jobs - 512 - Empty - v4.6.1 - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - true - - - AnyCPU - true - full - true - true - bin\Debug\ - - - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - - - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - SettingsSingleFileGenerator - Settings.Designer.vb - - - - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {AB6F09BF-E794-4F6A-94BB-C97C0BA84D64} - Interfaces - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - - - - - - - - - - - - - - - - - - - - - True - True - Settings.settings - - - - - ..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll - - - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.Jobs/My Project/AssemblyInfo.vb b/Modules.Jobs/My Project/AssemblyInfo.vb deleted file mode 100644 index a6872d43..00000000 --- a/Modules.Jobs/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,34 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern -' übernehmen, indem Sie "*" eingeben: - - - diff --git a/Modules.Jobs/My Project/Settings.Designer.vb b/Modules.Jobs/My Project/Settings.Designer.vb deleted file mode 100644 index b89e781b..00000000 --- a/Modules.Jobs/My Project/Settings.Designer.vb +++ /dev/null @@ -1,71 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - - - _ -Partial Friend NotInheritable Class Settings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As Settings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()),Settings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As Settings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property -End Class - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Jobs.Settings - Get - Return Global.DigitalData.Modules.Jobs.Settings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Jobs/My Project/Settings.settings b/Modules.Jobs/My Project/Settings.settings deleted file mode 100644 index e69de29b..00000000 diff --git a/Modules.Jobs/packages.config b/Modules.Jobs/packages.config deleted file mode 100644 index dcdadb44..00000000 --- a/Modules.Jobs/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Modules.Language/DataTableEx.vb b/Modules.Language/DataTableEx.vb deleted file mode 100644 index 936d29c0..00000000 --- a/Modules.Language/DataTableEx.vb +++ /dev/null @@ -1,33 +0,0 @@ -Imports System.Runtime.CompilerServices - -Public Module DataTableEx - - Public Function ItemEx(Of T)(pRow As DataRow, pFieldName As String, Optional pDefaultValue As T = Nothing) As T - Try - Return Utils.NotNull(pRow.Item(pFieldName), pDefaultValue) - Catch ex As Exception - Return Nothing - End Try - End Function - - - Public Function ItemEx(Of T)(pRow As DataRow, pFieldIndex As Integer, Optional pDefaultValue As T = Nothing) As T - Try - Return Utils.NotNull(pRow.Item(pFieldIndex), pDefaultValue) - Catch ex As Exception - Return Nothing - End Try - End Function - - - Public Function First(pTable As DataTable) As DataRow - Try - If pTable Is Nothing OrElse pTable.Rows.Count = 0 Then - Return Nothing - End If - Return pTable.Rows.Item(0) - Catch ex As Exception - Return Nothing - End Try - End Function -End Module diff --git a/Modules.Language/DateTimeEx.vb b/Modules.Language/DateTimeEx.vb deleted file mode 100644 index 4cc4d86e..00000000 --- a/Modules.Language/DateTimeEx.vb +++ /dev/null @@ -1,12 +0,0 @@ -Imports System.Runtime.CompilerServices - -Public Module DateTimeEx - Const UnixEraStartTicks As Long = 621355968000000000 - Public Function UnixTimestamp(value As Date) As Long - Dim UnixEraTicks = value.Ticks - UnixEraStartTicks - Return UnixEraTicks \ 10000 - End Function - Public Function DateFromUnix(timestamp As Long) As Date - Return New Date(UnixEraStartTicks + timestamp * 10000) - End Function -End Module diff --git a/Modules.Language/InvalidChars.vb b/Modules.Language/InvalidChars.vb deleted file mode 100644 index c6af2682..00000000 --- a/Modules.Language/InvalidChars.vb +++ /dev/null @@ -1,8 +0,0 @@ -Imports System.Text.RegularExpressions - -Friend Class InvalidChars - Public Shared Filenames As String = Regex.Escape(New String(IO.Path.GetInvalidFileNameChars())) - Public Shared Paths As String = Regex.Escape(New String(IO.Path.GetInvalidPathChars())) - Public Shared UnicodeSurrogates = "\p{Cs}" - Public Shared Emojis = "\uD83D(?:\uDC68(?:\uD83C(?:[\uDFFB-\uDFFF]\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\uDFFB-\uDFFF])|\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83D(?:(?:[\uDC68\uDC69]\u200D\uD83D)?(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|\uDC69(?:\uD83C(?:[\uDFFB-\uDFFF]\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D[\uDC68\uDC69]|[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\uDFFB-\uDFFF])|\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D[\uDC68\uDC69]|[\uDC68\uDC69])|\uD83D(?:(?:\uDC69\u200D\uD83D)?(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uDC6F)(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|\uDC41(?:\uFE0F(?:\u200D\uD83D\uDDE8\uFE0F?)?|\u200D\uD83D\uDDE8\uFE0F?)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD74\uDD90]\uD83C[\uDFFB-\uDFFF]|\uDC08(?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD74\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB])|\uD83E(?:\uDDD1(?:\uD83C(?:[\uDFFB-\uDFFF]\u200D(?:\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\uDFFB-\uDFFF])|\u200D(?:\uD83E(?:\uDD1D\u200D\uD83E\uDDD1|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|[\uDD3C\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|\uD83C(?:\uDFF4(?:\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\u200D\u2620\uFE0F?)?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDFF3(?:\uFE0F(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|(?:[\uDFCB\uDFCC]\u200D[\u2640\u2642]|[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7])\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCB\uDFCC\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF])|\u26F9(?:(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)(?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|\u2764(?:\uFE0F(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|[\#\*0-9]\uFE0F?\u20E3|[\u261D\u270C\u270D]\uD83C[\uDFFB-\uDFFF]|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u00A9\u00AE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270C\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]\uFE0F?|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]" -End Class diff --git a/Modules.Language/Language.vbproj b/Modules.Language/Language.vbproj deleted file mode 100644 index f72ac163..00000000 --- a/Modules.Language/Language.vbproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - Debug - AnyCPU - {D3C8CFED-D6F6-43A8-9BDF-454145D0352F} - Library - DigitalData.Modules.Language - DigitalData.Modules.Language - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Language.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Language.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - - \ No newline at end of file diff --git a/Modules.Language/My Project/Application.Designer.vb b/Modules.Language/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Language/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Language/My Project/Application.myapp b/Modules.Language/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Language/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Language/My Project/AssemblyInfo.vb b/Modules.Language/My Project/AssemblyInfo.vb deleted file mode 100644 index 14982058..00000000 --- a/Modules.Language/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Language/My Project/Resources.Designer.vb b/Modules.Language/My Project/Resources.Designer.vb deleted file mode 100644 index 92ca1652..00000000 --- a/Modules.Language/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Language.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Language/My Project/Resources.resx b/Modules.Language/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Language/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Language/My Project/Settings.Designer.vb b/Modules.Language/My Project/Settings.Designer.vb deleted file mode 100644 index 503a0ca8..00000000 --- a/Modules.Language/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Language.My.MySettings - Get - Return Global.DigitalData.Modules.Language.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Language/My Project/Settings.settings b/Modules.Language/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Language/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Language/StringEx.vb b/Modules.Language/StringEx.vb deleted file mode 100644 index a4cb6f4d..00000000 --- a/Modules.Language/StringEx.vb +++ /dev/null @@ -1,15 +0,0 @@ -Imports System.Runtime.CompilerServices - -Public Module StringEx - ''' - ''' Truncates a string to the specified length if it exceeds that length. - ''' - ''' The string - ''' The maximum string length - ''' The truncated string - - Public Function Truncate(pString As String, pLength As Integer) As String - If String.IsNullOrEmpty(pString) Then Return pString - Return pString.Substring(0, Math.Min(pLength, pString.Length)) - End Function -End Module diff --git a/Modules.Language/Utils.vb b/Modules.Language/Utils.vb deleted file mode 100644 index 04c6b1b6..00000000 --- a/Modules.Language/Utils.vb +++ /dev/null @@ -1,209 +0,0 @@ -Imports System.Drawing -Imports System.Runtime.CompilerServices -Imports System.Text -Imports System.Text.RegularExpressions -Imports System.Windows.Forms -''' -''' Provides common utility functions that do not require a specific context. -''' -Public Class Utils - ''' - ''' Generates a random short (8 characters) guid - ''' - ''' The generated guid as a String - Public Shared Function ShortGUID() As String - Return Guid.NewGuid().ToString().GetHashCode().ToString("x") - End Function - - ''' - ''' Converts a String value to the given Enum - ''' - ''' The Enum Type - ''' The string value to convert - Public Shared Function ToEnum(Of T)(value As String) As T - Return [Enum].Parse(GetType(T), value) - End Function - - ''' - ''' Converts an Integer value to the given Enum - ''' - ''' The Enum Type - ''' The integer value to convert - Public Shared Function ToEnum(Of T)(value As Integer) As T - Return [Enum].ToObject(GetType(T), value) - End Function - - ''' - ''' Converts a Long value to the given Enum - ''' - ''' The Enum Type - ''' The long value to convert - Public Shared Function ToEnum(Of T)(value As Long) As T - Return [Enum].ToObject(GetType(T), value) - End Function - - Public Shared Function ToBoolean(input As String) As Boolean - If String.IsNullOrEmpty(input) Then Return False - Return (input.Trim().ToLower() = "true") OrElse (input.Trim() = "1") - End Function - - ''' - ''' Checks a value for three different `null` values, - ''' Nothing, Empty String, DBNull - ''' - ''' Returns the original value if the value is not null, or `defaultValue` - ''' - ''' The type of the value - ''' The value - ''' The default Value - ''' The original value or the default value - Public Shared Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T - If IsNothing(value) OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then - Return defaultValue - Else - Return value - End If - End Function - - ''' - ''' Checks a Row value for three different `null` values, - ''' Nothing, Empty String, DBNull - ''' - ''' Returns the original value if the value is not null, or `defaultValue` - ''' - ''' The type of the value - ''' The DataRow that contains the value - ''' The column name - ''' The default value - ''' The original value or the default value - Public Shared Function NotNull(Of T)(ByVal Row As DataRow, Column As String, DefaultValue As T) As T - Return NotNull(Row.Item(Column), DefaultValue) - End Function - - ''' - ''' Creates a "slug" from text that can be used as part of a valid URL. - ''' Invalid characters are converted to hyphens. Punctuation that Is - ''' perfect valid in a URL Is also converted to hyphens to keep the - ''' result mostly text. Steps are taken to prevent leading, trailing, - ''' And consecutive hyphens. - ''' - ''' The string to convert - Public Shared Function ConvertTextToSlug(ByVal s As String) As String - Dim oBuilder As StringBuilder = New StringBuilder() - Dim oWasHyphen As Boolean = True - - For Each oChar As Char In s - - If Char.IsLetterOrDigit(oChar) Then - oBuilder.Append(Char.ToLower(oChar)) - oWasHyphen = False - ElseIf Char.IsWhiteSpace(oChar) AndAlso Not oWasHyphen Then - oBuilder.Append("-"c) - oWasHyphen = True - End If - Next - - If oWasHyphen AndAlso oBuilder.Length > 0 Then oBuilder.Length -= 1 - Return oBuilder.ToString() - End Function - - ''' - ''' Removes Invalid characters from a string, suitable for file and path names - ''' - ''' Removed characters are: - ''' - ''' * Illegal File-characters - ''' * Illegal Path-characters - ''' * Unicode characters that classify as Emoji - ''' * All characters above codepoint U+10000 - ''' - ''' See: - ''' https://stackoverflow.com/questions/46905176/detecting-all-emojis - ''' https://stackoverflow.com/questions/28023682/how-do-i-remove-emoji-characters-from-a-string - ''' - ''' - Public Shared Function RemoveInvalidCharacters(pString As String) As String - Dim oResult = pString - - Try - ' Remove all Unicode above Codepoint U+10000 - oResult = Regex.Replace(oResult, InvalidChars.UnicodeSurrogates, String.Empty) - - ' Remove all Emojis (Version 13) - oResult = Regex.Replace(oResult, InvalidChars.Emojis, String.Empty) - - ' Remove Invalid filename characters - oResult = Regex.Replace(oResult, InvalidChars.Filenames, String.Empty) - - ' Remove Invalid filename characters - oResult = Regex.Replace(oResult, InvalidChars.Paths, String.Empty) - - ' Remove Uneccessary characters - oResult = Regex.Replace(oResult, "\s{2,}", " ") - oResult = Regex.Replace(oResult, "\.{2,}", ".") - - ' Remove excess space chars - oResult = oResult.Trim() - - Return oResult - Catch ex As Exception - Return oResult - End Try - End Function - - Public Shared Function TestContainsInvalidCharacters(pString As String) As Boolean - Return Not pString.Equals(RemoveInvalidCharacters(pString)) - End Function - - ''' - ''' Checks if a point is Visible on any screen - ''' - Public Shared Function IsVisibleOnAnyScreen(Location As Point) As Boolean - Try - Dim oRect As New Rectangle(Location, New Size(0, 0)) - - For Each oScreen In Screen.AllScreens - If oScreen.WorkingArea.IntersectsWith(oRect) Then - Return True - End If - Next - - Return False - Catch ex As Exception - Return False - End Try - End Function - - ''' - ''' Checks if Size is not negative - ''' - Public Shared Function SizeIsVisible(Size As Size) As Boolean - If Size.Width >= 0 And Size.Height >= 0 Then - Return True - End If - - Return False - End Function - - ''' - ''' Checks if Location is not negative - ''' - Public Shared Function LocationIsVisible(Location As Point) As Boolean - If Location.X >= 0 And Location.Y >= 0 Then - Return True - End If - - Return False - End Function - - Public Shared Function BytesToString(ByteCount As Long) As String - Dim oSuffixes As New List(Of String) From {"B", "KB", "MB", "GB", "TB", "PB", "EB"} - If ByteCount = 0 Then - Return "0" & oSuffixes.First() - End If - Dim oBytes = Math.Abs(ByteCount) - Dim oIndex = Convert.ToInt32(Math.Floor(Math.Log(oBytes, 1024))) - Dim oNum = Math.Round(oBytes / Math.Pow(1024, oIndex), 1) - Return (Math.Sign(ByteCount) * oNum).ToString() & oSuffixes.Item(oIndex) - End Function -End Class diff --git a/Modules.Language/Watch.vb b/Modules.Language/Watch.vb deleted file mode 100644 index 6a567627..00000000 --- a/Modules.Language/Watch.vb +++ /dev/null @@ -1,23 +0,0 @@ -Public Class Watch - - Private ReadOnly _StopWatch As Stopwatch - Private ReadOnly _Name As String - - Public Sub New(pName As String) - _StopWatch = New Stopwatch() - _StopWatch.Start() - - _Name = pName - Debug.WriteLine($"Starting [{pName}].") - End Sub - - Public Sub Restart() - _StopWatch.Restart() - Debug.WriteLine($"Starting [{_Name}].") - End Sub - - Public Sub [Stop]() - _StopWatch.Stop() - Debug.WriteLine($"Stopped [{_Name}] after {_StopWatch.Elapsed.TotalSeconds} seconds.") - End Sub -End Class diff --git a/Modules.Language/packages.config b/Modules.Language/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.Language/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.License/License.vbproj b/Modules.License/License.vbproj deleted file mode 100644 index 2eb05c1d..00000000 --- a/Modules.License/License.vbproj +++ /dev/null @@ -1,129 +0,0 @@ - - - - - Debug - AnyCPU - {5EBACBFA-F11A-4BBF-8D02-91461F2293ED} - Library - DigitalData.Modules.License - DigitalData.Modules.License - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.License.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.License.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LicenseSchema.xsd - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - Designer - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/Modules.License/LicenseCreator.vb b/Modules.License/LicenseCreator.vb deleted file mode 100644 index eb62ec4a..00000000 --- a/Modules.License/LicenseCreator.vb +++ /dev/null @@ -1,34 +0,0 @@ -Public Class LicenseCreator - Public Shared Function NewUser(Type As UserType, Count As Integer, Optional ValidUntil As Date = Nothing) As LicenseModuleUser - Dim oValidUntilSpecified = Not IsNothing(ValidUntil) - Dim oTest = IsNothing(ValidUntil) - - Return New LicenseModuleUser() With { - .Count = Count, - .Type = Type, - .Test = oTest, - .ValidUntil = ValidUntil, - .ValidUntilSpecified = oValidUntilSpecified - } - End Function - - Public Shared Function NewModule(Name As String, Users As List(Of LicenseModuleUser), Optional ValidUntil As Date = Nothing) As LicenseModule - Dim oUsers = Users.ToArray() - Dim oValidUntilSpecified = Not IsNothing(ValidUntil) - - Return New LicenseModule() With { - .Name = Name, - .Users = oUsers, - .ValidUntil = ValidUntil, - .ValidUntilSpecified = oValidUntilSpecified - } - End Function - - Public Shared Function NewLicense(Modules As List(Of LicenseModule)) As LicenseSchema - Dim oModules = Modules.ToArray() - - Return New LicenseSchema With { - .Modules = oModules - } - End Function -End Class diff --git a/Modules.License/LicenseFile.vb b/Modules.License/LicenseFile.vb deleted file mode 100644 index 0e842d37..00000000 --- a/Modules.License/LicenseFile.vb +++ /dev/null @@ -1,81 +0,0 @@ -Imports System.IO -Imports System.Xml -Imports System.Xml.Serialization -Imports DigitalData.Modules.Logging - -Public Class LicenseFile - Public Const LICENSE_FILENAME = "License.xml" - - Public ReadOnly Path As String - Private _Logger As Logger - - Public Sub New(LogConfig As LogConfig, Path As String) - Me.Path = Path - _Logger = LogConfig.GetLogger() - End Sub - - Private Function GetSerializer() As XmlSerializer - Dim oSerializer As New XmlSerializer(GetType(LicenseSchema)) - Return oSerializer - End Function - - Public Function TestFileValid(Optional FileName As String = LICENSE_FILENAME) As Boolean - Try - Dim oSerializer = GetSerializer() - Dim oFilePath As String = IO.Path.Combine(Path, FileName) - - Using oReader As New StreamReader(oFilePath), - oXmlReader = XmlReader.Create(oReader) - Return oSerializer.CanDeserialize(oXmlReader) - End Using - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function LoadFile(Optional FileName As String = LICENSE_FILENAME) As LicenseSchema - Try - Dim oSerializer = GetSerializer() - Dim oFilePath As String = IO.Path.Combine(Path, FileName) - Dim oLicense As LicenseSchema - - Using oReader As New StreamReader(oFilePath) - oLicense = oSerializer.Deserialize(oReader) - End Using - - Return oLicense - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function Serialize(License As LicenseSchema) As Byte() - Try - Dim oSerializer = GetSerializer() - - Using oStream = New MemoryStream() - oSerializer.Serialize(oStream, License) - Return oStream.ToArray() - End Using - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Sub SaveFile(License As LicenseSchema, Optional FileName As String = LICENSE_FILENAME) - Try - Dim oBytes = Serialize(License) - Dim oFilePath As String = IO.Path.Combine(Path, FileName) - - Using oFileStream = New FileStream(oFilePath, FileMode.Create, FileAccess.Write) - oFileStream.Write(oBytes, 0, oBytes.Length) - End Using - Catch ex As Exception - _Logger.Error(ex) - Throw ex - End Try - End Sub -End Class diff --git a/Modules.License/LicenseLegacy.vb b/Modules.License/LicenseLegacy.vb deleted file mode 100644 index 17563198..00000000 --- a/Modules.License/LicenseLegacy.vb +++ /dev/null @@ -1,44 +0,0 @@ -Public Class LicenseLegacy - ' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++ - - ''' - ''' Konstruktor der Lizenz - ''' - Sub New(ByVal _ModuleName As String, ByVal _Expires As Date, ByVal _Type As String, ByVal _AnzProfile As String) - Modulename = _ModuleName - Expires = _Expires - Type = _Type - Anz_Profile = _AnzProfile - End Sub - - ' ++++++++++++++++++++++++++++++++++++++++++++++ Properties ++++++++++++++++++++++++++++++++++++++++++++++ - - ''' - ''' Liefert oder setzt den Namen des Moduls für diese Lizenz - ''' - Public Property Modulename() As String - ''' - ''' Liefert oder setzt das Gültigkeitsdatum der Lizenz für das Modul - ''' - Public Property Expires() As Date - ''' - ''' Liefert den Typen der Lizenz - ''' - Public Property Type() As String - ''' - ''' Liefert die Anzahl der Profile - ''' - Public Property Anz_Profile() As String - ''' - ''' Liefert ob die Lizenz schon abgelaufen ist - ''' - Public ReadOnly Property IsExpired() - Get - If Date.Today > Expires Then - Return True - Else - Return False - End If - End Get - End Property -End Class diff --git a/Modules.License/LicenseManagerLegacy.vb b/Modules.License/LicenseManagerLegacy.vb deleted file mode 100644 index 4033665e..00000000 --- a/Modules.License/LicenseManagerLegacy.vb +++ /dev/null @@ -1,228 +0,0 @@ -Imports System.Security.Cryptography -Imports System.Text -Imports DigitalData.Modules.Logging - -Public Class LicenseManagerLegacy - Public Shared _licenses As LicensesLegacy - Private _Logger As Logger - Private _LogConfig As LogConfig - - Public LicenseString As String - Public LicenseStringArray(,) As String - - ' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++ - - ''' - ''' Konstruktor für den Lizenz-Manager - ''' - ''' Passwort zum Entschlüsseln des Lizenzkeys - ''' verschlüsselter Lizenzkey - ''' - Sub New(LogConfig As LogConfig, ByVal _Password As String, ByVal _Key As String) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger - - Password = _Password - Key = _Key - - LicenseString = DecodeLicenseKey(Key) - LicenseStringArray = SplitLicenseString(LicenseString) - - LoadLicenses() - End Sub - ''' - ''' Konstruktor für den Lizenz-Manager ohne License load - ''' - ''' Passwort zum Entschlüsseln des Lizenzkeys - Sub New(ByVal password As String) - Me.Password = password - End Sub - ''' - ''' Lädt alle Lizenzen aus dem Lizenz-Array - ''' - ''' - Public Sub LoadLicenses() - _licenses = New LicensesLegacy(_LogConfig, LicenseStringArray) - End Sub - - - ''' - ''' Codiert eine Zeichenkette - ''' - ''' zu verschlüsselnde Zeichenkette - ''' das zur Verschlüsselung verwendete Passwort - ''' liefert eine verschlüsselte Zeichenkette - ''' - Public Function EncodeLicenseKey(ByVal str As String, ByVal password As String) - Dim oRijndael As New RijndaelManaged - - Dim oMD5 As New MD5CryptoServiceProvider - Dim oKey() As Byte = oMD5.ComputeHash(Encoding.UTF8.GetBytes(password)) - - oMD5.Clear() - oRijndael.Key = oKey - oRijndael.GenerateIV() - - Dim oInitialVector() As Byte = oRijndael.IV - Dim oStream As New IO.MemoryStream - - oStream.Write(oInitialVector, 0, oInitialVector.Length) - - Dim oCryptoStream As New CryptoStream(oStream, oRijndael.CreateEncryptor, CryptoStreamMode.Write) - Dim oData() As Byte = Encoding.UTF8.GetBytes(str) - - oCryptoStream.Write(oData, 0, oData.Length) - oCryptoStream.FlushFinalBlock() - - Dim oEncodedData() As Byte = oStream.ToArray() - Dim oResult As String = Convert.ToBase64String(oEncodedData) - oCryptoStream.Close() - oRijndael.Clear() - - Return oResult - End Function - - - ''' - ''' Decodiert den verschlüsselten Lizenzkey - ''' - ''' verschlüsselter Lizenzkey - ''' - ''' - Public Function DecodeLicenseKey(ByVal licenseCodeStr As String) - Try - Dim oRijndael As New RijndaelManaged - Dim oIVLength As Integer = 16 - Dim oMD5 As New MD5CryptoServiceProvider - Dim oKey() As Byte = oMD5.ComputeHash(Encoding.UTF8.GetBytes(Me.Password)) - - oMD5.Clear() - - Dim oEncodedData() As Byte - Dim oStream - Dim oInitialVector(15) As Byte - Dim oCryptoStream As CryptoStream - Dim oData() As Byte - - Try - oEncodedData = Convert.FromBase64String(licenseCodeStr) - oStream = New IO.MemoryStream(oEncodedData) - - oStream.Read(oInitialVector, 0, oIVLength) - oRijndael.IV = oInitialVector - oRijndael.Key = oKey - - oCryptoStream = New CryptoStream(oStream, oRijndael.CreateDecryptor, CryptoStreamMode.Read) - - ReDim oData(oStream.Length - oIVLength) - Catch ex As Exception - Return Nothing - End Try - - Dim oInteger As Integer = 0 - - Try - oInteger = oCryptoStream.Read(oData, 0, oData.Length) - Dim oResult As String = Encoding.UTF8.GetString(oData, 0, oInteger) - - oCryptoStream.Close() - oRijndael.Clear() - Return oResult - - Catch ex As Exception - ' Falsches Passwort - _Logger.Warn("DecodeLicenseKey: Password Incorrect") - _Logger.Error(ex) - - Return Nothing - - End Try - Catch ex As Exception - ' Falsches Passwort - _Logger.Warn("DecodeLicenseKey: Password Incorrect") - _Logger.Error(ex) - End Try - - Return Nothing - End Function - - - ''' - ''' Zerlegt den entschlüsselten Lizenzkey - ''' - ''' entschlüsselter Lizenzkey - ''' - ''' - Public Function SplitLicenseString(ByVal licenseStr As String) As String(,) - - Try - If licenseStr IsNot Nothing Then - Dim licenseTemp() As String = licenseStr.Split(";") - - Dim licenses(licenseTemp.Length, 3) As String - - Dim i As Integer = 0 - - If licenseTemp IsNot Nothing Then - For Each lizenz As String In licenseTemp - - Dim temp() = lizenz.Split(":") - - licenses(i, 0) = temp(0) - licenses(i, 1) = temp(1) - If temp.Length > 2 Then - licenses(i, 2) = temp(2) - licenses(i, 3) = temp(3) - Dim expires As Date - Date.TryParse(licenses(i, 1), expires) - End If - - - i += 1 - Next - - Return licenses - End If - End If - Catch ex As Exception - _Logger.Warn("Error in SplitLicenseString") - _Logger.Error(ex) - End Try - - Return Nothing - End Function - - - - ' ++++++++++++++++++++++++++++++++++++++++++++++ Properties ++++++++++++++++++++++++++++++++++++++++++++++ - - ''' - ''' Liefert das Passwort zum Entschlüsseln des Lizenzschlüssels - ''' - ''' - ''' - ''' - Public ReadOnly Property Password() As String - - - ''' - ''' Liefert eine Sammlung von Lizenzobjekten - ''' - ''' - ''' - ''' - Public ReadOnly Property Licenses() As LicensesLegacy - Get - Return _licenses - End Get - End Property - - - ''' - ''' Liefert oder setzt den Lizenzschlüssel - ''' - ''' - ''' - ''' - Public Property Key() As String -End Class diff --git a/Modules.License/LicenseSchema.vb b/Modules.License/LicenseSchema.vb deleted file mode 100644 index 877fe8c0..00000000 --- a/Modules.License/LicenseSchema.vb +++ /dev/null @@ -1,203 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict Off -Option Explicit On - -Imports System.Xml.Serialization -Imports System.ComponentModel -Imports System.CodeDom.Compiler - -' -'This source code was auto-generated by xsd, Version=4.6.1586.0. -' - -''' - -Partial Public Class LicenseSchema - - Private modulesField() As LicenseModule - - ''' - - Public Property Modules() As LicenseModule() - Get - Return Me.modulesField - End Get - Set - Me.modulesField = Value - End Set - End Property -End Class - -''' - -Partial Public Class LicenseModule - - Private usersField() As LicenseModuleUser - - Private nameField As String - - Private validUntilField As Date - - Private validUntilFieldSpecified As Boolean - - ''' - - Public Property Users() As LicenseModuleUser() - Get - Return Me.usersField - End Get - Set - Me.usersField = Value - End Set - End Property - - ''' - - Public Property Name() As String - Get - Return Me.nameField - End Get - Set - Me.nameField = Value - End Set - End Property - - ''' - - Public Property ValidUntil() As Date - Get - Return Me.validUntilField - End Get - Set - Me.validUntilField = Value - End Set - End Property - - ''' - - Public Property ValidUntilSpecified() As Boolean - Get - Return Me.validUntilFieldSpecified - End Get - Set - Me.validUntilFieldSpecified = Value - End Set - End Property -End Class - -''' - -Partial Public Class LicenseModuleUser - - Private typeField As UserType - - Private countField As String - - Private testField As Boolean - - Private validUntilField As Date - - Private validUntilFieldSpecified As Boolean - - Public Sub New() - MyBase.New - Me.testField = True - End Sub - - ''' - - Public Property Type() As UserType - Get - Return Me.typeField - End Get - Set - Me.typeField = Value - End Set - End Property - - ''' - - Public Property Count() As String - Get - Return Me.countField - End Get - Set - Me.countField = Value - End Set - End Property - - ''' - - Public Property Test() As Boolean - Get - Return Me.testField - End Get - Set - Me.testField = Value - End Set - End Property - - ''' - - Public Property ValidUntil() As Date - Get - Return Me.validUntilField - End Get - Set - Me.validUntilField = Value - End Set - End Property - - ''' - - Public Property ValidUntilSpecified() As Boolean - Get - Return Me.validUntilFieldSpecified - End Get - Set - Me.validUntilFieldSpecified = Value - End Set - End Property -End Class - -''' - -Public Enum UserType - - ''' - PowerUser - - ''' - [ReadOnly] - - ''' - [WriteOnly] - - ''' - ReadWrite -End Enum diff --git a/Modules.License/LicenseSchema.xsd b/Modules.License/LicenseSchema.xsd deleted file mode 100644 index 34a4f742..00000000 --- a/Modules.License/LicenseSchema.xsd +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules.License/LicensesLegacy.vb b/Modules.License/LicensesLegacy.vb deleted file mode 100644 index 582acbf8..00000000 --- a/Modules.License/LicensesLegacy.vb +++ /dev/null @@ -1,104 +0,0 @@ -Imports DigitalData.Modules.Logging - -Public Class LicensesLegacy - Private _licenses() As LicenseLegacy - Private _WDLizenz As String - Private _Logger As Logger - - ' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++ - - ''' - ''' Konstruktor für die Lizenzen-Sammlung - ''' - ''' In Array übertragene Lizenzinformationen - Sub New(LogConfig As LogConfig, ByVal licenseStringArray(,) As String) - Try - _Logger = LogConfig.GetLogger() - - If licenseStringArray IsNot Nothing Then - Dim license1() As String = licenseStringArray(0, 1).Split("#") - - If license1.Length > 1 Then - Me.machine = license1(1) - Else - Me.machine = "all" - End If - Me.Company = license1(0) 'licenseStringArray(0, 1) - Dim i As Integer - For i = 1 To licenseStringArray.GetLength(0) - 2 ' minus 2, weil GetLength nicht null-basiert ist und das erste Element Firma ist - Dim anzprof As String = licenseStringArray(i, 3) - If anzprof.ToLower = "unlimited" Then - anzprof = 99 - End If - Me.Add(licenseStringArray(i, 0), licenseStringArray(i, 1), licenseStringArray(i, 2), anzprof) - Next - End If - Catch ex As Exception - _Logger.Error(ex) - End Try - End Sub - - - ''' - ''' Fügt der Lizenz-Sammlung eine Lizenz hinzu - ''' - ''' Name des Moduls, für das eine Lizenz angelegt werden soll - ''' Datum der Gültigkeit der Lizenz - Public Sub Add(ByVal modulename As String, ByVal expires As Date, ByVal type As String, ByVal anzprof As String) - - If _licenses IsNot Nothing Then - ReDim Preserve _licenses(_licenses.Length) - Else - ReDim Preserve _licenses(0) - End If - - _licenses(_licenses.Length - 1) = New LicenseLegacy(modulename, expires, type, anzprof) - End Sub - - - ''' - ''' Liefert eine Lizenz an Hand des Modulnamens - ''' - ''' Name des zu suchenden Moduls - ''' liefert ein Lizenzobjekt - Public Function GetLicense(ByVal modulename As String) As LicenseLegacy - If _licenses IsNot Nothing Then - For Each license As LicenseLegacy In _licenses - If license.Modulename = modulename Then - Return license - End If - Next - End If - - Return Nothing - End Function - - ' ++++++++++++++++++++++++++++++++++++++++++++++ Properties ++++++++++++++++++++++++++++++++++++++++++++++ - - ''' - ''' liefert eine Sammlung von Lizenzobjekten - ''' - Public ReadOnly Property Licenses() As LicenseLegacy() - Get - Return _licenses - End Get - End Property - - - ''' - ''' liefert eine Lizenz an Hand des Modulnamens - ''' - ''' Name des zu suchenden Moduls - Public ReadOnly Property License(ByVal modulename As String) As LicenseLegacy - Get - Return GetLicense(modulename) - End Get - End Property - - - ''' - ''' Liefert oder setzt den Firmennamen des Lizenzeigentümers - ''' - Public Property Company() As String - Public Property machine() As String -End Class diff --git a/Modules.License/My Project/Application.Designer.vb b/Modules.License/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.License/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.License/My Project/Application.myapp b/Modules.License/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.License/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.License/My Project/AssemblyInfo.vb b/Modules.License/My Project/AssemblyInfo.vb deleted file mode 100644 index 8a2b13b6..00000000 --- a/Modules.License/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.License/My Project/Resources.Designer.vb b/Modules.License/My Project/Resources.Designer.vb deleted file mode 100644 index 56b61925..00000000 --- a/Modules.License/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.License.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.License/My Project/Resources.resx b/Modules.License/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.License/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.License/My Project/Settings.Designer.vb b/Modules.License/My Project/Settings.Designer.vb deleted file mode 100644 index de8d4535..00000000 --- a/Modules.License/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.License.My.MySettings - Get - Return Global.DigitalData.Modules.License.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.License/My Project/Settings.settings b/Modules.License/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.License/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.License/packages.config b/Modules.License/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.License/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.Logging.Test/ConstructorUnitTest.vb b/Modules.Logging.Test/ConstructorUnitTest.vb deleted file mode 100644 index 3a790cfd..00000000 --- a/Modules.Logging.Test/ConstructorUnitTest.vb +++ /dev/null @@ -1,52 +0,0 @@ -Imports System.Text -Imports System.IO -Imports Microsoft.VisualStudio.TestTools.UnitTesting -Imports DigitalData.Modules.Logging - -''' -''' Test creating the log path in various configurations -''' - Public Class ConstructorUnitTest - Private Shared _currentDirectoryLogPath = Path.Combine(Directory.GetCurrentDirectory(), "Log") - Private Shared _appdataDirectoryLogPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Digital Data", "Modules.Logging", "Log") - Private Shared _customDirectoryLogPath = Path.Combine(Directory.GetCurrentDirectory(), "CustomLogFolder") - Private Shared _restrictedDirectoryLogPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "ShouldNotBeCreated") - Private Shared _nonsenseDirectoryLogPath = "X:\FOO\BAR\BAZ\QUUX" - - Public Sub TestConstructorCurrentDirectory() - Assert.ThrowsException(Of ArgumentException)(Sub() - Dim oLogConfig As New LogConfig(LogConfig.PathType.Temp) - End Sub) - End Sub - - Public Sub TestConstructorApplicationDirectory() - Dim oLogConfig As New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing, "Digital Data", "Modules.Logging") - - Assert.AreEqual(_appdataDirectoryLogPath, oLogConfig.LogDirectory) - End Sub - - Public Sub TestConstructorCustomDirectory() - Dim oLogConfig As New LogConfig(LogConfig.PathType.CustomPath, _customDirectoryLogPath) - - Assert.AreEqual(_customDirectoryLogPath, oLogConfig.LogDirectory) - End Sub - - Public Sub TestConstructorRestrictedDirectory() - Dim oLogConfig As New LogConfig(LogConfig.PathType.CustomPath, _restrictedDirectoryLogPath) - - Assert.AreEqual(Path.GetTempPath, oLogConfig.LogDirectory) - End Sub - - Public Sub TestConstructorNonsenseDirectory() - Dim oLogConfig As New LogConfig(LogConfig.PathType.CustomPath, _nonsenseDirectoryLogPath) - - Assert.AreEqual(Path.GetTempPath, oLogConfig.LogDirectory) - End Sub - - Public Shared Sub Cleanup() - Directory.Delete(_currentDirectoryLogPath, True) - Directory.Delete(_appdataDirectoryLogPath, True) - Directory.Delete(_customDirectoryLogPath, True) - End Sub - -End Class \ No newline at end of file diff --git a/Modules.Logging.Test/Logging.Test.vbproj b/Modules.Logging.Test/Logging.Test.vbproj deleted file mode 100644 index c2b3051d..00000000 --- a/Modules.Logging.Test/Logging.Test.vbproj +++ /dev/null @@ -1,133 +0,0 @@ - - - - - Debug - AnyCPU - {3207D8E7-36E3-4714-9B03-7B5B3D6D351A} - Library - DigitalData.Modules.Logging.Test - DigitalData.Modules.Logging.Test - 512 - Windows - v4.6.1 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Logging.Test.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Logging.Test.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - ..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - - - ..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - - - - \ No newline at end of file diff --git a/Modules.Logging.Test/My Project/Application.Designer.vb b/Modules.Logging.Test/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Logging.Test/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Logging.Test/My Project/Application.myapp b/Modules.Logging.Test/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Logging.Test/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Logging.Test/My Project/AssemblyInfo.vb b/Modules.Logging.Test/My Project/AssemblyInfo.vb deleted file mode 100644 index c26126de..00000000 --- a/Modules.Logging.Test/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - - - - - - - - - - - - -' - - diff --git a/Modules.Logging.Test/My Project/Resources.Designer.vb b/Modules.Logging.Test/My Project/Resources.Designer.vb deleted file mode 100644 index 49091756..00000000 --- a/Modules.Logging.Test/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Logging.Test.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Logging.Test/My Project/Resources.resx b/Modules.Logging.Test/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Logging.Test/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Logging.Test/My Project/Settings.Designer.vb b/Modules.Logging.Test/My Project/Settings.Designer.vb deleted file mode 100644 index 80ff0bac..00000000 --- a/Modules.Logging.Test/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Logging.Test.My.MySettings - Get - Return Global.DigitalData.Modules.Logging.Test.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Logging.Test/My Project/Settings.settings b/Modules.Logging.Test/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Logging.Test/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Logging.Test/packages.config b/Modules.Logging.Test/packages.config deleted file mode 100644 index 371adee0..00000000 --- a/Modules.Logging.Test/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Modules.Logging/LogConfig.vb b/Modules.Logging/LogConfig.vb deleted file mode 100644 index 7a063d5d..00000000 --- a/Modules.Logging/LogConfig.vb +++ /dev/null @@ -1,590 +0,0 @@ -Imports System.IO -Imports System.Reflection -Imports NLog -Imports NLog.Config -Imports NLog.Targets - -''' LogConfig -''' 0.0.1.0 -''' 02.10.2018 -''' -''' Module that writes file-logs to different locations: -''' local application data, the current directory or a custom path. -''' Files and directories will be automatically created. -''' -''' -''' NLog, >= 4.5.8 -''' -''' -''' Imports DigitalData.Modules.Logging -''' -''' Class FooProgram -''' Private Logger as Logger -''' Private LogConfig as LogConfig -''' -''' Public Sub New() -''' LogConfig = new LogConfig(args) -''' Logger = LogConfig.GetLogger() -''' End Sub -''' -''' Public Sub Bar() -''' Logger.Info("Baz") -''' End Sub -''' End Class -''' -''' Class FooLib -''' Private Logger as NLog.Logger -''' -''' Public Sub New(LogConfig as LogConfig) -''' Logger = LogConfig.GetLogger() -''' End Sub -''' -''' Public Sub Bar() -''' Logger.Info("Baz") -''' End Sub -''' End Class -''' -''' -''' If logpath can not be written to, falls back to temp folder as defined in: -''' https://docs.microsoft.com/de-de/dotnet/api/system.io.path.gettemppath?view=netframework-4.7.2 -''' -''' If used in a service, LogPath must be set to CustomPath, otherwise the Log will be written to System32! -''' -''' For NLog Troubleshooting, set the following Environment variables to write the NLog internal Log: -''' - NLOG_INTERNAL_LOG_LEVEL: Debug -''' - NLOG_INTERNAL_LOG_FILE: ex. C:\Temp\Nlog_Internal.log -''' -Public Class LogConfig -#Region "Private Properties" - Private Const OPEN_FILE_CACHE_TIMEOUT As Integer = 30 - Private Const OPEN_FILE_FLUSH_TIMEOUT As Integer = 5 - Private Const AUTO_FLUSH As Boolean = False - - Private Const KEEP_FILES_OPEN As Boolean = False - Private Const KEEP_FILES_OPEN_DEBUG As Boolean = True - - ' MAX_ARCHIVES_FILES works like this (in version 4.5.8): - ' 0 = keep ALL archives files - ' 1 = only keep latest logfile and NO archive files - ' n = keep n archive files - Private Const MAX_ARCHIVE_FILES_DEFAULT As Integer = 0 - Private Const MAX_ARCHIVE_FILES_DEBUG_DETAIL As Integer = 0 - Private Const ARCHIVE_EVERY As FileArchivePeriod = FileArchivePeriod.Day - - Private Const FILE_NAME_FORMAT_DEFAULT As String = "${shortdate}-${var:product}${var:suffix}${event-properties:item=ModuleName}.log" - Private Const FILE_NAME_FORMAT_DEBUG As String = "${shortdate}-${var:product}${var:suffix}${event-properties:item=ModuleName}-Debug.log" - Private Const FILE_NAME_FORMAT_TRACE As String = "${shortdate}-${var:product}${var:suffix}${event-properties:item=ModuleName}-Trace.log" - Private Const FILE_NAME_FORMAT_ERROR As String = "${shortdate}-${var:product}${var:suffix}${event-properties:item=ModuleName}-Error.log" - - Private Const TARGET_DEFAULT As String = "defaultTarget" - Private Const TARGET_ERROR_EX As String = "errorExceptionTarget" - Private Const TARGET_ERROR As String = "errorTarget" - Private Const TARGET_DEBUG As String = "debugTarget" - Private Const TARGET_TRACE As String = "traceTarget" - 'Private Const TARGET_MEMORY As String = "memoryTarget" - - Private Const LOG_FORMAT_BASE As String = "${time}|${logger:shortName=True}|${level:uppercase=true}" - Private Const LOG_FORMAT_CALLSITE As String = "${callsite:className=false:fileName=true:includeSourcePath=false:methodName=true}" - Private Const LOG_FORMAT_EXCEPTION As String = "${exception:format=Message,StackTrace:innerFormat=Message:maxInnerExceptionLevel=3}" - - Private Const LOG_FORMAT_DEFAULT As String = LOG_FORMAT_BASE & " >> ${message}" - Private Const LOG_FORMAT_ERROR As String = LOG_FORMAT_BASE & " >> " & LOG_FORMAT_EXCEPTION - Private Const LOG_FORMAT_DEBUG As String = LOG_FORMAT_BASE & " >> " & LOG_FORMAT_CALLSITE & " -> " & "${message}" - - Private Const FILE_NAME_ACCESS_TEST = "accessTest.txt" - Private Const FOLDER_NAME_LOG = "Log" - - Private Const FILE_KEEP_RANGE As Integer = 30 - 'Private Const MAX_MEMORY_LOG_COUNT As Integer = 1000 - - Private ReadOnly _failSafePath As String = Path.GetTempPath() - Private ReadOnly _basePath As String = _failSafePath - - Private _config As LoggingConfiguration - Private _isDebug As Boolean = False - Private _isTrace As Boolean = False - -#End Region -#Region "Public Properties" - Public Enum PathType As Integer - AppData = 0 - CurrentDirectory = 1 - CustomPath = 2 - Temp = 3 - End Enum - - ''' - ''' Returns the NLog.LogFactory object that is used to create Loggers - ''' - ''' LogFactory object - Public ReadOnly Property LogFactory As LogFactory - - ''' - ''' Returns the path to the current default logfile - ''' - ''' Filepath to the logfile - Public ReadOnly Property LogFile As String - - ''' - ''' Returns the path to the current log directory - ''' - ''' Directory path to the log directory - Public ReadOnly Property LogDirectory As String - - ''' - ''' Determines if a debug log will be written - ''' - ''' True, if debug log will be written. False otherwise. - Public Property Debug As Boolean - Get - Return _isDebug - End Get - Set(isDebug As Boolean) - _isDebug = isDebug - ReloadConfig(isDebug, _isTrace) - End Set - End Property - - Public Property Trace As Boolean - Get - Return _isTrace - End Get - Set(isTrace As Boolean) - _isTrace = isTrace - ReloadConfig(_isDebug, isTrace) - End Set - End Property - - ''' - ''' Returns Logs in Memory as List(Of String) if Debug is enabled - ''' Returns an empty list if debug is disabled - ''' - ''' A list of log messages - Public ReadOnly Property Logs As List(Of String) - Get - 'Dim oTarget = _config.FindTargetByName(Of MemoryTarget)(TARGET_MEMORY) - 'Return oTarget?.Logs.ToList() - Return New List(Of String) - End Get - End Property - - Public ReadOnly Property NLogConfig As LoggingConfiguration - Get - Return _config - End Get - End Property - -#End Region - - ''' - ''' Initializes a new LogConfig object with the options supplied as a LogOptions object - ''' - ''' - Public Sub New(Options As LogOptions) - MyClass.New(Options.LogPath, Options.CustomLogPath, Options.Suffix, Options.CompanyName, Options.ProductName, Options.FileKeepInterval) - End Sub - - ''' - ''' Initializes a new LogConfig object with a logpath and optinally a filename-suffix. - ''' - ''' The basepath to write logs to. Can be AppData, CurrentDirectory or CustomPath. - ''' If `logPath` is set to custom, this defines the custom logPath. - ''' If set to anything other than Nothing, extends the logfile name with this suffix. - ''' CompanyName is used to construct log-path in when LogPath is set to PathType:AppData - ''' ProductName is used to construct log-path in when LogPath is set to PathType:AppData - ''' Amount of days where files are kept and not deleted. - Public Sub New(LogPath As PathType, - Optional CustomLogPath As String = Nothing, - Optional Suffix As String = Nothing, - Optional CompanyName As String = Nothing, - Optional ProductName As String = Nothing, - Optional FileKeepRangeInDays As Integer = FILE_KEEP_RANGE) - - If LogPath = PathType.AppData And (ProductName Is Nothing Or CompanyName Is Nothing) Then - Throw New ArgumentException("Modules.Logging: PathType is AppData and either CompanyName or ProductName was not supplied!") - End If - - If LogPath = PathType.CurrentDirectory Then - Throw New ArgumentException("Modules.Logging: LogPath.CurrentDirectory is deprecated. Please use LogPath.CustomPath!") - End If - - If LogPath = PathType.AppData Then - Dim appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) - _basePath = Path.Combine(appDataDir, CompanyName, ProductName, FOLDER_NAME_LOG) - ElseIf LogPath = PathType.Temp Then - _basePath = _failSafePath - Else 'Custom Path - _basePath = CustomLogPath - End If - - ' If directory does not exist, try to create it! - If Not Directory.Exists(_basePath) Then - Try - Directory.CreateDirectory(_basePath) - Catch ex As Exception - ' If creation fails, use failSafe path - _basePath = _failSafePath - End Try - End If - - ' Try to create a file in `basePath` to check write permissions - Try - Dim fileAccessPath = Path.Combine(_basePath, FILE_NAME_ACCESS_TEST) - Using fs As FileStream = File.Create(fileAccessPath) - fs.WriteByte(0) - End Using - - File.Delete(fileAccessPath) - Catch ex As Exception - ' If creation fails, use failSafe path - _basePath = _failSafePath - End Try - - ' Set the suffix to the given string if it exists - Dim logFileSuffix As String = String.Empty - - If Suffix IsNot Nothing AndAlso Suffix.Count > 0 Then - logFileSuffix = $"-{Suffix}" - End If - - Dim oProductName As String = "Main" - - If ProductName IsNot Nothing Then - oProductName = ProductName - End If - - ' Create config object and initalize it - _config = GetConfig(oProductName, logFileSuffix) - - ' Save config - LogFactory = New LogFactory With { - .Configuration = _config - } - - ' Save log paths for files/directory - LogDirectory = _basePath - LogFile = GetCurrentLogFilePath() - - Dim oLogger = GetLogger() - oLogger.Info("Logging started for [{0}{1}] in [{2}]", oProductName, logFileSuffix, LogFile) - oLogger.Info("Logging Version [{0}]", Assembly.GetExecutingAssembly().GetName().Version) - - ' Clear old Logfiles as defined in `FileKeepInterval` - ClearOldLogfiles(FileKeepRangeInDays) - End Sub - - ''' - ''' Clears old LogFiles from the configured logpath for compliance with the GDPR - ''' - ''' Days in which logfiles should be kept. All files older than `Now - FileKeepInterval` will be deleted. - ''' True, if files were deleted as expected or no files were deleted. Otherwise false. - Private Function ClearOldLogfiles(FileKeepRange As Integer) As Boolean - Dim oClassName As String = GetClassFullName() - Dim oLogger As Logger = GetLogger(oClassName) - - Try - Dim oContinueOnError = True - Dim oUnableToDeleteCounter = 0 - Dim oDirectory As New DirectoryInfo(LogDirectory) - Dim oDateLimit As Date = Date.Now.AddDays(-FileKeepRange) - Dim oFiles As List(Of FileInfo) = oDirectory. - EnumerateFiles(). - Where(Function(oFileInfo As FileInfo) oFileInfo.Extension = ".log" And oFileInfo.LastWriteTime < oDateLimit). - ToList() - - If oFiles.Count = 0 Then - oLogger.Info("No logfiles were marked for deletion in the range [last {0} days].", FileKeepRange) - Return True - End If - - oLogger.Info("Deleting [{0}] old logfiles that are marked for deletion in the range [last {1} days].", oFiles.Count, FileKeepRange) - - For Each oFile As FileInfo In oFiles - Try - oFile.Delete() - Catch ex As Exception - oUnableToDeleteCounter += 1 - oLogger.Warn("File {0} could not be deleted!") - End Try - Next - - If oUnableToDeleteCounter > 0 Then - oLogger.Info("Delete old logfiles partially. {0} files could not be deleted.", oUnableToDeleteCounter) - Else - oLogger.Info("Deleted [{0}] old logfiles.", oFiles.Count) - End If - - Return True - Catch ex As Exception - oLogger.Error(ex) - - Return False - End Try - End Function - - ''' - ''' Returns the Logger for the calling class - ''' - ''' An object of Logging.Logger - - Public Function GetLogger() As Logger - Dim oClassName As String = GetClassFullName() - Return GetLogger(oClassName, String.Empty) - End Function - - ''' - ''' Returns the Logger for the specified classname - ''' - ''' An object of Logging.Logger - - Public Function GetLogger(ClassName As String) As Logger - Return GetLogger(ClassName, String.Empty) - End Function - - ''' - ''' Returns the Logger for the specified module using event-properties - ''' - ''' - ''' https://github.com/NLog/NLog/wiki/EventProperties-Layout-Renderer - ''' https://stackoverflow.com/questions/31337030/separate-log-file-for-specific-class-instance-using-nlog/32065824#32065824 - ''' - ''' An object of Logging.Logger - - Public Function GetLoggerFor(ModuleName As String) As Logger - Dim oClassName As String = GetClassFullName() - Return GetLogger(oClassName, ModuleName) - End Function - - ''' - ''' Returns the Logger for a class specified by `ClassName` - ''' - ''' The name of the class the logger belongs to - ''' An object of Logging.Logger - Public Function GetLogger(ClassName As String, ModuleName As String) As Logger - Dim oLogger = LogFactory.GetLogger(Of Logger)(ClassName) - - If ModuleName IsNot Nothing AndAlso ModuleName.Length > 0 Then - Return oLogger.WithProperty("ModuleName", $"-{ModuleName}") - End If - - Return oLogger - End Function - - ''' - ''' Clears the internal log - ''' - Public Sub ClearLogs() - 'Dim oTarget = _config.FindTargetByName(Of MemoryTarget)(TARGET_MEMORY) - 'oTarget?.Logs.Clear() - End Sub - - ''' - ''' Gets the fully qualified name of the class invoking the calling method, - ''' including the namespace but Not the assembly. - ''' - ''' The fully qualified class name - ''' This method is very resource-intensive! - - Public Shared Function GetClassFullName(Optional IncludeMethodNames As Boolean = False, Optional Parts As Integer = 0) As String - Dim oFramesToSkip As Integer = 2 - Dim oClassName As String = String.Empty - Dim oStackTrace = Environment.StackTrace - Dim oStackTraceLines = oStackTrace.Replace(vbCr, "").Split({vbLf}, StringSplitOptions.RemoveEmptyEntries) - - For i As Integer = 0 To oStackTraceLines.Length - 1 - Dim oCallingClassAndMethod = oStackTraceLines(i).Split({" ", "<>", "(", ")"}, StringSplitOptions.RemoveEmptyEntries)(1) - Dim oMethodStartIndex As Integer = oCallingClassAndMethod.LastIndexOf(".", StringComparison.Ordinal) - - If oMethodStartIndex > 0 Then - If IncludeMethodNames Then - oMethodStartIndex = oCallingClassAndMethod.Count - End If - - Dim oCallingClass = oCallingClassAndMethod.Substring(0, oMethodStartIndex) - oClassName = oCallingClass.TrimEnd("."c) - - If Not oClassName.StartsWith("System.Environment") AndAlso oFramesToSkip <> 0 Then - i += oFramesToSkip - 1 - oFramesToSkip = 0 - Continue For - End If - - If Not oClassName.StartsWith("System.") Then Exit For - End If - Next - - If Parts > 0 Then - Dim oParts = oClassName. - Split("."). - Reverse(). - Take(Parts). - Reverse() - - oClassName = String.Join(".", oParts) - End If - - Return oClassName - End Function - - ''' - ''' Returns the initial log configuration - ''' - ''' The chosen productname - ''' The chosen suffix - ''' A NLog.LoggingConfiguration object - Private Function GetConfig(productName As String, logFileSuffix As String) As LoggingConfiguration - _config = New LoggingConfiguration() - _config.Variables("product") = productName - _config.Variables("suffix") = logFileSuffix - - ' Add default targets - _config.AddTarget(TARGET_ERROR_EX, GetErrorExceptionLogTarget(_basePath)) - _config.AddTarget(TARGET_ERROR, GetErrorLogTarget(_basePath)) - _config.AddTarget(TARGET_DEFAULT, GetDefaultLogTarget(_basePath)) - _config.AddTarget(TARGET_DEBUG, GetDebugLogTarget(_basePath)) - _config.AddTarget(TARGET_TRACE, GetTraceLogTarget(_basePath)) - '_config.AddTarget(TARGET_MEMORY, GetMemoryDebugTarget()) - - ' Add default rules - AddDefaultRules(_config) - - Return _config - End Function - - ''' - ''' Adds the default rules - ''' - ''' A NLog.LoggingConfiguration object - Private Sub AddDefaultRules(ByRef config As LoggingConfiguration) - config.AddRuleForOneLevel(LogLevel.Error, TARGET_ERROR_EX) - config.AddRuleForOneLevel(LogLevel.Fatal, TARGET_ERROR_EX) - config.AddRuleForOneLevel(LogLevel.Warn, TARGET_DEFAULT) - config.AddRuleForOneLevel(LogLevel.Info, TARGET_DEFAULT) - 'config.AddRuleForAllLevels(TARGET_MEMORY) - End Sub - - ''' - ''' Returns the full path of the current default log file. - ''' - ''' Full path of the current default log file - Private Function GetCurrentLogFilePath() - Dim logEventInfo As New LogEventInfo() With {.TimeStamp = Date.Now} - Dim target As FileTarget = _config.FindTargetByName(TARGET_DEFAULT) - Dim fileName As String = target.FileName.Render(logEventInfo) - - Return fileName - End Function - - ''' - ''' Reconfigures and re-adds all loggers, optionally adding the debug rule. - ''' - ''' Adds the Debug rule if true. - ''' Adds the Trace rule if true. - Private Sub ReloadConfig(Optional Debug As Boolean = False, Optional Trace As Boolean = False) - ' Clear Logging Rules - _config.LoggingRules.Clear() - - ' Add default rules - AddDefaultRules(_config) - - ' Add debug rule, if configured - If Debug = True Then - _config.AddRule(LogLevel.Debug, LogLevel.Error, TARGET_DEBUG) - End If - - If Trace = True Then - _config.AddRule(LogLevel.Trace, LogLevel.Error, TARGET_TRACE) - End If - - ' Reload all running loggers - LogFactory.ReconfigExistingLoggers() - End Sub - -#Region "Log Targets" - Private Function GetDefaultLogTarget(basePath As String) As FileTarget - Dim defaultLog As New FileTarget() With { - .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_DEFAULT), - .Name = TARGET_DEFAULT, - .Layout = LOG_FORMAT_DEFAULT, - .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEFAULT, - .ArchiveEvery = ARCHIVE_EVERY, - .KeepFileOpen = KEEP_FILES_OPEN, - .Encoding = Text.Encoding.Unicode - } - - Return defaultLog - End Function - Private Function GetErrorExceptionLogTarget(basePath As String) As FileTarget - Dim errorLogWithExceptions As New FileTarget() With { - .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_ERROR), - .Name = TARGET_ERROR_EX, - .Layout = LOG_FORMAT_ERROR, - .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEFAULT, - .ArchiveEvery = ARCHIVE_EVERY, - .KeepFileOpen = KEEP_FILES_OPEN, - .Encoding = Text.Encoding.Unicode - } - - Return errorLogWithExceptions - End Function - - Private Function GetErrorLogTarget(basePath As String) As FileTarget - Dim errorLog As New FileTarget() With { - .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_ERROR), - .Name = TARGET_ERROR, - .Layout = LOG_FORMAT_DEFAULT, - .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEFAULT, - .ArchiveEvery = ARCHIVE_EVERY, - .KeepFileOpen = KEEP_FILES_OPEN, - .Encoding = Text.Encoding.Unicode - } - - Return errorLog - End Function - - Private Function GetDebugLogTarget(basePath As String) As FileTarget - Dim debugLog As New FileTarget() With { - .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_DEBUG), - .Name = TARGET_DEBUG, - .Layout = LOG_FORMAT_DEBUG, - .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEBUG_DETAIL, - .ArchiveEvery = ARCHIVE_EVERY, - .KeepFileOpen = KEEP_FILES_OPEN_DEBUG, - .OpenFileCacheTimeout = OPEN_FILE_CACHE_TIMEOUT, - .AutoFlush = AUTO_FLUSH, - .OpenFileFlushTimeout = OPEN_FILE_FLUSH_TIMEOUT, - .Encoding = Text.Encoding.Unicode - } - - Return debugLog - End Function - - Private Function GetTraceLogTarget(basePath As String) As FileTarget - Dim debugLog As New FileTarget() With { - .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_TRACE), - .Name = TARGET_DEBUG, - .Layout = LOG_FORMAT_DEBUG, - .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEBUG_DETAIL, - .ArchiveEvery = ARCHIVE_EVERY, - .KeepFileOpen = KEEP_FILES_OPEN_DEBUG, - .OpenFileCacheTimeout = OPEN_FILE_CACHE_TIMEOUT, - .AutoFlush = AUTO_FLUSH, - .OpenFileFlushTimeout = OPEN_FILE_FLUSH_TIMEOUT, - .Encoding = Text.Encoding.Unicode - } - - Return debugLog - End Function - - 'Private Function GetMemoryDebugTarget() As MemoryTarget - ' Dim memoryLog As New MemoryTarget() With { - ' .Layout = LOG_FORMAT_DEBUG, - ' .Name = TARGET_MEMORY, - ' .OptimizeBufferReuse = True, - ' .MaxLogsCount = MAX_MEMORY_LOG_COUNT - ' } - - ' Return memoryLog - 'End Function -#End Region -End Class diff --git a/Modules.Logging/LogOptions.vb b/Modules.Logging/LogOptions.vb deleted file mode 100644 index 98c42933..00000000 --- a/Modules.Logging/LogOptions.vb +++ /dev/null @@ -1,10 +0,0 @@ -Imports DigitalData.Modules.Logging.LogConfig - -Public Class LogOptions - Property LogPath As PathType - Property CustomLogPath As String = Nothing - Property Suffix As String = Nothing - Property CompanyName As String = Nothing - Property ProductName As String = Nothing - Property FileKeepInterval As Integer = 0 -End Class diff --git a/Modules.Logging/Logger.vb b/Modules.Logging/Logger.vb deleted file mode 100644 index 4337bb2f..00000000 --- a/Modules.Logging/Logger.vb +++ /dev/null @@ -1,27 +0,0 @@ -Imports NLog - -Public Class Logger - Inherits NLog.Logger - - - Public Sub NewBlock(blockId As String) - Dim message As String = $"-----> Start of Block {blockId}" - Dim logEventInfo As New LogEventInfo(LogLevel.Info, Name, message) - Dim logEventDebug As New LogEventInfo(LogLevel.Debug, Name, message) - Dim WrapperType As Type = GetType(Logger) - - Log(WrapperType, logEventDebug) - Log(WrapperType, logEventInfo) - End Sub - - - Public Sub EndBlock() - Dim message As String = $"<----- End of Block" - Dim logEventInfo As New LogEventInfo(LogLevel.Info, Name, message) - Dim logEventDebug As New LogEventInfo(LogLevel.Debug, Name, message) - Dim WrapperType As Type = GetType(Logger) - - Log(WrapperType, logEventDebug) - Log(WrapperType, logEventInfo) - End Sub -End Class diff --git a/Modules.Logging/Logging.vbproj b/Modules.Logging/Logging.vbproj deleted file mode 100644 index a1198559..00000000 --- a/Modules.Logging/Logging.vbproj +++ /dev/null @@ -1,116 +0,0 @@ - - - - - Debug - AnyCPU - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Library - DigitalData.Modules.Logging - DigitalData.Modules.Logging - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Logging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Logging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.11\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - \ No newline at end of file diff --git a/Modules.Logging/My Project/Application.Designer.vb b/Modules.Logging/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Logging/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Logging/My Project/Application.myapp b/Modules.Logging/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Logging/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Logging/My Project/AssemblyInfo.vb b/Modules.Logging/My Project/AssemblyInfo.vb deleted file mode 100644 index 8cdf0f5e..00000000 --- a/Modules.Logging/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Logging/My Project/Resources.Designer.vb b/Modules.Logging/My Project/Resources.Designer.vb deleted file mode 100644 index 200685a0..00000000 --- a/Modules.Logging/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Logging.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Logging/My Project/Resources.resx b/Modules.Logging/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Logging/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Logging/My Project/Settings.Designer.vb b/Modules.Logging/My Project/Settings.Designer.vb deleted file mode 100644 index 4fcffacd..00000000 --- a/Modules.Logging/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Logging.My.MySettings - Get - Return Global.DigitalData.Modules.Logging.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Logging/My Project/Settings.settings b/Modules.Logging/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Logging/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Logging/TraceListener.vb b/Modules.Logging/TraceListener.vb deleted file mode 100644 index 3cd5c7d3..00000000 --- a/Modules.Logging/TraceListener.vb +++ /dev/null @@ -1,249 +0,0 @@ -Imports System -Imports System.Configuration -Imports System.Diagnostics -Imports System.Globalization -Imports System.IO -Imports System.Security.Permissions -Imports System.Text.RegularExpressions - - -Public Class RollingXmlWriterTraceListener - Inherits XmlWriterTraceListener - - Private Shared ReadOnly LogFileNumberCaptureName As String = "LogFileNumber" - Private attributesLoaded As Boolean = False - Private logfileSuffixExpression As Regex = New Regex("_(?<" & LogFileNumberCaptureName & ">\d*)\.", RegexOptions.Compiled) - Private currentFileSuffixNumber As Integer = 0 - Private _maxTraceFileSize As Long = 128 * 1024 * 1024 - Private basicTraceFileName As String = String.Empty - - Public Sub New(ByVal filename As String) - MyBase.New(filename) - Me.basicTraceFileName = filename - Me.currentFileSuffixNumber = Me.GetTraceFileNumber() - Me.StartNewTraceFile() - End Sub - - Public Sub New(ByVal filename As String, ByVal name As String) - MyBase.New(filename, name) - Me.basicTraceFileName = filename - Me.StartNewTraceFile() - End Sub - - Public ReadOnly Property CurrentTraceFileName As String - Get - Return Path.Combine(Path.GetDirectoryName(Me.basicTraceFileName), Path.GetFileNameWithoutExtension(Me.basicTraceFileName) & "_" & Me.currentFileSuffixNumber.ToString().PadLeft(4, "0"c) & Path.GetExtension(Me.basicTraceFileName)) - End Get - End Property - - Public Property MaxTraceFileSize As Long - Get - - If Not Me.attributesLoaded Then - Me.LoadAttributes() - End If - - Return Me._maxTraceFileSize - End Get - Set(ByVal value As Long) - - If Not Me.attributesLoaded Then - Me.LoadAttributes() - End If - - Me._maxTraceFileSize = value - End Set - End Property - - Protected ReadOnly Property IsRollingConditionReached As Boolean - Get - Dim streamWriter As StreamWriter = CType(Me.Writer, StreamWriter) - Dim fileStream As FileStream = CType(streamWriter.BaseStream, FileStream) - Dim traceFileName As String = fileStream.Name - Dim traceFileInfo As FileInfo = New FileInfo(traceFileName) - - If traceFileInfo.Length > Me._maxTraceFileSize Then - Return True - Else - Return False - End If - End Get - End Property - - Public Overrides Sub Fail(ByVal message As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.Fail(message) - End Sub - - Public Overrides Sub Fail(ByVal message As String, ByVal detailMessage As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.Fail(message, detailMessage) - End Sub - - Public Overrides Sub TraceData(ByVal eventCache As TraceEventCache, ByVal source As String, ByVal eventType As TraceEventType, ByVal id As Integer, ByVal data As Object) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.TraceData(eventCache, source, eventType, id, data) - End Sub - - Public Overrides Sub TraceData(ByVal eventCache As TraceEventCache, ByVal source As String, ByVal eventType As TraceEventType, ByVal id As Integer, ParamArray data As Object()) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.TraceData(eventCache, source, eventType, id, data) - End Sub - - Public Overrides Sub TraceEvent(ByVal eventCache As TraceEventCache, ByVal source As String, ByVal eventType As TraceEventType, ByVal id As Integer) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.TraceEvent(eventCache, source, eventType, id) - End Sub - - Public Overrides Sub TraceEvent(ByVal eventCache As TraceEventCache, ByVal source As String, ByVal eventType As TraceEventType, ByVal id As Integer, ByVal message As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.TraceEvent(eventCache, source, eventType, id, message) - End Sub - - Public Overrides Sub TraceEvent(ByVal eventCache As TraceEventCache, ByVal source As String, ByVal eventType As TraceEventType, ByVal id As Integer, ByVal format As String, ParamArray args As Object()) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.TraceEvent(eventCache, source, eventType, id, format, args) - End Sub - - Public Overrides Sub TraceTransfer(ByVal eventCache As TraceEventCache, ByVal source As String, ByVal id As Integer, ByVal message As String, ByVal relatedActivityId As Guid) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.TraceTransfer(eventCache, source, id, message, relatedActivityId) - End Sub - - Public Overrides Sub Write(ByVal o As Object) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.Write(o) - End Sub - - Public Overrides Sub Write(ByVal o As Object, ByVal category As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.Write(o, category) - End Sub - - Public Overrides Sub Write(ByVal message As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.Write(message) - End Sub - - Public Overrides Sub Write(ByVal message As String, ByVal category As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.Write(message, category) - End Sub - - Public Overrides Sub WriteLine(ByVal o As Object) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.WriteLine(o) - End Sub - - Public Overrides Sub WriteLine(ByVal o As Object, ByVal category As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.WriteLine(o, category) - End Sub - - Public Overrides Sub WriteLine(ByVal message As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.WriteLine(message) - End Sub - - Public Overrides Sub WriteLine(ByVal message As String, ByVal category As String) - If Me.IsRollingConditionReached Then - Me.StartNewTraceFile() - End If - - MyBase.WriteLine(message, category) - End Sub - - Protected Overrides Function GetSupportedAttributes() As String() - Return New String(0) {"MaxTraceFileSize"} - End Function - - Private Sub StartNewTraceFile() - Dim streamWriter As StreamWriter = CType(Me.Writer, StreamWriter) - Dim fileStream As FileStream = CType(streamWriter.BaseStream, FileStream) - fileStream.Close() - Me.currentFileSuffixNumber += 1 - Me.Writer = New StreamWriter(New FileStream(Me.CurrentTraceFileName, FileMode.Create)) - End Sub - - Private Function GetTraceFileNumber() As Integer - Dim directoryName As String = Path.GetDirectoryName(Me.basicTraceFileName) - Dim basicTraceFileNameWithoutExtension As String = Path.GetFileNameWithoutExtension(Me.basicTraceFileName) - Dim basicTraceFileNameExtension As String = Path.GetExtension(Me.basicTraceFileName) - Dim existingLogFiles As String() = Directory.GetFiles(directoryName, basicTraceFileNameWithoutExtension & "*") - Dim highestNumber As Integer = -1 - - For Each existingLogFile As String In existingLogFiles - Dim match As Match = Me.logfileSuffixExpression.Match(existingLogFile) - - If match IsNot Nothing Then - Dim tempInt As Integer - - If match.Groups.Count >= 1 AndAlso Integer.TryParse(match.Groups(LogFileNumberCaptureName).Value, tempInt) AndAlso tempInt >= highestNumber Then - highestNumber = tempInt - End If - End If - Next - - Return highestNumber - End Function - - Private Sub LoadAttributes() - If Attributes.ContainsKey("MaxTraceFileSize") AndAlso Not String.IsNullOrEmpty(Attributes("MaxTraceFileSize")) Then - Dim tempLong As Long = 0 - Dim attributeValue As String = Attributes("MaxTraceFileSize") - - If Long.TryParse(attributeValue, tempLong) Then - Me._maxTraceFileSize = Long.Parse(Attributes("MaxTraceFileSize"), NumberFormatInfo.InvariantInfo) - Else - Throw New ConfigurationErrorsException(String.Format("Trace listener {0} has an unparseable configuration attribute ""MaxTraceFileSize"". The value ""{1}"" cannot be parsed to a long value.", Me.Name, attributeValue)) - End If - End If - - Me.attributesLoaded = True - End Sub -End Class diff --git a/Modules.Logging/packages.config b/Modules.Logging/packages.config deleted file mode 100644 index 63a721ac..00000000 --- a/Modules.Logging/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.Messaging/Email.vb b/Modules.Messaging/Email.vb deleted file mode 100644 index 85e3b606..00000000 --- a/Modules.Messaging/Email.vb +++ /dev/null @@ -1,559 +0,0 @@ -Imports Independentsoft.Email -Imports Independentsoft.Email.Pop3 -Imports Independentsoft.Email.Mime -Imports Independentsoft.Email.Imap -Imports System.Net.Mail -Imports System.Net -Imports System.Reflection -Imports System.IO - -Public Class Email - Private ReadOnly _logger As Logging.Logger - Private ReadOnly _logConfig As Logging.LogConfig - Public Err_Message As String - Public _msg_Send As Boolean - - Public Sub New(LogConfig As Logging.LogConfig) - _logger = LogConfig.GetLogger() - _logConfig = LogConfig - End Sub - - '''' - '''' Tests connection to a given IMAP Server by connecting and doing a simple message query. - '''' - '''' IP-Address or Domainname of Server - '''' IMAP-Port - '''' IMAP-Username - '''' IMAP-Password - '''' The folder to fetch messages from. Defaults to `Inbox` - '''' True if connection and query were successful. False otherwise. - 'Public Function TestIMAPLogin(Server As String, Port As Integer, Username As String, Password As String, Optional Folder As String = "Inbox") As Boolean - ' _logger.Debug("Testing Login to Server {0}:{1} with user {2}", Server, Port, Username) - - ' Try - ' _logger.Debug("Connecting...") - ' Using oClient As New S22.Imap.ImapClient(Server, Port, Username, Password, S22.Imap.AuthMethod.Login, True) - ' If Not oClient.Authed Then - ' _logger.Warn("Connected to server but authentication failed.") - ' Return False - ' End If - ' _logger.Debug("Connection successful") - - ' _logger.Debug("Fetching MessageIds..") - ' Dim oMessageIds As IEnumerable(Of UInteger) = oClient.Search(S22.Imap.SearchCondition.Unseen, Folder) - - ' _logger.Debug("Found {0} messages", oMessageIds.Count) - ' _logger.Debug("Fetching messages...") - - ' Dim oMessages As IEnumerable(Of MailMessage) = oClient.GetMessages(oMessageIds, False, Folder) - ' _logger.Debug("Messages fetched") - - ' oClient.Dispose() - - ' Return True - ' End Using - ' Catch ex As Exception - ' _logger.Error(ex) - ' Return False - ' End Try - 'End Function - - '''' - '''' Connects to an IMAP Server with the given credentials and - '''' fetches emails from the given folder. - '''' Results can be filtered with `SearchCondition` - '''' - '''' IP-Address or Domainname of Server - '''' IMAP-Port - '''' IMAP-Username - '''' IMAP-Password - '''' The folder to fetch messages from - '''' Filter the search command. Defaults to `All` - '''' A list of Independentsoft.Email.Mime.Message objects - 'Public Function FetchIMAPMessages(Server As String, Port As Integer, Username As String, Password As String, Folder As String) As List(Of Message) ', Optional SearchCondition As S22.Imap.SearchCondition = S22.Imap.SearchCondition.All - ' Dim oMessages As New List(Of Message) - - ' _logger.Debug("Connecting to Server {0}:{1} with user {2}", Server, Port, Username) - - ' Try - ' _logger.Debug("Connecting...") - ' Using oClient As New S22.Imap.ImapClient(Server, Port, Username, Password, S22.Imap.AuthMethod.Login, True) - ' If Not oClient.Authed Then - ' _logger.Warn("Connected to server but authentication failed.") - ' Return Nothing - ' End If - ' _logger.Debug("Connection successful") - - ' _logger.Debug("Fetching MessageIds..") - ' Dim oMessageIds As IEnumerable(Of UInteger) = oClient.Search(S22.Imap.SearchCondition.Unseen, Folder) - - ' _logger.Debug("Found {0} messages", oMessageIds.Count) - ' _logger.Debug("Fetching messages...") - - ' ' Since this needs to return a list of IndependentSoft Message objects, - ' ' we 'convert' the .NET MailMessage objects that are fetched from the server - ' ' by writing them temporarily to disk as an eml file and then reading them back into a Message object. - ' ' This approach uses an unintended use of internal .NET APIs and may break in the future. - ' For Each oMessageId As UInteger In oMessageIds - ' Dim oMessage = oClient.GetMessage(oMessageId, False, Folder) - ' Dim oTempPath = Path.GetTempFileName() - ' Dim oResult = WriteMessageToFile(oMessage, oTempPath) - - ' Dim oMsg As New Message(oTempPath) - ' oMessages.Add(oMsg) - - ' Try - ' File.Delete(oTempPath) - ' Catch ex As Exception - ' _logger.Error(ex) - ' _logger.Warn("Temp file could not be deleted") - ' End Try - ' Next - - ' _logger.Debug("{0} Messages fetched", oMessages.Count) - ' End Using - - ' Return oMessages - ' Catch ex As Exception - ' _logger.Error(ex) - ' Return Nothing - ' End Try - 'End Function - - ''' - ''' Uses a private API from MailWriter to write a MailMessage to disk. - ''' May break in future versions of .NET - ''' - Public Function WriteMessageToFile(Message As MailMessage, Filename As String) As Boolean - Dim oAssembly As Assembly = GetType(System.Net.Mail.SmtpClient).Assembly - Dim oMailWriterType As Type = oAssembly.[GetType]("System.Net.Mail.MailWriter") - - Try - Using oStream As New FileStream(Filename, FileMode.Create) - Dim oMailWriterConstructor As ConstructorInfo = oMailWriterType.GetConstructor( - BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, New Type() {GetType(Stream)}, Nothing - ) - Dim oMailWriter As Object = oMailWriterConstructor.Invoke(New Object() {oStream}) - Dim sendMethod As MethodInfo = GetType(MailMessage).GetMethod("Send", BindingFlags.Instance Or BindingFlags.NonPublic) - sendMethod.Invoke(Message, BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, {oMailWriter, True, True}, Nothing) - End Using - - Return True - Catch ex As Exception - Return Nothing - End Try - End Function - - 'Public Function IMAP_COLLECT(INBOXNAME As String, MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String) - ' Try - ' Dim oMAIL_LIST As New ArrayList() - ' _logger.Info(String.Format("Working on IMAP_COLLECT...")) - ' Dim oClient As New ImapClient(MYMAIL_SERVER, MYMAIL_PORT) - ' oClient.Connect() - ' oClient.Login(MYMAIL_USER, MYMAIL_USER_PW) - ' oClient.SelectFolder("Inbox") - ' Dim oEnvelopes As Envelope() = oClient.ListMessages() - ' For i As Integer = 0 To oEnvelopes.Length - 1 - ' If Not IsNothing(oEnvelopes(i).Subject) Then - ' 'If envelopes(i).Subject.ToString.ToUpper.Contains("[PROCESSMANAGER]") Or envelopes(i).Subject.ToString.ToUpper.Contains("[ADDI]") Then - ' _logger.Info($"Working on email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}") - ' Dim message As Mime.Message = oClient.GetMessage(oEnvelopes(i).UniqueID) - ' If Not IsNothing(message) Then - ' oMAIL_LIST.Add(message) - ' End If - ' 'End If - ' End If - ' Next - - ' oClient.Disconnect() - ' _logger.Debug("IMAP_COLLECT finished!") - ' Return oMAIL_LIST - - ' Catch ex As Exception - ' _logger.Error(ex, "Unexpected Error in IMAP COLLECT:") - ' Return Nothing - ' End Try - 'End Function - 'Public Function TEST_IMAP_COLLECT(INBOXNAME As String, MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String) - ' Try - - ' _logger.Info(String.Format("Working on TEST_IMAP_COLLECT.....")) - ' Dim oClient As New ImapClient(MYMAIL_SERVER, MYMAIL_PORT) - ' oClient.Connect() - ' oClient.Login(MYMAIL_USER, MYMAIL_USER_PW) - ' oClient.SelectFolder(INBOXNAME) - ' Dim oEnvelopes As Envelope() = oClient.ListMessages() - - ' For i As Integer = 0 To oEnvelopes.Length - 1 - ' If Not IsNothing(oEnvelopes(i).Subject) Then - ' 'If envelopes(i).Subject.ToString.ToUpper.Contains("[PROCESSMANAGER]") Or envelopes(i).Subject.ToString.ToUpper.Contains("[ADDI]") Then - ' MsgBox($"Working on email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}") - ' Dim message As Mime.Message = oClient.GetMessage(oEnvelopes(i).UniqueID) - ' End If - ' Next - ' oClient.Disconnect() - ' _logger.Info("TEST_IMAP_COLLECT finished!") - ' Return True - ' Catch ex As Exception - ' _logger.Error(ex, "Unexpected Error in TEST_IMAP_COLLECT:") - ' Return False - ' End Try - 'End Function - 'Public Function POP3_COLLECT(MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String) - ' Try - ' Dim oMAIL_LIST As New ArrayList() - ' _logger.Debug(String.Format("Working on POP3_COLLECT.....")) - ' Dim oClient As New Pop3Client(MYMAIL_SERVER, MYMAIL_PORT) - - ' oClient.ValidateRemoteCertificate = False - ' oClient.Connect() - ' _logger.Debug(String.Format("..connected!")) - ' oClient.Login(MYMAIL_USER, MYMAIL_USER_PW) - - ' Dim oMessageInfo As MessageInfo() = oClient.List() - - ' For i As Integer = 0 To oMessageInfo.Length - 1 - ' Dim message As Message = oClient.GetMessage(oMessageInfo(i).Index) - ' oMAIL_LIST.Add(message) - ' Try - ' _logger.Debug(String.Format("Message [{0}] added", message.Subject)) - ' Catch ex As Exception - - ' End Try - ' Next - - ' oClient.Disconnect() - ' _logger.Debug(String.Format(" POP3_COLLECT finished!")) - ' Return oMAIL_LIST - ' Catch ex As Exception - ' _logger.Error(ex) - - ' Return Nothing - ' End Try - 'End Function - 'Public Function TEST_POP3_COLLECT(MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String) As Boolean - ' Try - ' _logger.Debug(String.Format("Working on TEST_POP3_COLLECT...")) - ' Dim oClient As New Pop3Client(MYMAIL_SERVER, MYMAIL_PORT) - - ' oClient.ValidateRemoteCertificate = False - ' oClient.Connect() - ' _logger.Debug(String.Format("..connected!")) - ' oClient.Login(MYMAIL_USER, MYMAIL_USER_PW) - - ' Dim messageInfo As MessageInfo() = oClient.List() - - ' For i As Integer = 0 To messageInfo.Length - 1 - ' Dim message As Message = oClient.GetMessage(messageInfo(i).Index) - ' MsgBox(String.Format("Message [{0}] added", message.Subject)) - - ' Next - - ' oClient.Disconnect() - ' MsgBox(String.Format("TEST_POP3_COLLECT finished!")) - ' Return True - ' Catch ex As Exception - ' _logger.Error(ex) - - ' Return False - ' End Try - 'End Function - Public Function NewEmail(mailto As String, mailSubject As String, mailBody As String, - mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String, - AUTH_TYPE As String, SENDER_INSTANCE As String, Optional attachmentString As String = "", Optional Test As Boolean = False) - Dim myClient As Net.Mail.SmtpClient - Dim myMesssage As New MailMessage - - Try - Dim oError As Boolean = False - Dim oReceipiants As String() - If mailto.Contains(";") Then - oReceipiants = mailto.Split(";") - Else - ReDim Preserve oReceipiants(0) - oReceipiants(0) = mailto - End If - For Each oMailReceipiant As String In oReceipiants - _logger.Debug($"oMailReceipiant [{oMailReceipiant}]") - _logger.Debug($"mailsmtp [{mailsmtp}]") - - Try - myClient = New Net.Mail.SmtpClient(mailsmtp, mailport) - Catch ex As Exception - _logger.Warn($"Could not create SMTP-Client: [{ex.Message}]") - Return False - End Try - myClient.DeliveryMethod = SmtpDeliveryMethod.Network - - myClient.Port = mailport - _logger.Debug($"mailport [{mailport}]") - If AUTH_TYPE = "SSL" Then - _logger.Debug("SSL = true") - myClient.EnableSsl = True - Else - _logger.Debug("SSL = false") - myClient.EnableSsl = False - End If - _logger.Debug($"mailUser [{mailUser}]") - myClient.Credentials = New NetworkCredential(mailUser, mailPW) - myClient.UseDefaultCredentials = False - - If Test = True Then - myMesssage.Body = $"This is the body (text will be replaced within profile)!
mailsmtp: {mailsmtp}
mailport: {mailport}
mailUser: {mailUser}
mailPW: XXXX
AUTH_TYPE: {AUTH_TYPE}" - Else - myMesssage.Body = mailBody - End If - _logger.Debug($"mailBody [{mailBody}]") - 'mymesssage.IsBodyHtml = True - Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(myMesssage.Body) - htmlView.ContentType = New System.Net.Mime.ContentType("text/html") - myMesssage.AlternateViews.Add(htmlView) - _logger.Debug($"attachmentString [{attachmentString}]") - If attachmentString <> "" Then - _logger.Info($"Attachment Path is: {attachmentString}") - Dim oAttachment As New System.Net.Mail.Attachment(attachmentString) - - 'If attment.ToLower.EndsWith("pdf") Then - ' oAttachment.ContentType = New Independentsoft.Email.Mime.ContentType("application", "pdf") - 'ElseIf attment.ToLower.EndsWith("jpg") Then - ' oAttachment.ContentType = New Independentsoft.Email.Mime.ContentType("application", "jpg") - 'ElseIf attment.ToLower.EndsWith("docx") Then - ' oAttachment.ContentType = New Independentsoft.Email.Mime.ContentType("application", "MS-word") - 'End If - myMesssage.Attachments.Add(oAttachment) - Else - _logger.Debug("No Attachment.") - End If - _logger.Debug($"mailfrom [{mailfrom}]") - - myMesssage.From = New MailAddress(mailfrom) - _logger.Debug($"mailSubject [{mailSubject}]") - myMesssage.Subject = mailSubject - myMesssage.To.Add(New MailAddress(oMailReceipiant)) - _logger.Debug($"Now Sending mail...") - myClient.Send(myMesssage) - _logger.Debug($"Mail has been sent!") - _logger.Info("Message to " & oMailReceipiant & " has been send.") - Next - If oError = False Then - Return True - Else - Return False - End If - - Catch ex As Exception - _logger.Error(ex) - Try - _logger.Info("Unexpected error in Sending smtp-Mail: ") - If Not IsNothing(myClient) Then - _logger.Info($"myClient.Host: {myClient.Host.ToString}") - _logger.Info($"myClient.Port: {myClient.Port.ToString}") - _logger.Info($"myClient.EnableSsl: {myClient.EnableSsl.ToString}") - - End If - If Not IsNothing(myMesssage) Then - _logger.Info($"myMesssage.Subject: {myMesssage.Subject.ToString}") - _logger.Info($"myMesssage.Body: {myMesssage.Body.ToString}") - _logger.Info($"myMesssage.From: {myMesssage.From.ToString}") - End If - Catch e1x As Exception - - End Try - Return False - End Try - - End Function - 'Public Function New_EmailISoft(ByVal mailSubject As String, ByVal mailBody As String, mailto As String, - ' from_mailaddress As String, from_name As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String, - ' AUTH_TYPE As String, SENDER_INSTANCE As String, Optional attment As String = "") - ' Try - ' Err_Message = "" - ' _msg_Send = False - ' ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 - ' _logger.Debug($"in Email_Send_Independentsoft..") - ' Dim empfaenger As String() - ' If mailto.Contains(";") Then - ' empfaenger = mailto.Split(";") - ' Else - ' ReDim Preserve empfaenger(0) - ' empfaenger(0) = mailto - ' End If - ' Dim _error As Boolean = False - ' 'Für jeden Empfänger eine Neue Mail erzeugen - ' For Each _mailempfaenger As String In empfaenger - ' _logger.Debug($"Working on email for {_mailempfaenger}..") - ' Try - ' Dim oMessage As New Message() - ' oMessage.From = New Mailbox(from_mailaddress, from_name) - - ' oMessage.[To].Add(New Mailbox(_mailempfaenger)) - ' oMessage.Subject = mailSubject - ' _logger.Debug($"Message created..") - ' Dim textBodyPart As New BodyPart() - ' textBodyPart.ContentType = New ContentType("text", "html", "utf-8") - ' textBodyPart.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable - ' textBodyPart.Body = mailBody - ' oMessage.BodyParts.Add(textBodyPart) - ' If attment <> String.Empty Then - ' If System.IO.File.Exists(attment) Then - ' Dim attachment1 As New Independentsoft.Email.Mime.Attachment(attment) - ' If attment.ToLower.EndsWith("pdf") Then - ' attachment1.ContentType = New ContentType("application", "pdf") - ' ElseIf attment.ToLower.EndsWith("jpg") Then - ' attachment1.ContentType = New ContentType("application", "jpg") - ' ElseIf attment.ToLower.EndsWith("docx") Then - ' attachment1.ContentType = New ContentType("application", "MS-word") - ' End If - ' oMessage.BodyParts.Add(attachment1) - ' Else - ' _logger.Warn($"Attachment {attment.ToString} is not existing!") - ' End If - ' End If - ' Dim client As Independentsoft.Email.Smtp.SmtpClient - ' Try - ' client = New Independentsoft.Email.Smtp.SmtpClient(mailsmtp, mailport) - ' Catch ex As Exception - ' _logger.Warn("clsEmail.Create Client: " & ex.Message) - ' _error = True - ' Continue For - ' End Try - ' Try - ' client.Connect() - ' Catch ex As Exception - ' _logger.Warn("clsEmail.Client.Connect1: " & ex.Message) - ' _logger.Debug("Error in ClientConnect - but still trying to send") - ' _error = True - ' ' Continue For - ' End Try - ' _logger.Debug("Connected to Client!") - ' If AUTH_TYPE = "SSL" Then - ' client.EnableSsl = True - ' 'client.ValidateRemoteCertificate = True - ' _logger.Debug("Authentification via SSL.") - ' ElseIf AUTH_TYPE = "TLS" Then - ' ' client.ValidateRemoteCertificate = False - ' client.StartTls() - ' client.EnableSsl = False - ' _logger.Debug("Authentification via TLS. SSL disabled") - ' Else - ' client.EnableSsl = False - ' _logger.Debug("Authentification NONE. SSL disabled") - ' End If - ' Try - - ' client.Connect() - ' Catch ex As Exception - ' _logger.Warn("clsEmail.Client.Connect: " & ex.Message) - ' Err_Message = "clsEmail.Client.Connect: " & ex.Message - ' _error = True - ' ' Continue For - ' End Try - ' Try - ' If mailsmtp.Contains("office365.com") Then - ' client.Login(mailUser, mailPW, AuthenticationType.None) - ' Else - ' client.Login(mailUser, mailPW) - ' End If - - ' _logger.Debug("Logged in!") - ' Catch ex As Exception - ' Try - ' If mailsmtp.Contains("office365.com") Then - ' client.Login(mailUser, mailPW, AuthenticationType.Login) - ' Else - ' client.Login(mailUser, mailPW, AuthenticationType.Anonymous) - ' End If - - ' Catch ex1 As Exception - ' Try - ' client.Login(mailUser, mailPW, AuthenticationType.Login) - ' Catch ex2 As Exception - ' _logger.Warn("clsEmail.Client.Login: " & ex.Message) - ' _error = True - ' client.Disconnect() - ' Continue For - ' End Try - ' End Try - ' End Try - ' Try - ' client.Send(oMessage) - ' _logger.Info("Message to " & _mailempfaenger & " has been send.") - ' _msg_Send = True - ' _error = False - ' Catch ex As Exception - ' _logger.Warn("clsEmail.Client.Send: " & ex.Message) - ' Err_Message = ex.Message - ' _error = True - ' client.Disconnect() - ' Continue For - ' End Try - ' client.Disconnect() - - ' Catch ex As Exception - ' Err_Message = ex.Message - ' If _msg_Send = True Then - ' _logger.Info($"Error Closing Connection [{ex.Message}]") - ' Else - ' _logger.Error(ex) - ' End If - ' _error = True - ' End Try - ' Next - - ' If _error = True Then - ' Return False - ' Else - ' Return True - ' End If - ' Catch ex As Exception - ' _logger.Error(ex) - ' Err_Message = ex.Message - ' Return False - ' End Try - 'End Function - 'Public Function DELETE_EMAIL(POLLTYPE As String, msgid As String, MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String) - ' Try - ' If POLLTYPE = "POP" Then - ' Dim oClient As New Pop3Client(MYMAIL_SERVER, MYMAIL_PORT) - - ' oClient.ValidateRemoteCertificate = False - ' oClient.Connect() - ' oClient.Login(MYMAIL_USER, MYMAIL_USER_PW) - - ' Dim oMessageInfo As MessageInfo() = oClient.List() - - ' For i As Integer = 0 To oMessageInfo.Length - 1 - ' Dim message As Message = oClient.GetMessage(oMessageInfo(i).Index) - ' If message.MessageID = msgid Then - ' oClient.Delete(oMessageInfo(i).Index) - ' _logger.Info(String.Format("Message [{0}] was deleted!", message.Subject)) - ' Exit For - ' End If - ' Next - ' oClient.Disconnect() - ' Return True - ' ElseIf POLLTYPE = "IMAP" Then - ' Dim oIMAPClient As New ImapClient(MYMAIL_SERVER, MYMAIL_PORT) - - ' oIMAPClient.ValidateRemoteCertificate = False - ' oIMAPClient.Connect() - ' oIMAPClient.Login(MYMAIL_USER, MYMAIL_USER_PW) - - ' oIMAPClient.SelectFolder("Inbox") - ' Dim envelopes As Envelope() = oIMAPClient.ListMessages() - ' For i As Integer = 0 To envelopes.Length - 1 - ' If envelopes(i).MessageID = msgid Then - ' oIMAPClient.Delete(envelopes(i).UniqueID) 'mark as deleted - ' End If - ' Next - ' oIMAPClient.Expunge() 'delete messages marked as deleted - ' oIMAPClient.Disconnect() - ' Return True - ' End If - ' Catch ex As Exception - ' _logger.Error(ex) - ' 'clsLogger.Add("Unexpected Error in DELETE_EMAIL: " & ex.Message) - ' Return False - ' End Try - 'End Function -End Class diff --git a/Modules.Messaging/Email2.vb b/Modules.Messaging/Email2.vb deleted file mode 100644 index c97aec66..00000000 --- a/Modules.Messaging/Email2.vb +++ /dev/null @@ -1,483 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Filesystem -Imports Limilabs.Mail -Imports Limilabs.Mail.MIME -Imports Limilabs.Mail.MSG -Imports Limilabs.Client.IMAP -Imports Limilabs.Client.SMTP -Imports Limilabs.Client - -Public Class Email2 - Private ReadOnly Logger As Logger - Private ReadOnly LoggerMail As Logger - Private ReadOnly LogConfig As LogConfig - Private ReadOnly FileEx As Filesystem.File - Private ReadOnly MailBuilder As New MailBuilder() - Private ReadOnly TempFiles As New List(Of String) - - Private DisableExcessiveLogging As Boolean = False - - Public Sub New(pLogConfig As LogConfig) - LogConfig = pLogConfig - Logger = pLogConfig.GetLogger() - LoggerMail = pLogConfig.GetLogger("Limilabs.Mail") - FileEx = New Filesystem.File(pLogConfig) - - ' Turn on internal Mail.dll logging - Limilabs.Mail.Log.Enabled = True - - AddHandler Limilabs.Mail.Log.WriteLine, AddressOf ProcessMailLog - End Sub - - Public Enum EmailSecurity - SSL - START_TLS - End Enum - - Private Sub ProcessMailLog(pMessage As String) - If DisableExcessiveLogging = False Then - LoggerMail.Debug(pMessage) - End If - End Sub - - Public Function New_SMTPConnection(pSMTP As Smtp, pServer As String, pUsername As String, pPassword As String, pSecurity As EmailSecurity, Optional pPort As Integer = 0) As Smtp - Try - Logger.Info("Connecting to SMTP server [{0}:{1}] with user [{2}]", pServer, pPort, pUsername) - - Dim oPort As Integer - If pPort = 0 Then - If pSecurity = EmailSecurity.SSL Then - oPort = Smtp.DefaultSSLPort - - Else - oPort = Smtp.DefaultPort - - End If - - Else - oPort = pPort - - End If - Logger.Debug("Using Port [{0}] for connection", oPort) - - If pSecurity = EmailSecurity.SSL Then - Logger.Debug("Using SSL/TLS as Security Option") - pSMTP.ConnectSSL(pServer, oPort) - Else - Logger.Debug("Using STARTTLS as Security Option") - pSMTP.Connect(pServer, oPort) - pSMTP.StartTLS() - End If - Logger.Debug("Connection to SMTP Server [{0}] established!", pServer) - - Logger.Debug("Logging in with user [{0}]", pUsername) - pSMTP.UseBestLogin(pUsername, pPassword) - - Return pSMTP - - Catch ex As Exception - Logger.Warn("Could not connect to server [{0}] with user [{1}]", pServer, pUsername) - Logger.Error(ex) - Return pSMTP - - End Try - End Function - - Public Function New_IMAPConnection(pServer As String, pUsername As String, pPassword As String, pSecurity As EmailSecurity, Optional pPort As Integer = 0) As Imap - Try - Logger.Info("Connecting to IMAP server [{0}:{1}] with user [{2}]", pServer, pPort, pUsername) - - Dim oIMAP As New Imap() - Dim oPort As Integer - If pPort = 0 Then - If pSecurity = EmailSecurity.SSL Then - oPort = Imap.DefaultSSLPort - - Else - oPort = Imap.DefaultPort - - End If - - Else - oPort = pPort - - End If - Logger.Debug("Using Port [{0}] for connection", oPort) - - If pSecurity = EmailSecurity.SSL Then - Logger.Debug("Using SSL/TLS as Security Option") - oIMAP.ConnectSSL(pServer, oPort) - Else - Logger.Debug("Using STARTTLS as Security Option") - oIMAP.Connect(pServer, oPort) - oIMAP.StartTLS() - End If - Logger.Debug("Connection to IMAP Server [{0}] established!", pServer) - - Logger.Debug("Logging in with user [{0}]", pUsername) - oIMAP.UseBestLogin(pUsername, pPassword) - - Return oIMAP - - Catch ex As Exception - Logger.Warn("Could not connect to server [{0}] with user [{1}]", pServer, pUsername) - Logger.Error(ex) - Throw ex - - End Try - End Function - - Public Function Test_IMAPLogin(pClient As Imap, Optional pFolder As String = "Inbox") As Boolean - Logger.Info("Testing Login to IMAP Server") - - Try - Logger.Debug("Fetching Inbox") - Dim oStatus As FolderStatus = pClient.SelectInbox() - - Logger.Debug("Test succeeded!") - - Return True - Catch ex As Exception - Logger.Warn("Login failed for IMAP server!") - Logger.Error(ex) - - Return False - End Try - End Function - - Public Function Test_SMTPLogin(pClient As Smtp) As Boolean - Logger.Info("Testing Login to IMAP Server") - - Try - Dim oExtensions = pClient.SupportedExtensions() - Dim oExtensionArray = oExtensions.Select(Function(ex) ex.ToString).ToArray - Logger.Debug("Supported Extensions: ") - Logger.Debug(String.Join(", ", oExtensionArray)) - Logger.Debug("Test succeeded!") - - Return True - Catch ex As Exception - Logger.Warn("Login failed for SMTP server!") - Logger.Error(ex) - - Return False - End Try - End Function - - Public Function Get_IMAPMessages(pClient As Imap, Optional pFolder As String = "Inbox") As List(Of IMail) - Logger.Info("Fetching Messages in Folder [{0}]", pFolder) - Dim oMails As New List(Of IMail) - - Try - Logger.Debug("Fetching Folder [{0}]", pFolder) - Dim oStatus As FolderStatus = pClient.Select(pFolder) - - Logger.Debug("Fetching Unseen UUIDs") - - DisableExcessiveLogging = True - Dim oUUIDs As List(Of Long) = pClient.Search(Flag.Unseen) - DisableExcessiveLogging = False - - Logger.Debug("Fetching Unseen Mails") - For Each oUUID As Long In oUUIDs - DisableExcessiveLogging = True - Dim oEmlFile As Byte() = pClient.GetMessageByUID(oUUID) - DisableExcessiveLogging = False - - Dim oEmail As IMail = MailBuilder.CreateFromEml(oEmlFile) - oMails.Add(oEmail) - - Next - - Logger.Debug("Emails fetched!") - - Return oMails - - Catch ex As Exception - Logger.Warn("Fetching messages for folder [{0}] failed!", pFolder) - Logger.Error(ex) - Return New List(Of IMail) - - End Try - End Function - - Public Function Get_IMAPMessage(pClient As Imap, pMessageId As String, Optional pFolder As String = "Inbox") As IMail - Logger.Info("Fetching Message [{0}]", pMessageId) - - Dim oMail As IMail = Nothing - - Try - Logger.Debug("Fetching Folder [{0}]", pFolder) - Dim oStatus As FolderStatus = pClient.Select(pFolder) - - Logger.Debug("Fetching UUIDs") - Dim oUUIDs As List(Of Long) = pClient.Search(Flag.All) - Logger.Debug("Fetching Mails") - - DisableExcessiveLogging = True - Dim oInfos As List(Of MessageInfo) = pClient.GetMessageInfoByUID(oUUIDs) - DisableExcessiveLogging = False - - Dim oMailInfo = oInfos.Where(Function(i) i.Envelope.MessageID = pMessageId).FirstOrDefault() - - If oMailInfo IsNot Nothing Then - DisableExcessiveLogging = True - Dim oMailData As Byte() = pClient.GetMessageByUID(oMailInfo.UID) - DisableExcessiveLogging = False - oMail = MailBuilder.CreateFromEml(oMailData) - End If - - Logger.Debug("Email fetched!") - - Return oMail - - Catch ex As Exception - Logger.Warn("Fetching message with MessageID [{0}] failed!", pMessageId) - Logger.Error(ex) - - Return Nothing - - End Try - End Function - - Public Function Send_SMTPMessage(pClient As Smtp, pSender As String, pReceiver As String, pSubject As String, pBody As String) As Boolean - Logger.Info("Sending Message with Subject [{0}]", pSubject) - - Try - Dim oBuilder As New MailBuilder() - oBuilder.From.Add(New Headers.MailBox(pSender)) - oBuilder.To.Add(New Headers.MailBox(pReceiver)) - oBuilder.Subject = pSubject - oBuilder.Text = pBody - - Dim oMail As IMail = oBuilder.Create() - Dim oResult As ISendMessageResult = pClient.SendMessage(oMail) - - If oResult.Status = SendMessageStatus.Success Then - Logger.Debug("Message sent successful!") - Return True - - Else - Logger.Warn("Message sending failed. Status: [{0}]", oResult.Status) - Return False - - End If - - Catch ex As Exception - Logger.Warn("Message sending failed.") - Logger.Error(ex) - Return False - - End Try - End Function - - ''' - ''' Loads an eml file from disk and returns the IMail representation of it - ''' - ''' Path to the eml file - ''' The IMail object - Public Function Load_Email(pFileName As String) As IMail - Dim oFileName As String = MaybeConvert_MsgToEml(pFileName) - Return MailBuilder.CreateFromEmlFile(oFileName) - End Function - - ''' - ''' Removes all attachments from an EML file and saves it to a temporary file. - ''' - ''' The EML file to process. - ''' The optional suffix to add to the original filename. - ''' The path of the new EML without attachments. - Public Function Remove_AttachmentsFromEmail(pFileName As String, Optional pSuffix As String = "") As String - Try - ' Convert possible msg file to eml - Dim oEmlPath As String = MaybeConvert_MsgToEml(pFileName) - - ' Clean and version new path - Dim oTempPath As String = Path.Combine(Path.GetTempPath(), Add_FilenameSuffix(oEmlPath, pSuffix, ".eml")) - Dim oCleanedPath As String = FileEx.GetCleanPath(oTempPath) - Dim oVersionedPath As String = FileEx.GetVersionedFilename(oCleanedPath) - - ' Load eml file - Dim oMail = MailBuilder.CreateFromEmlFile(oEmlPath) - - ' Remove attachments and save - oMail.RemoveAttachments() - oMail.Save(oVersionedPath) - - Return oVersionedPath - Catch ex As Exception - Logger.Error(ex) - - Return Nothing - End Try - End Function - - Public Function Save_AttachmentsToDisk(pFileName As String) As List(Of String) - Try - Dim oAttachmentPaths As New List(Of String) - Dim oEmlFile As String = MaybeConvert_MsgToEml(pFileName) - Dim oMail = MailBuilder.CreateFromEmlFile(oEmlFile) - Dim oTempPath As String = IO.Path.GetTempPath() - - If oMail.Attachments.Count = 0 Then - Return New List(Of String) - End If - - For Each oAttachment As MimeData In oMail.Attachments - Dim oPath As String = IO.Path.Combine(oTempPath, oAttachment.SafeFileName) - Dim oVersionedPath As String = FileEx.GetVersionedFilename(oPath) - - oAttachment.Save(oVersionedPath) - oAttachmentPaths.Add(oVersionedPath) - TempFiles.Add(oVersionedPath) - Next - - Return oAttachmentPaths - Catch ex As Exception - Logger.Error(ex) - - Return New List(Of String) - End Try - End Function - - Public Sub Clear_TempFiles() - Logger.Info("Cleaning [{0}] email temp files", TempFiles.Count) - For Each oFile In TempFiles - Try - IO.File.Delete(oFile) - Catch ex As Exception - Logger.Warn("Could not clean temp file [{0}]", oFile) - Logger.Error(ex) - End Try - Next - - TempFiles.Clear() - End Sub - - Public Function Get_MessageDate(Mail As IMail) As Date - Try - Dim oDate = Mail.Date - Return oDate - Catch ex As Exception - Logger.Warn("Could not get Date from Mail [{0}]", Mail.MessageID) - Logger.Error(ex) - Return Date.MinValue - End Try - End Function - - Public Function Get_MessageSender(Mail As IMail) As String - Try - Dim oAddress = Mail.From.First() - - If oAddress Is Nothing Then - Logger.Warn("Could not get MessageSender from Mail [{0}]", Mail.MessageID) - Return Nothing - End If - - Return oAddress.Address - - Catch ex As Exception - Logger.Warn("Could not get MessageSender from Mail [{0}]", Mail.MessageID) - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Function Get_MessageReceiver(Mail As IMail) As String - Try - Dim oAddress = Mail.To.FirstOrDefault() - - If oAddress Is Nothing Then - Logger.Warn("Could not get MessageReceiver from Mail [{0}]", Mail.MessageID) - Return Nothing - End If - - Dim oMailBox = oAddress.GetMailboxes().First() - - If oMailBox Is Nothing Then - Logger.Warn("Could not get MessageReceiver from Mail [{0}]", Mail.MessageID) - Return Nothing - End If - - Return oMailBox.Address - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Public Function Convert_ToEml(pFilePath As String) As String - Return MaybeConvert_MsgToEml(pFilePath) - End Function - - Private Function MaybeConvert_MsgToEml(pEmailFilePath As String) As String - Dim oInfo As New FileInfo(pEmailFilePath) - - If oInfo.Extension.ToUpper = ".EML" Then - Return pEmailFilePath - - ElseIf oInfo.Extension.ToUpper = ".MSG" Then - Return DoConvertMsgToEmlFile(pEmailFilePath) - - Else - Return Nothing - - End If - End Function - - Private Function DoConvertMsgToEmlFile(pMsgFile As String) As String - Try - Logger.Debug("Converting Msg file to Eml: [{0}]", pMsgFile?.ToString) - - Dim oTempPath As String = IO.Path.GetTempPath() - Dim oFileNameWithoutExtension = Path.GetFileNameWithoutExtension(pMsgFile) - Dim oFileNameWithoutInvalidChars = Language.Utils.RemoveInvalidCharacters(oFileNameWithoutExtension) - Dim oEmlPath As String = IO.Path.Combine(oTempPath, $"{oFileNameWithoutInvalidChars}.eml") - Dim oVersionedPath As String = FileEx.GetVersionedFilename(oEmlPath) - - Logger.Debug("New Path for Eml file: [{0}]", oVersionedPath) - - Using oConverter As New MsgConverter(pMsgFile) - Logger.Debug("Converter created") - Dim oEmail As IMail = oConverter.CreateMessage() - Logger.Debug("Message created") - Dim oData As Byte() = oEmail.Render() - Logger.Debug("Message rendered") - - oEmail.Save(oVersionedPath) - Logger.Debug("Message saved") - End Using - - Logger.Info("Msg File successfully converted to Eml: [{0}]", oVersionedPath) - TempFiles.Add(oVersionedPath) - Return oVersionedPath - - Catch ex As Exception - Logger.Warn("Converting Msg to Eml file failed!") - Logger.Error(ex) - - Return Nothing - End Try - End Function - - Private Function Add_FilenameSuffix(pFilename As String, pSuffix As String, Optional pExtension As String = Nothing) - Dim oFileInfo As New FileInfo(pFilename) - Dim oExtension As String = oFileInfo.Extension - - If pExtension IsNot Nothing Then - If pExtension.StartsWith(".") = False Then - oExtension = $".{pExtension}" - Else - oExtension = pExtension - End If - End If - - Dim oFileNameWithoutExtension = Path.GetFileNameWithoutExtension(pFilename) - - Return $"{oFileNameWithoutExtension}{pSuffix}{oExtension}" - End Function -End Class diff --git a/Modules.Messaging/EventBus.vb b/Modules.Messaging/EventBus.vb deleted file mode 100644 index 15eabd40..00000000 --- a/Modules.Messaging/EventBus.vb +++ /dev/null @@ -1,70 +0,0 @@ -Imports System.Reflection - -''' -''' A Simple EventBus for .NET -''' https://stackoverflow.com/questions/368265/a-simple-event-bus-for-net -''' -Public Class EventBus - Private Shared _Instance As EventBus - Private _Listeners As List(Of EventListenerWrapper) = New List(Of EventListenerWrapper)() - - Public Shared ReadOnly Property Instance As EventBus - Get - If IsNothing(_Instance) Then - _Instance = New EventBus() - End If - Return _Instance - End Get - End Property - - ''' - ''' Register a form as an event listener. - ''' - ''' The event listener, usually `Me` - Public Sub Register(ByVal listener As Object) - If Not _Listeners.Any(Function(l) l.Listener.Equals(listener)) Then - _Listeners.Add(New EventListenerWrapper(listener)) - End If - End Sub - - Public Sub Unregister(ByVal listener As Object) - Try - _Listeners.RemoveAll(Function(l) l.Listener = listener) - Catch ex As Exception - - End Try - - End Sub - - Public Sub PostEvent(ByVal e As Object) - _Listeners. - Where(Function(l) l.EventType = e.[GetType]()). - ToList(). - ForEach(Sub(l) l.PostEvent(e)) - End Sub - - Private Class EventListenerWrapper - Public Property Listener As Object - Public Property EventType As Type - Private _method As MethodBase - - Public Sub New(ByVal listener As Object) - Me.Listener = listener - Dim oType As Type = listener.[GetType]() - _method = oType.GetMethod("OnEvent") - If _method Is Nothing Then - Throw New ArgumentException("Class " & oType.Name & " does not containt method OnEvent") - End If - Dim oParameters As ParameterInfo() = _method.GetParameters() - - If oParameters.Length <> 1 Then - Throw New ArgumentException("Method OnEvent of class " & oType.Name & " have invalid number of parameters (should be one)") - End If - EventType = oParameters(0).ParameterType - End Sub - - Public Sub PostEvent(ByVal e As Object) - _method.Invoke(Listener, {e}) - End Sub - End Class -End Class diff --git a/Modules.Messaging/Limilab.vb b/Modules.Messaging/Limilab.vb deleted file mode 100644 index 53b2067c..00000000 --- a/Modules.Messaging/Limilab.vb +++ /dev/null @@ -1,411 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports Limilabs.Mail -Imports Limilabs.Client.IMAP -Imports Limilabs.Client.SMTP -Imports Limilabs.Client -Imports System.Net.Security -Imports System -Imports System.Security.Authentication -Imports Limilabs.Mail.Headers -Imports Limilabs.Mail.MIME -Imports Limilabs - -Public Class Limilab - Private Initialized As Boolean = False - Private LogConfig As LogConfig - Private Logger As DigitalData.Modules.Logging.Logger - Private IMAPServer As String - Private IMAPPort As Integer - Private User As String - Private Password As String - Private AuthType As String - Public CurrentImapObject As Imap - Public ErrorMessage As String - Private CURR_ListUIDs As List(Of Long) - Public Sub New(LogConfig As LogConfig) - LogConfig = LogConfig - Logger = LogConfig.GetLogger() - End Sub - ''' - ''' Initializes the module. - ''' - ''' IP-Address or Domainname of Server - ''' IMAP-Port - ''' IMAP-Username - ''' IMAP-Password - ''' Auth-Type - ''' The folder to fetch messages from. Defaults to `Inbox` - Public Sub InitIMAP(Log_enabled As Boolean, oImapServer As String, oPort As Integer, oUser As String, oPassword As String, oAuthType As String, Optional Folder As String = "Inbox") - LOG_Limilab(Log_enabled) - IMAPServer = oImapServer - IMAPPort = oPort - User = oUser - Password = oPassword - AuthType = oAuthType - Initialized = True - End Sub - Public Function CloseImap() As Boolean - Try - If Initialized = False Then - Return True - Else - If Not IsNothing(CurrentImapObject) Then - CurrentImapObject.Close() - End If - - Return True - End If - - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return False - End Try - - - End Function - - Private Function LOG_Limilab(Log_enabled As Boolean) As Boolean - Mail.Log.Enabled = Log_enabled - End Function - - ''' - ''' Tests connection to a given IMAP Server by connecting and doing a simple message query. - ''' - ''' True if connection and query were successful. False otherwise. - Public Function IMAPTestLogin() As Boolean - Logger.Debug("Starting IMAPTestLogin ...") - - If Initialized = False Then - Return False - End If - Try - Logger.Debug("Connecting...") - Dim oReturn As Boolean = ImapConnect() - If oReturn = True Then - CurrentImapObject.Close() - End If - Return oReturn - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return False - End Try - End Function - Public Function IMAPGetUnseenMessageIDs() As List(Of Long) - Dim oListuids As New List(Of Long) - Logger.Debug("Starting IMAPGetMessageIDs ...") - If Initialized = False Then - Return Nothing - End If - Try - Dim oConnect As Boolean = ImapConnect() - - If oConnect = True Then - oListuids = ImapGetMessageIDs_Unseen() - CURR_ListUIDs = oListuids - End If - Return oListuids - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return Nothing - End Try - End Function - Public Function IMAPGetMessageIDs_AllMails() As List(Of Long) - Dim oListuids As New List(Of Long) - Logger.Debug("Starting IMAPGetMessageIDs ...") - If Initialized = False Then - Return Nothing - End If - Try - Dim oConnect As Boolean = ImapConnect() - - If oConnect = True Then - oListuids = ImapGetMessageIDs_All() - CURR_ListUIDs = oListuids - End If - Return oListuids - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return Nothing - End Try - End Function - Private Function ImapConnect() As Boolean - Try - If Initialized = False Then - Return True - End If - Logger.Debug("ImapConnect {0}:{1} with user {2}", IMAPServer, IMAPPort, User) - Dim oReturnImap As New Imap() - AddHandler oReturnImap.ServerCertificateValidate, AddressOf Validate - Logger.Debug($"AUTH_TYPE [{AuthType}]") - If AuthType = "SSL/TLS" Then - If IMAPPort <> "993" Then - Logger.Debug($"Connecting with explizit port [{IMAPPort}]") - oReturnImap.Connect(IMAPServer, IMAPPort) - Else - Logger.Debug("Connecting to IMAP-Server without port...") - oReturnImap.ConnectSSL(IMAPServer) - End If - Logger.Debug($"Connect to [{IMAPServer}] successful!") - - Dim oSupportsStartTLS As Boolean = oReturnImap.SupportedExtensions().Contains(ImapExtension.StartTLS) - If oSupportsStartTLS And AuthType.EndsWith("TLS") Then - Logger.Debug("Server supports StartTLS, so starting...") - oReturnImap.StartTLS() - Else - Logger.Info("Server supports no StartTLS") - oReturnImap.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12 - End If - ElseIf AuthType = "SSL" Then - If IMAPPort <> "993" Then - Logger.Debug($"Connecting with explizit port [{IMAPPort}]") - oReturnImap.Connect(IMAPServer, IMAPPort) - Else - Logger.Debug("Connecting to IMAP-Server without port...") - oReturnImap.ConnectSSL(IMAPServer) - End If - ElseIf AuthType = "Simple" Then - - End If - Logger.Debug(">> Connected to IMAP-Server!") - - Logger.Debug("Login with User and password...") - oReturnImap.UseBestLogin(User, Password) - Logger.Debug(">> Logged on!") - CurrentImapObject = oReturnImap - Return True - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - If Not IsNothing(ex.InnerException) Then - Logger.Warn("Inner Exception ImapConnect: " + ex.InnerException.Message) - End If - - - Return False - End Try - End Function - - Private Sub Validate( - ByVal sender As Object, - ByVal e As ServerCertificateValidateEventArgs) - - Const ignoredErrors As SslPolicyErrors = - SslPolicyErrors.RemoteCertificateChainErrors Or _ ' self-signed - SslPolicyErrors.RemoteCertificateNameMismatch ' name mismatch - - Dim nameOnCertificate As String = e.Certificate.Subject - - If (e.SslPolicyErrors And Not ignoredErrors) = SslPolicyErrors.None Then - e.IsValid = True - Return - End If - e.IsValid = False - End Sub - Private Function ImapGetMessageIDs_Unseen() As List(Of Long) - Dim oListuids As New List(Of Long) - Try - CurrentImapObject.SelectInbox() - - oListuids = CurrentImapObject.Search(Flag.Unseen) - - Return oListuids - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return Nothing - End Try - - End Function - Private Function ImapGetMessageIDs_All() As List(Of Long) - Dim oListuids As New List(Of Long) - Try - CurrentImapObject.SelectInbox() - - oListuids = CurrentImapObject.Search(Flag.All) - - Return oListuids - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return Nothing - End Try - - End Function - ''' - ''' Creates a MailObject and sends Mail via smtp. - ''' - ''' True if Message was send. False otherwise. - Public Function NewSMTPEmail(mailto As String, mailSubject As String, mailBody As String, - mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String, - AUTH_TYPE As String, SENDER_INSTANCE As String, ADDED_DATETIME As String, Optional attachmentString As String = "", Optional Test As Boolean = False) - Try - Dim oError As Boolean = False - Dim oReceipiants As String() - If mailto.Contains(";") Then - oReceipiants = mailto.Split(";") - Else - ReDim Preserve oReceipiants(0) - oReceipiants(0) = mailto - End If - For Each oMailReceipiant As String In oReceipiants - Logger.Debug($"oMailReceipiant [{oMailReceipiant}]") - Logger.Debug($"mailsmtp [{mailsmtp}]") - Logger.Debug($"mailport [{mailport}]") - Logger.Debug($"mailSubject [{mailSubject}]") - - Dim oMailBuilder As New MailBuilder() - oMailBuilder.From.Add(New MailBox(mailfrom)) - oMailBuilder.[To].Add(New MailBox(oMailReceipiant)) - oMailBuilder.Subject = mailSubject - If ADDED_DATETIME <> "" Then - mailBody &= "

Creation-time: " & ADDED_DATETIME - End If - If Test = True Then - oMailBuilder.Html = $"This is a Testmail!

The body-text will be replaced within profile!

mailsmtp: {mailsmtp}
mailport: {mailport} -
mailUser: [{mailUser}]
mailPW: XXXX
AUTH_TYPE: {AUTH_TYPE}" - - Else - oMailBuilder.Html = mailBody - End If - - Logger.Debug($"mailBody [{oMailBuilder.Html.ToString}]") - - If attachmentString <> "" Then - ' Read attachment from disk, add it to Attachments collection - If System.IO.File.Exists(attachmentString) Then - Dim oAttachment As MimeData = oMailBuilder.AddAttachment(attachmentString) - End If - End If - - Dim email As IMail = oMailBuilder.Create() - ' Send the message - Using oSmtp As New Smtp() - AddHandler oSmtp.ServerCertificateValidate, AddressOf Validate - Logger.Debug($"AUTH_TYPE [{AUTH_TYPE}]") - If AUTH_TYPE = "SSL" Then - - Try - If mailport <> "465" Then - Logger.Debug($"Connecting with explizit port [{mailport}]") - oSmtp.Connect(mailsmtp, mailport) - Logger.Debug($"Connect to [{mailsmtp}] successful!") - Else - oSmtp.ConnectSSL(mailsmtp) - End If - Catch ex As Exception - Logger.Error(ex) - End Try - ElseIf AUTH_TYPE = "SSL/TLS" Then - '########################################################################################## - 'Tested with ExchangeServer SWB 22.10.2021 - '########################################################################################## - If mailport <> "587" Then - Logger.Debug($"Connecting with explizit port [{mailport}]") - oSmtp.Connect(mailsmtp, mailport) - Else - oSmtp.Connect(mailsmtp) - End If - Logger.Debug($"Connect to [{mailsmtp}] successful!") - Dim supportsStartTLS As Boolean = oSmtp.SupportedExtensions().Contains(SmtpExtension.StartTLS) - If supportsStartTLS = True Then - oSmtp.StartTLS() - Logger.Debug($"TLS started!") - Else - Logger.Info("Server supports no StartTLS") - oSmtp.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12 - End If - Else - oSmtp.Connect(mailsmtp) - End If - - If Len(mailUser) > 0 Then - Logger.Debug($"mailUser [{mailUser}]") - oSmtp.UseBestLogin(mailUser, mailPW) ' remove if not needed - Else - Logger.Info($"no mailUser provided!") - Logger.Debug($"no mailUser provided!") - End If - - - oSmtp.SendMessage(email) - Logger.Info("Message to " & oMailReceipiant & " has been send.") - oSmtp.Close() - End Using - Next - Return True - - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return False - End Try - - End Function - Public Function GetMailInfo(UID As Long) As Boolean - Try - Dim eml = CurrentImapObject.GetMessageByUID(UID) - Dim email As IMail = New MailBuilder().CreateFromEml(eml) - ' Subject - Console.WriteLine(email.Subject) - - ' From - For Each m As MailBox In email.From - Console.WriteLine(m.Address) - Console.WriteLine(m.Name) - Next - ' Date - Console.WriteLine(email.[Date]) - ' Text body of the message - Console.WriteLine(email.Text) - ' Html body of the message - Console.WriteLine(email.Html) - ' Custom header - Console.WriteLine(email.Document.Root.Headers("x-spam-value")) - ' Save all attachments to disk - For Each mime As MimeData In email.Attachments - mime.Save("c:\" + mime.SafeFileName) - Next - Return True - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return False - End Try - - End Function - Public Function GetMailObjects() As ArrayList - Try - Dim WORKMAIL_LIST As New ArrayList() - For Each oUID In CURR_ListUIDs - Dim oEml = CurrentImapObject.GetMessageByUID(oUID) - Dim oEmail As IMail = New MailBuilder().CreateFromEml(oEml) - WORKMAIL_LIST.Add(oEmail) - Next - Return WORKMAIL_LIST - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return Nothing - End Try - - End Function - Public Function IMAP_DeleteByUID(UID As Long) As Boolean - Try - If Not IsNothing(CurrentImapObject) Then - CurrentImapObject.DeleteMessageByUID(UID) - Return True - Else - Return False - End If - - Catch ex As Exception - Logger.Error(ex) - ErrorMessage = ex.Message - Return False - End Try - End Function -End Class diff --git a/Modules.Messaging/MailLicense.xml b/Modules.Messaging/MailLicense.xml deleted file mode 100644 index 05105264..00000000 --- a/Modules.Messaging/MailLicense.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 4dc5ef40-f1a9-468b-994c-b7ed600ad878 - Mail.dll - 2022-07-29 - Digital Data GmbH - single developer - Digital Data GmbH - - - - - - - - - - 75MRtl4ipYelIZYlpT8O7QDX9Zc= - - - Raxfkz6DfQVs/sMvH+F2nH0eHXD8FoUFSdP3t7AgBUdpABJQx86srlyuMSEhXPlc1THCqPouEVob4RsWnd9OXvTiPPSOUSK9zuNG6uz93KLAhpSD5PraAgBCF4jwZArlAp7aCNfZpHqQ3w6TRHS+CfravUU0AHHG3MZ1ZcRkGuo= - - \ No newline at end of file diff --git a/Modules.Messaging/Messaging.vbproj b/Modules.Messaging/Messaging.vbproj deleted file mode 100644 index 2709f59b..00000000 --- a/Modules.Messaging/Messaging.vbproj +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Debug - AnyCPU - {AF664D85-0A4B-4BAB-A2F8-83110C06553A} - Library - DigitalData.Modules.Messaging - DigitalData.Modules.Messaging - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Messaging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Messaging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll - False - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - PreserveNewest - - - - \ No newline at end of file diff --git a/Modules.Messaging/My Project/Application.Designer.vb b/Modules.Messaging/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Messaging/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Messaging/My Project/Application.myapp b/Modules.Messaging/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Messaging/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Messaging/My Project/AssemblyInfo.vb b/Modules.Messaging/My Project/AssemblyInfo.vb deleted file mode 100644 index c9237bdc..00000000 --- a/Modules.Messaging/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Messaging/My Project/Resources.Designer.vb b/Modules.Messaging/My Project/Resources.Designer.vb deleted file mode 100644 index c581f02e..00000000 --- a/Modules.Messaging/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - '''

- ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Messaging.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Messaging/My Project/Resources.resx b/Modules.Messaging/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Messaging/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Messaging/My Project/Settings.Designer.vb b/Modules.Messaging/My Project/Settings.Designer.vb deleted file mode 100644 index 3d97a058..00000000 --- a/Modules.Messaging/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Messaging.My.MySettings - Get - Return Global.DigitalData.Modules.Messaging.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Messaging/My Project/Settings.settings b/Modules.Messaging/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Messaging/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Messaging/SMS.vb b/Modules.Messaging/SMS.vb deleted file mode 100644 index eeab6d15..00000000 --- a/Modules.Messaging/SMS.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class SMS - -End Class diff --git a/Modules.Messaging/packages.config b/Modules.Messaging/packages.config deleted file mode 100644 index fcacaf63..00000000 --- a/Modules.Messaging/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Modules.Patterns/Constants.vb b/Modules.Patterns/Constants.vb deleted file mode 100644 index 2dfcf510..00000000 --- a/Modules.Patterns/Constants.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class Constants - -End Class diff --git a/Modules.Patterns/IModule.vb b/Modules.Patterns/IModule.vb deleted file mode 100644 index 5caaa4cd..00000000 --- a/Modules.Patterns/IModule.vb +++ /dev/null @@ -1,13 +0,0 @@ -Public Interface IModule - ''' - ''' The short identifier which identifies all placeholders of this module - ''' - ''' - Property PatternIdentifier As String - - ''' - ''' Does this Module have outside dependencies like a database or a library like windream - ''' - ''' - Property IsComplex As Boolean -End Interface diff --git a/Modules.Patterns/Modules/BaseModule.vb b/Modules.Patterns/Modules/BaseModule.vb deleted file mode 100644 index 82ac08e3..00000000 --- a/Modules.Patterns/Modules/BaseModule.vb +++ /dev/null @@ -1,119 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports System.Text.RegularExpressions - -Namespace Modules - Public Class BaseModule - Friend ReadOnly Logger As Logger - Private ReadOnly MyRegex As Regex = New Regex("{#(\w+)#([\:\.\w\s_/-]+)}+") - Private ReadOnly SqlPhrases As New List(Of String) From { - "SELECT ", "UPDATE ", "DELETE ", "EXEC " - } - - Private Const MAX_TRY_COUNT = 100 - - Public Sub New(pLogConfig As LogConfig) - Logger = pLogConfig.GetLogger() - End Sub - - Public Sub IncrementCounterOrThrow(ByRef pCounter As Integer) - If pCounter >= MAX_TRY_COUNT Then - Throw New OverflowException("Max tries exceeded while replacing placeholders!") - End If - - pCounter += 1 - End Sub - - Public Function ReplacePattern(pInput As String, pType As String, pReplacement As String) As String - Dim oElements As MatchCollection = MyRegex.Matches(pInput) - - If IsNothing(pReplacement) Then - Return pInput - End If - - Dim oIsSQL As Boolean = False - For Each oPhrase In SqlPhrases - If pInput.Contains(oPhrase) Then - oIsSQL = True - Exit For - End If - Next - - If oIsSQL = True Then - Logger.Debug("Input string is most likely an SQL Query, masking quotes in replacement string.") - pReplacement = pReplacement.Replace("'", "''") - End If - - For Each oElement As Match In oElements - ' if group 1 contains the 'pattern' the replace whole group with 'replacement' - ' and return it - If oElement.Groups(1).Value = pType Then - Logger.Debug("Replacing Placeholder with [{0}]", pReplacement) - Return Regex.Replace(pInput, oElement.Groups(0).Value, pReplacement) - End If - Next - - ' no replacement made - Return pInput - End Function - - Public Function ContainsPatternAndValue(pInput As String, pType As String, pValue As String) As Boolean - Dim oElements As MatchCollection = MyRegex.Matches(pInput) - - For Each oElement As Match In oElements - ' Pattern in pInput - Dim oType As String = oElement.Groups(1).Value - Dim oValue As String = oElement.Groups(2).Value - - If oType = pType And oValue = pValue Then - Return True - End If - Next - - Return False - End Function - - Public Function ContainsPattern(pInput As String, pType As String) As String - Dim oElements As MatchCollection = MyRegex.Matches(pInput) - - For Each oElement As Match In oElements - Dim t As String = oElement.Groups(1).Value - - If t = pType Then - Return True - End If - Next - - Return False - End Function - - Public Function HasPattern(pInput As String, pType As String) As Boolean - Dim oMatches = MyRegex.Matches(pInput) - - For Each oMatch As Match In oMatches - For Each oGroup As Group In oMatch.Groups - If oGroup.Value = pType Then - Return True - End If - Next - Next - - Return False - End Function - - Public Function GetNextPattern(pInput As String, pType As String) As Pattern - Dim oElements As MatchCollection = MyRegex.Matches(pInput) - - For Each oElement As Match In oElements - ' Pattern in pInput - Dim oType As String = oElement.Groups(1).Value - Dim oValue As String = oElement.Groups(2).Value - - If oType = pType Then - Return New Pattern(oType, oValue) - End If - Next - - Return Nothing - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/Clipboard.vb b/Modules.Patterns/Modules/Clipboard.vb deleted file mode 100644 index 43cc729b..00000000 --- a/Modules.Patterns/Modules/Clipboard.vb +++ /dev/null @@ -1,49 +0,0 @@ -Imports DigitalData.Modules.Logging - -Namespace Modules - Public Class Clipboard - Inherits BaseModule - Implements IModule - - Public Const CLIP_VALUE_BOARD As String = "BOARD" - - Public Const CLIPBOARD_VALUE_DE = "@Zwischenablage" - Public Const CLIPBOARD_VALUE_EN = "@Clipboard" - - Public Property PatternIdentifier As String = "CLIP" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = False Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pClipboardContents As String) As String - Dim oResult = pInput - Dim oCounter = 0 - - Try - ' LEGACY: Replace Clipboard Contents - oResult = oResult.Replace(CLIPBOARD_VALUE_DE.ToLower, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_DE.ToUpper, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_DE, pClipboardContents) - - oResult = oResult.Replace(CLIPBOARD_VALUE_EN.ToLower, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_EN.ToUpper, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_EN, pClipboardContents) - - ' Replace Clipboard Contents - While ContainsPatternAndValue(oResult, PatternIdentifier, CLIP_VALUE_BOARD) - oResult = ReplacePattern(oResult, PatternIdentifier, pClipboardContents) - IncrementCounterOrThrow(oCounter) - End While - - Logger.Debug("Input after Clipboard.Replace: [{0}]", pInput) - Catch ex As Exception - Logger.Error(ex) - - End Try - - Return oResult - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/Controls.vb b/Modules.Patterns/Modules/Controls.vb deleted file mode 100644 index 4c4f7e56..00000000 --- a/Modules.Patterns/Modules/Controls.vb +++ /dev/null @@ -1,105 +0,0 @@ -Imports System.Windows.Forms -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.Modules.Logging - -Namespace Modules - ''' - ''' Patterns for control values on a panel - ''' - Public Class Controls - Inherits BaseModule - Implements IModule - - Public Const CTRL_VALUE_PANEL = "CTRL_VALUE_PANEL" - - Public Property PatternIdentifier As String = "CTRL" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = True Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pPanel As Panel) As String - Dim oControls As List(Of Control) = pPanel.Controls.Cast(Of Control).ToList() - Return Replace(pInput, oControls) - End Function - - Public Function Replace(pInput As String, pControls As List(Of Control)) As String - Dim oResult = pInput - Dim oCounter = 0 - - While ContainsPattern(oResult, PatternIdentifier) - Try - Dim oControlName As String = GetNextPattern(oResult, PatternIdentifier).Value - - Dim oControl As Control = pControls. - Where(Function(control) control.Name = oControlName). - FirstOrDefault() - - If oControl IsNot Nothing Then - Dim oReplaceValue As String - Select Case oControl.GetType - Case GetType(TextBox) - oReplaceValue = oControl.Text - - Case GetType(DevExpress.XtraEditors.TextEdit) - Dim oTextEdit As DevExpress.XtraEditors.TextEdit = oControl - oReplaceValue = oTextEdit.EditValue - - Case GetType(DevExpress.XtraEditors.DateEdit) - Dim oDateEdit As DevExpress.XtraEditors.DateEdit = oControl - Dim oDateValue As Date = oDateEdit.EditValue - oReplaceValue = oDateValue.ToString("yyyyMMdd") - - Case GetType(DevExpress.XtraEditors.LookUpEdit) - Dim oLookupEdit As DevExpress.XtraEditors.LookUpEdit = oControl - - If IsNothing(oLookupEdit.EditValue) Then - oReplaceValue = String.Empty - Else - oReplaceValue = oLookupEdit.EditValue - End If - - Case GetType(LookupControl3) - Dim oLookupControl3 As LookupControl3 = oControl - If oLookupControl3.Properties.SelectedValues.Count = 1 Then - oReplaceValue = oLookupControl3.Properties.SelectedValues.Item(0) - Else - oReplaceValue = "0" - End If - - Case GetType(ComboBox) - oReplaceValue = oControl.Text - - Case GetType(DevExpress.XtraEditors.ComboBoxEdit) - Dim oCombobox As DevExpress.XtraEditors.ComboBoxEdit = oControl - oReplaceValue = oCombobox.EditValue - - Case GetType(CheckBox) - Dim oCheckBox As CheckBox = oControl - oReplaceValue = oCheckBox.Checked - - Case GetType(DevExpress.XtraEditors.CheckEdit) - Dim oCheckEdit As DevExpress.XtraEditors.CheckEdit = oControl - oReplaceValue = oCheckEdit.Checked - - Case Else - oReplaceValue = "0" - - End Select - - oResult = ReplacePattern(oResult, PatternIdentifier, oReplaceValue) - End If - Catch ex As Exception - Logger.Error(ex) - Finally - IncrementCounterOrThrow(oCounter) - End Try - - End While - - Return oResult - End Function - - End Class -End Namespace diff --git a/Modules.Patterns/Modules/FileInformation.vb b/Modules.Patterns/Modules/FileInformation.vb deleted file mode 100644 index 8022dfd8..00000000 --- a/Modules.Patterns/Modules/FileInformation.vb +++ /dev/null @@ -1,66 +0,0 @@ -Imports System.IO -Imports DigitalData.Modules.Logging - -Namespace Modules - Public Class FileInformation - Inherits BaseModule - Implements IModule - - Public Const FILE_VALUE_FILEINFO = "FILEINFO" - Public Const FILE_VALUE_FILENAME = "FILENAME" - Public Const FILE_VALUE_EXTENSION = "EXTENSION" - Public Const FILE_VALUE_FILENAME_EXT = "FILENAME_EXT" - Public Const FILE_VALUE_DATE_CREATED = "DATE_CREATED" - Public Const FILE_VALUE_DATE_MODIFIED = "DATE_MODIFIED" - - Public Property PatternIdentifier As String = "FILE" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = False Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pFileInfo As FileInfo) As String - Dim oResult = pInput - Dim oCounter = 0 - - ' Replace Filename without extension - While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_FILENAME) - Dim oFilenameWithoutExtension = Path.GetFileNameWithoutExtension(pFileInfo.Name) - oResult = ReplacePattern(oResult, PatternIdentifier, oFilenameWithoutExtension) - IncrementCounterOrThrow(oCounter) - End While - - ' Replace Filename with extension - While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_FILENAME_EXT) - Dim oFilename As String = pFileInfo.Name - oResult = ReplacePattern(oResult, PatternIdentifier, oFilename) - IncrementCounterOrThrow(oCounter) - End While - - ' Replace Extension - While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_FILENAME_EXT) - Dim oExtension As String = pFileInfo.Extension.Substring(1) - oResult = ReplacePattern(oResult, PatternIdentifier, oExtension) - IncrementCounterOrThrow(oCounter) - End While - - ' Replace creation date - While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_DATE_CREATED) - Dim oDateCreated = pFileInfo.CreationTime.ToString("yyyy-MM-dd") - oResult = ReplacePattern(oResult, PatternIdentifier, oDateCreated) - IncrementCounterOrThrow(oCounter) - End While - - ' Replace last modification date - While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_DATE_CREATED) - Dim oDateModified = pFileInfo.LastWriteTime.ToString("yyyy-MM-dd") - oResult = ReplacePattern(oResult, PatternIdentifier, oDateModified) - IncrementCounterOrThrow(oCounter) - End While - - Return oResult - End Function - End Class - -End Namespace \ No newline at end of file diff --git a/Modules.Patterns/Modules/Globix/GlobixAutomatic.vb b/Modules.Patterns/Modules/Globix/GlobixAutomatic.vb deleted file mode 100644 index 9f0dd236..00000000 --- a/Modules.Patterns/Modules/Globix/GlobixAutomatic.vb +++ /dev/null @@ -1,60 +0,0 @@ -Imports DigitalData.Modules.Logging - -Namespace Modules.Globix - ''' - ''' Patterns for Generating a Filename in Global Indexer - ''' - Public Class GlobixAutomatic - Inherits BaseModule - Implements IModule - - Public Property PatternIdentifier As String = "ATTR_A" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = True Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pIndexes As Dictionary(Of String, List(Of String))) As String - Dim oResult = pInput - Dim oCounter = 0 - - If pIndexes Is Nothing Then - Throw New ArgumentNullException("pIndexes") - End If - - Logger.Debug("Replacing Automatic Indexes. [{0}] Indexes loaded.", pIndexes?.Count) - - While ContainsPattern(oResult, PatternIdentifier) - Try - Dim oIndexName As String = GetNextPattern(oResult, PatternIdentifier).Value - Logger.Info("Replacing value for Index {0}", oIndexName) - - If pIndexes.ContainsKey(oIndexName) = False Then - Logger.Warn("Value for Index [{0}] does not exist and will not be used for replacing. Skipping.", oIndexName) - - Else - ' TODO: If Index contains multiple values, only the first value will be used as value - Dim oIndexValues As List(Of String) = pIndexes.Item(oIndexName) - Dim oFirstValue As String = oIndexValues.FirstOrDefault() - - If oFirstValue Is Nothing Then - Logger.Warn("Value for Index [{0}] is empty and will not be used for replacing. Skipping.") - Return oResult - End If - - oResult = ReplacePattern(oResult, PatternIdentifier, oFirstValue) - End If - - Catch ex As Exception - Logger.Error(ex) - Return oResult - Finally - IncrementCounterOrThrow(oCounter) - End Try - End While - - Return oResult - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/Globix/GlobixManual.vb b/Modules.Patterns/Modules/Globix/GlobixManual.vb deleted file mode 100644 index 4652a151..00000000 --- a/Modules.Patterns/Modules/Globix/GlobixManual.vb +++ /dev/null @@ -1,59 +0,0 @@ -Imports DigitalData.Modules.Logging - -Namespace Modules.Globix - ''' - ''' Patterns for Generating a Filename in Global Indexer - ''' - Public Class GlobixManual - Inherits BaseModule - Implements IModule - - Public Property PatternIdentifier As String = "ATTR_M" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = True Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pIndexes As Dictionary(Of String, List(Of String))) As String - Dim oResult = pInput - Dim oCounter = 0 - - If pIndexes Is Nothing Then - Throw New ArgumentNullException("pIndexes") - End If - - Logger.Debug("Replacing Manual Indexes. [{0}] Indexes loaded.", pIndexes?.Count) - - While ContainsPattern(oResult, PatternIdentifier) - Try - Dim oIndexName As String = GetNextPattern(oResult, PatternIdentifier).Value - - If pIndexes.ContainsKey(oIndexName) = False Then - Logger.Warn("Value for Index [{0}] does not exist and will not be used for replacing. Exiting.", oIndexName) - Return oResult - End If - - ' TODO: If Index contains multiple values, only the first value will be used as value - Dim oIndexValues As List(Of String) = pIndexes.Item(oIndexName) - Dim oFirstValue As String = oIndexValues.FirstOrDefault() - - If oFirstValue Is Nothing Then - Logger.Warn("Value for Index [{0}] is empty and will not be used for replacing. Exiting.") - Return oResult - End If - - oResult = ReplacePattern(oResult, PatternIdentifier, oFirstValue) - - Catch ex As Exception - Logger.Error(ex) - Return oResult - Finally - IncrementCounterOrThrow(oCounter) - End Try - End While - - Return oResult - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/IDB.vb b/Modules.Patterns/Modules/IDB.vb deleted file mode 100644 index e22a12c4..00000000 --- a/Modules.Patterns/Modules/IDB.vb +++ /dev/null @@ -1,28 +0,0 @@ -Imports System.Windows.Forms -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.Modules.Logging - -Namespace Modules - ''' - ''' Patterns for IDB Attributes - ''' - Public Class IDB - Inherits BaseModule - Implements IModule - - Public Const IDB_OBJECT_ID = "IDB_OBJECT_ID" - - Public Property PatternIdentifier As String = "ATTR" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = True Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String) As String - 'TODO: Implement, depends on IDB Data, which is not in monorepo yet - - Return pInput - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/Internal.vb b/Modules.Patterns/Modules/Internal.vb deleted file mode 100644 index c7cc56d7..00000000 --- a/Modules.Patterns/Modules/Internal.vb +++ /dev/null @@ -1,86 +0,0 @@ -Imports DigitalData.Modules.Logging - -Namespace Modules - ''' - ''' Simple patterns that only rely on .NET functions - ''' - Public Class Internal - Inherits BaseModule - Implements IModule - - Public Const INT_VALUE_USERNAME = "USERNAME" - Public Const INT_VALUE_MACHINE = "MACHINE" - Public Const INT_VALUE_DOMAIN = "DOMAIN" - Public Const INT_VALUE_DATE = "DATE" - - Public Const INT_VALUE_DATE_YYYY = "YYYY" - Public Const INT_VALUE_DATE_MM = "MM" - Public Const INT_VALUE_DATE_DD = "DD" - Public Const INT_VALUE_DATE_YYYY_MM_DD = "YYYY/MM/DD" - Public Const INT_VALUE_DATE_YYYY_MM_DD_2 = "YYYY_MM_DD" - - Public Property PatternIdentifier As String = "INT" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = False Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String) As String - Dim oResult = pInput - Dim oCounter = 0 - Dim oNow As Date = Now - - 'TODO: Make date patterns dynamic - - Logger.Trace("Replacing Internal Patterns") - - ' Replace CurrentDate(s) - While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_YYYY_MM_DD) - Logger.Trace("Replacing Pattern [{0}]", INT_VALUE_DATE_YYYY_MM_DD) - oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("yyyy\\MM\\dd")) - IncrementCounterOrThrow(oCounter) - End While - - Logger.Trace("Replace Counter: [{0}]", oCounter) - - ' Replace CurrentDate(s) - While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_YYYY_MM_DD_2) - Logger.Trace("Replacing Pattern [{0}]", INT_VALUE_DATE_YYYY_MM_DD_2) - oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("yyyy_MM_dd")) - IncrementCounterOrThrow(oCounter) - End While - - Logger.Trace("Replace Counter: [{0}]", oCounter) - - ' Replace Year(s) - While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_YYYY) - Logger.Trace("Replacing Pattern [{0}]", INT_VALUE_DATE_YYYY) - oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("yyyy")) - IncrementCounterOrThrow(oCounter) - End While - - Logger.Trace("Replace Counter: [{0}]", oCounter) - - ' Replace Month(s) - While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_MM) - Logger.Trace("Replacing Pattern [{0}]", INT_VALUE_DATE_MM) - oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("MM")) - IncrementCounterOrThrow(oCounter) - End While - - Logger.Trace("Replace Counter: [{0}]", oCounter) - - ' Replace Day(s) - While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_DD) - Logger.Trace("Replacing Pattern [{0}]", INT_VALUE_DATE_DD) - oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("dd")) - IncrementCounterOrThrow(oCounter) - End While - - Logger.Trace("Replace Counter: [{0}]", oCounter) - - Return oResult - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/User.vb b/Modules.Patterns/Modules/User.vb deleted file mode 100644 index d5ddca22..00000000 --- a/Modules.Patterns/Modules/User.vb +++ /dev/null @@ -1,61 +0,0 @@ -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.ZooFlow - -Namespace Modules - Public Class User - Inherits BaseModule - Implements IModule - - Public Const USER_VALUE_PRENAME = "PRENAME" - Public Const USER_VALUE_SURNAME = "SURNAME" - Public Const USER_VALUE_EMAIL = "EMAIL" - Public Const USER_VALUE_SHORTNAME = "SHORTNAME" - Public Const USER_VALUE_LANGUAGE = "LANGUAGE" - Public Const USER_VALUE_USER_ID = "USER_ID" - Public Const USER_VALUE_USER_NAME = "USER_NAME" - - Public Property PatternIdentifier As String = "USER" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = True Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pUser As State.UserState) As String - Dim oResult = pInput - Dim oCounter = 0 - - While ContainsPatternAndValue(oResult, PatternIdentifier, USER_VALUE_PRENAME) - oResult = ReplacePattern(oResult, PatternIdentifier, pUser.GivenName) - IncrementCounterOrThrow(oCounter) - End While - - While ContainsPatternAndValue(oResult, PatternIdentifier, USER_VALUE_SURNAME) - oResult = ReplacePattern(oResult, PatternIdentifier, pUser.Surname) - IncrementCounterOrThrow(oCounter) - End While - - While ContainsPatternAndValue(oResult, PatternIdentifier, USER_VALUE_EMAIL) - oResult = ReplacePattern(oResult, PatternIdentifier, pUser.Email) - IncrementCounterOrThrow(oCounter) - End While - - While ContainsPatternAndValue(oResult, PatternIdentifier, USER_VALUE_SHORTNAME) - oResult = ReplacePattern(oResult, PatternIdentifier, pUser.ShortName) - IncrementCounterOrThrow(oCounter) - End While - - While ContainsPatternAndValue(oResult, PatternIdentifier, USER_VALUE_LANGUAGE) - oResult = ReplacePattern(oResult, PatternIdentifier, pUser.Language) - IncrementCounterOrThrow(oCounter) - End While - - While ContainsPatternAndValue(oResult, PatternIdentifier, USER_VALUE_USER_ID) - oResult = ReplacePattern(oResult, PatternIdentifier, pUser.UserId) - IncrementCounterOrThrow(oCounter) - End While - - Return oResult - End Function - End Class -End Namespace diff --git a/Modules.Patterns/Modules/Windream.vb b/Modules.Patterns/Modules/Windream.vb deleted file mode 100644 index 98d14ebb..00000000 --- a/Modules.Patterns/Modules/Windream.vb +++ /dev/null @@ -1,49 +0,0 @@ -Imports System.Windows.Forms -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.Modules.Logging - -Namespace Modules - ''' - ''' Patterns for Windream Indicies - ''' - Public Class Windream - Inherits BaseModule - Implements IModule - - Public Const WM_VALUE_DOCUMENT = "WM_DOCUMENT" - - Public Property PatternIdentifier As String = "WMI" Implements IModule.PatternIdentifier - Public Property IsComplex As Boolean = True Implements IModule.IsComplex - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Function Replace(pInput As String, pWMObject As WINDREAMLib.WMObject) As String - Dim oResult = pInput - Dim oCounter = 0 - - While ContainsPattern(oResult, PatternIdentifier) - Try - Dim oIndexName As String = GetNextPattern(oResult, PatternIdentifier).Value - Dim oWMValue As Object = pWMObject.GetVariableValue(oIndexName) - - If oWMValue Is Nothing Then - Logger.Warn("Value for Index [{0}] is empty and will not be used for replacing. Skipping.") - Return oResult - End If - - oResult = ReplacePattern(oResult, PatternIdentifier, oWMValue.ToString) - - Catch ex As Exception - Logger.Error(ex) - Return oResult - Finally - IncrementCounterOrThrow(oCounter) - End Try - End While - - Return oResult - End Function - End Class -End Namespace diff --git a/Modules.Patterns/My Project/Application.Designer.vb b/Modules.Patterns/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Patterns/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Patterns/My Project/Application.myapp b/Modules.Patterns/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Patterns/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Patterns/My Project/AssemblyInfo.vb b/Modules.Patterns/My Project/AssemblyInfo.vb deleted file mode 100644 index 7ae8659f..00000000 --- a/Modules.Patterns/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Patterns/My Project/Resources.Designer.vb b/Modules.Patterns/My Project/Resources.Designer.vb deleted file mode 100644 index a2cb98e3..00000000 --- a/Modules.Patterns/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Patterns.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Patterns/My Project/Resources.resx b/Modules.Patterns/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Patterns/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Patterns/My Project/Settings.Designer.vb b/Modules.Patterns/My Project/Settings.Designer.vb deleted file mode 100644 index feccec48..00000000 --- a/Modules.Patterns/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Patterns.My.MySettings - Get - Return Global.DigitalData.Modules.Patterns.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Patterns/My Project/Settings.settings b/Modules.Patterns/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Patterns/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Patterns/Pattern.vb b/Modules.Patterns/Pattern.vb deleted file mode 100644 index d3da97de..00000000 --- a/Modules.Patterns/Pattern.vb +++ /dev/null @@ -1,21 +0,0 @@ -Public Class Pattern - Public ReadOnly Property Type As String - Public ReadOnly Property Value As String - - Public Sub New(pType As String, pValue As String) - Me.Type = pType - Me.Value = pValue - End Sub - - Public Overrides Function ToString() As String - Return $"{{#{Type}#{Value}}}" - End Function - - Public Overrides Function GetHashCode() As Integer - Return (Value.GetHashCode & Type.GetHashCode).GetHashCode - End Function - - Public Overrides Function Equals(obj As Object) As Boolean - Return Me.GetHashCode = DirectCast(obj, Pattern).GetHashCode - End Function -End Class diff --git a/Modules.Patterns/Patterns.vb b/Modules.Patterns/Patterns.vb deleted file mode 100644 index fc23fe65..00000000 --- a/Modules.Patterns/Patterns.vb +++ /dev/null @@ -1,294 +0,0 @@ -Imports System.Text.RegularExpressions -Imports System.Windows.Forms -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.ZooFlow - -''' -''' Defines common Functions for Checking for and replacing placeholders. -''' This Class also includes a child class `Pattern` for passing around Patterns. -''' -''' The format of all placeholders is: -''' {#TYPE#VALUE} -''' -''' Some Examples: -''' {#INT#USERNAME} -''' {#CTRL#CMB_2} -''' {#WMI#String 39} -''' -Public Class ClassPatterns - ' Complex patterns that rely on a datasource like a Database or Windream - Public Const PATTERN_WMI = "WMI" - Public Const PATTERN_CTRL = "CTRL" - ' Simple patterns that only rely on .NET functions - Public Const PATTERN_INT = "INT" - ' Simple patterns that rely on Data from the TBDD_USER table - Public Const PATTERN_USER = "USER" - - Public Const USER_VALUE_PRENAME = "PRENAME" - Public Const USER_VALUE_SURNAME = "SURNAME" - Public Const USER_VALUE_EMAIL = "EMAIL" - Public Const USER_VALUE_SHORTNAME = "SHORTNAME" - Public Const USER_VALUE_USER_ID = "USER_ID" - Public Const USER_VALUE_PROFILE_ID = "PROFILE_ID" - - Public Const INT_VALUE_USERNAME = "USERNAME" - Public Const INT_VALUE_MACHINE = "MACHINE" - Public Const INT_VALUE_DOMAIN = "DOMAIN" - Public Const INT_VALUE_DATE = "DATE" - - Public Const CLIPBOARD_VALUE_DE = "@Zwischenablage" - Public Const CLIPBOARD_VALUE_EN = "@Clipboard" - - Public Const MAX_TRY_COUNT = 100 - - Public ReadOnly Property PatternRegex As Regex - Get - Return _Regex - End Get - End Property - - Private ReadOnly _Logger As Logger - Private ReadOnly _LogConfig As LogConfig - - Private ReadOnly _Regex As Regex = New Regex("{#(\w+)#([\w\s_-]+)}+") - Private ReadOnly _AllPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_USER, PATTERN_INT} - Private ReadOnly _ComplexPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL} - Private ReadOnly _SimplePatterns As New List(Of String) From {PATTERN_USER, PATTERN_INT} - - ''' - ''' Wraps a pattern-type and -value in the common format: {#type#value} - ''' - Public Function WrapPatternValue(pType As String, pValue As String) As String - Return New Pattern(pType, pValue).ToString - End Function - - Public Sub New(pLogConfig As LogConfig) - _LogConfig = pLogConfig - _Logger = pLogConfig.GetLogger - End Sub - - Public Function ReplaceAllValues(pInput As String, pUser As State.UserState, pClipboardContents As String) As String - Try - Dim result = pInput - - result = ReplaceClipboardContents(result, pClipboardContents) - result = ReplaceInternalValues(result) - result = ReplaceUserValues(result, pUser) - - Return result - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in ReplaceAllValues:" & ex.Message) - Return pInput - End Try - End Function - - Public Function ReplaceClipboardContents(pInput As String, pClipboardContents As String) As String - Dim oResult = pInput - - oResult = oResult.Replace(CLIPBOARD_VALUE_DE.ToLower, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_DE.ToUpper, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_EN.ToLower, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_EN.ToUpper, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_DE, pClipboardContents) - oResult = oResult.Replace(CLIPBOARD_VALUE_EN, pClipboardContents) - - Return oResult - End Function - - Public Function ReplaceInternalValues(pInput As String) As String - Try - Dim oResult = pInput - - ' Replace Username(s) - While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_USERNAME) - oResult = ReplacePattern(oResult, PATTERN_INT, System.Environment.UserName) - End While - - ' Replace Machinename(s) - While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_MACHINE) - oResult = ReplacePattern(oResult, PATTERN_INT, System.Environment.MachineName) - End While - - ' Replace Domainname(s) - While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_DOMAIN) - oResult = ReplacePattern(oResult, PATTERN_INT, System.Environment.UserDomainName) - End While - - ' Replace CurrentDate(s) - While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_DATE) - oResult = ReplacePattern(oResult, PATTERN_INT, Now.ToShortDateString) - End While - - Return oResult - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in ReplaceInternalValues:" & ex.Message) - Return pInput - End Try - End Function - - Public Function ReplaceUserValues(pInput As String, pUser As State.UserState) As String - Try - Dim oResult = pInput - - While ContainsPatternAndValue(oResult, PATTERN_USER, USER_VALUE_PRENAME) - oResult = ReplacePattern(pInput, PATTERN_USER, pUser.GivenName) - End While - - While ContainsPatternAndValue(oResult, PATTERN_USER, USER_VALUE_USER_ID) - oResult = ReplacePattern(pInput, PATTERN_USER, pUser.UserId.ToString) - End While - - While ContainsPatternAndValue(oResult, PATTERN_USER, USER_VALUE_SURNAME) - oResult = ReplacePattern(pInput, PATTERN_USER, pUser.Surname) - End While - - While ContainsPatternAndValue(oResult, PATTERN_USER, USER_VALUE_SHORTNAME) - oResult = ReplacePattern(pInput, PATTERN_USER, pUser.ShortName) - End While - - While ContainsPatternAndValue(oResult, PATTERN_USER, USER_VALUE_EMAIL) - oResult = ReplacePattern(pInput, PATTERN_USER, pUser.Email) - End While - - Return oResult - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in ReplaceUserValues:" & ex.Message) - Return pInput - End Try - End Function - - Public Function ReplaceControlValues(pInput As String, pPanel As Panel) As String - Try - Dim oResult = pInput - Dim oTryCounter = 0 - - While ContainsPattern(oResult, PATTERN_CTRL) - If oTryCounter > MAX_TRY_COUNT Then - Throw New Exception("Max tries in ReplaceControlValues exceeded.") - End If - - Dim controlName As String = GetNextPattern(oResult, PATTERN_CTRL).Value - Dim control As Control = pPanel.Controls.Find(controlName, False).FirstOrDefault() - - If control IsNot Nothing Then - Dim value As String = control.Text - oResult = ReplacePattern(oResult, PATTERN_CTRL, value) - End If - - oTryCounter += 1 - End While - - Return oResult - Catch ex As Exception - _Logger.Error(ex) - _Logger.Warn("Error in ReplaceControlValues:" & ex.Message) - Return pInput - End Try - End Function - - Private Function ContainsPattern(pInput As String, pType As String) As Boolean - Dim elements As MatchCollection = _Regex.Matches(pInput) - - For Each element As Match In elements - Dim t As String = element.Groups(1).Value - - If t = pType Then - Return True - End If - Next - - Return False - End Function - - Public Function GetNextPattern(pInput As String, pType As String) As Pattern - Dim oElements As MatchCollection = _Regex.Matches(pInput) - - For Each oElement As Match In oElements - ' Pattern in input - Dim oType As String = oElement.Groups(1).Value - Dim oValue As String = oElement.Groups(2).Value - - If oType = pType Then - Return New Pattern(oType, oValue) - End If - Next - - Return Nothing - End Function - Public Function GetAllPatterns(pInput As String) As List(Of Pattern) - Dim elements As MatchCollection = _Regex.Matches(pInput) - Dim results As New List(Of Pattern) - - For Each element As Match In elements - ' Pattern in input - Dim t As String = element.Groups(1).Value - Dim v As String = element.Groups(2).Value - - results.Add(New Pattern(t, v)) - Next - - Return results - End Function - Public Function ReplacePattern(pInput As String, pType As String, pReplacement As String) As String - Dim oElements As MatchCollection = _Regex.Matches(pInput) - - If IsNothing(pReplacement) Or pReplacement = String.Empty Then - Return pInput - End If - - For Each element As Match In oElements - ' if group 1 contains the 'pattern' the replace whole group with 'replacement' - ' and return it - If element.Groups(1).Value = pType Then - Return Regex.Replace(pInput, element.Groups(0).Value, pReplacement) - End If - Next - - ' no replacement made - Return pInput - End Function - Private Function ContainsPatternAndValue(pInput As String, pType As String, pValue As String) As Boolean - Dim oElements As MatchCollection = _Regex.Matches(pInput) - - For Each oElement As Match In oElements - ' Pattern in input - Dim oType As String = oElement.Groups(1).Value - Dim oValue As String = oElement.Groups(2).Value - - If oType = pType And oValue = pValue Then - Return True - End If - Next - - Return False - End Function - - Public Function HasAnyPatterns(pInput As String) As Boolean - Return _AllPatterns.Any(Function(pPattern) HasPattern(pInput, pPattern)) - End Function - - Public Function HasOnlySimplePatterns(pInput As String) As Boolean - Return Not HasComplexPatterns(pInput) - End Function - - Public Function HasComplexPatterns(pInput As String) As Boolean - Return _ComplexPatterns.Any(Function(oPattern) HasPattern(pInput, oPattern)) - End Function - - Public Function HasPattern(pInput As String, pType As String) As Boolean - Dim oMatches = _Regex.Matches(pInput) - - For Each oMatch As Match In oMatches - For Each oGroup As Group In oMatch.Groups - If oGroup.Value = pType Then - Return True - End If - Next - Next - - Return False - End Function -End Class \ No newline at end of file diff --git a/Modules.Patterns/Patterns.vbproj b/Modules.Patterns/Patterns.vbproj deleted file mode 100644 index 7822ae2e..00000000 --- a/Modules.Patterns/Patterns.vbproj +++ /dev/null @@ -1,153 +0,0 @@ - - - - - Debug - AnyCPU - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444} - Library - DigitalData.Modules.Patterns - DigitalData.Modules.Patterns - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Patterns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Patterns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll - True - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - {81cac44f-3711-4c8f-ae98-e02a7448782a} - ZooFlow - - - - - \ No newline at end of file diff --git a/Modules.Patterns/Patterns.vbproj.bak b/Modules.Patterns/Patterns.vbproj.bak deleted file mode 100644 index c22610ea..00000000 --- a/Modules.Patterns/Patterns.vbproj.bak +++ /dev/null @@ -1,151 +0,0 @@ - - - - - Debug - AnyCPU - {7C3B0C7E-59FE-4E1A-A655-27AE119F9444} - Library - DigitalData.Modules.Patterns - DigitalData.Modules.Patterns - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Patterns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Patterns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll - True - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - {81cac44f-3711-4c8f-ae98-e02a7448782a} - ZooFlow - - - - - \ No newline at end of file diff --git a/Modules.Patterns/Patterns2.vb b/Modules.Patterns/Patterns2.vb deleted file mode 100644 index c94d45c8..00000000 --- a/Modules.Patterns/Patterns2.vb +++ /dev/null @@ -1,165 +0,0 @@ -Imports System.IO -Imports System.Text.RegularExpressions -Imports System.Windows.Forms -Imports DigitalData.Controls.LookupGrid -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.ZooFlow -Imports WINDREAMLib - -''' -''' Defines common Functions for Checking for and replacing placeholders. -''' This Class also includes a child class `Pattern` for passing around Patterns. -''' -''' The format of all placeholders is: -''' {#TYPE#VALUE} -''' -''' Some Examples: -''' {#INT#USERNAME} -''' {#CTRL#CMB_2} -''' {#WMI#String 39} -''' -Public Class Patterns2 - Private ReadOnly LogConfig As LogConfig - Private ReadOnly Logger As Logger - Private ReadOnly Base As Modules.BaseModule - Private ReadOnly Modules As New List(Of IModule) - - Public Sub New(pLogConfig As LogConfig) - LogConfig = pLogConfig - Logger = pLogConfig.GetLogger() - Base = New Modules.BaseModule(LogConfig) - - Modules.AddRange({ - New Modules.Internal(LogConfig), - New Modules.Clipboard(LogConfig), - New Modules.Controls(LogConfig), - New Modules.User(LogConfig), - New Modules.FileInformation(LogConfig), - New Modules.IDB(LogConfig), - New Modules.Globix.GlobixAutomatic(LogConfig), - New Modules.Globix.GlobixManual(LogConfig) - }) - End Sub - - Public Function ReplaceUserValues(pInput As String, pUser As State.UserState) As String - Try - Logger.Debug("Replacing User Values") - Dim oModule = New Modules.User(LogConfig) - Return oModule.Replace(pInput, pUser) - Catch ex As Exception - Logger.Warn("Error occurred while replacing User Values") - Logger.Error(ex) - Return pInput - End Try - End Function - - Public Function ReplaceFileValues(pInput As String, pFileInfo As FileInfo) As String - Try - Logger.Debug("Replacing File Values") - Dim oModule = New Modules.FileInformation(LogConfig) - Return oModule.Replace(pInput, pFileInfo) - Catch ex As Exception - Logger.Warn("Error occurred while replacing File Values") - Logger.Error(ex) - Return pInput - End Try - End Function - - Public Function ReplaceControlValues(pInput As String, pPanel As Panel) As String - Try - Logger.Debug("Replacing Control Values") - Dim oModule = New Modules.Controls(LogConfig) - Return oModule.Replace(pInput, pPanel) - Catch ex As Exception - Logger.Warn("Error occurred while replacing Control Values") - Logger.Error(ex) - Return pInput - End Try - End Function - - Public Function ReplaceControlValues(pInput As String, pControls As List(Of Control)) As String - Try - Logger.Debug("Replacing Control Values") - Dim oModule = New Modules.Controls(LogConfig) - Return oModule.Replace(pInput, pControls) - Catch ex As Exception - Logger.Warn("Error occurred while replacing Control Values") - Logger.Error(ex) - Return pInput - End Try - End Function - - Public Function ReplaceWindreamValues(pInput As String, pWMObject As WMObject) As String - Try - Logger.Debug("Replacing Windream Values") - Dim oModule = New Modules.Windream(LogConfig) - Return oModule.Replace(pInput, pWMObject) - Catch ex As Exception - Logger.Warn("Error occurred while replacing Windream Values") - Logger.Error(ex) - Return pInput - End Try - End Function - - Public Function ReplaceInternalValues(pInput As String, Optional pClipboardContents As String = "") As String - Logger.Debug("Replacing Internal Values") - Dim oResult = pInput - - Try - Dim oInternal = New Modules.Internal(LogConfig) - Dim oClipboard = New Modules.Clipboard(LogConfig) - - oResult = oInternal.Replace(oResult) - oResult = oClipboard.Replace(oResult, pClipboardContents) - - Return oResult - Catch ex As Exception - Logger.Warn("Error occurred while replacing Internal Values") - Logger.Error(ex) - Return oResult - End Try - End Function - - Public Function ReplaceGlobixValues(pInput As String, pManualIndexes As Dictionary(Of String, List(Of String)), pAutomaticIndexes As Dictionary(Of String, List(Of String))) As String - Logger.Debug("Replacing Globix Values") - Dim oResult = pInput - - Try - Dim oAutomatic = New Modules.Globix.GlobixAutomatic(LogConfig) - Dim oManual = New Modules.Globix.GlobixManual(LogConfig) - - oResult = oAutomatic.Replace(oResult, pAutomaticIndexes) - oResult = oManual.Replace(oResult, pManualIndexes) - - Return oResult - Catch ex As Exception - Logger.Warn("Error occurred while replacing Globix Values") - Logger.Error(ex) - Return oResult - End Try - End Function - -#Region "Helper Functions" - ''' - ''' Wraps a pattern-type and -value in the common format: {#type#value} - ''' - Public Function WrapPatternValue(pType As String, pValue As String) As String - Return New Pattern(pType, pValue).ToString - End Function - - Public Function HasAnyPatterns(input) As Boolean - Return Modules.Any(Function(m) Base.HasPattern(input, m.PatternIdentifier)) - End Function - - Public Function HasComplexPatterns(input As String) As Boolean - Return Modules. - Where(Function(m) m.IsComplex = True). - Any(Function(m) Base.HasPattern(input, m.PatternIdentifier)) - End Function - - Public Function HasOnlySimplePatterns(input As String) As Boolean - Return Not HasComplexPatterns(input) - End Function -#End Region - -End Class \ No newline at end of file diff --git a/Modules.Patterns/app.config b/Modules.Patterns/app.config deleted file mode 100644 index d5fed9f7..00000000 --- a/Modules.Patterns/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Modules.Patterns/packages.config b/Modules.Patterns/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.Patterns/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.Utils/Utils/My Project/Application.Designer.vb b/Modules.Utils/Utils/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c7..00000000 --- a/Modules.Utils/Utils/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Utils/Utils/My Project/Application.myapp b/Modules.Utils/Utils/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Utils/Utils/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Utils/Utils/My Project/AssemblyInfo.vb b/Modules.Utils/Utils/My Project/AssemblyInfo.vb deleted file mode 100644 index 502a463c..00000000 --- a/Modules.Utils/Utils/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.Utils/Utils/My Project/Resources.Designer.vb b/Modules.Utils/Utils/My Project/Resources.Designer.vb deleted file mode 100644 index 6928a731..00000000 --- a/Modules.Utils/Utils/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Utils.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Utils/Utils/My Project/Resources.resx b/Modules.Utils/Utils/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Utils/Utils/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Utils/Utils/My Project/Settings.Designer.vb b/Modules.Utils/Utils/My Project/Settings.Designer.vb deleted file mode 100644 index 9a74dd93..00000000 --- a/Modules.Utils/Utils/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Utils.My.MySettings - Get - Return Global.Utils.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Utils/Utils/My Project/Settings.settings b/Modules.Utils/Utils/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Utils/Utils/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Utils/Utils/Utils.vbproj b/Modules.Utils/Utils/Utils.vbproj deleted file mode 100644 index cff5b3fb..00000000 --- a/Modules.Utils/Utils/Utils.vbproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - - Debug - AnyCPU - {E891AB56-35BC-419E-8254-816A1C6A6661} - Library - Utils - Utils - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - Utils.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - Utils.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - \ No newline at end of file diff --git a/Modules.Utils/Utils/Window.vb b/Modules.Utils/Utils/Window.vb deleted file mode 100644 index b1e01ae6..00000000 --- a/Modules.Utils/Utils/Window.vb +++ /dev/null @@ -1,6 +0,0 @@ -Imports System.Drawing -Imports System.Windows.Forms - -Public Class Window - -End Class diff --git a/Modules.Windream/ConnectionBuilder.vb b/Modules.Windream/ConnectionBuilder.vb deleted file mode 100644 index 17c8def6..00000000 --- a/Modules.Windream/ConnectionBuilder.vb +++ /dev/null @@ -1,118 +0,0 @@ -Imports NLog -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Windream -Imports DigitalData.Modules.Language - -Public Class ConnectionBuilder - Implements IConnectionBuilder - - Private ReadOnly LogConfig As LogConfig - Private SessionReconnect As Boolean = False - Private DriveLetter As String = "W" - Private BasePath As String = BASE_PATH - Private Support64Bit As Boolean = False - Private ServerName As String = Nothing - Private UserName As String = Nothing - Private Password As String = Nothing - Private Domain As String = Nothing - - Private Const BASE_PATH As String = "\\windream\objects" - - Public Sub New(LogConfig As LogConfig) - Me.LogConfig = LogConfig - End Sub - - ''' - ''' Sets flag in Windream class to reconnect on lost connection - ''' - ''' A IConnectionBuilder instance to allow for chaining - Public Function WithSessionReconnect() As IConnectionBuilder Implements IConnectionBuilder.WithSessionReconnect - SessionReconnect = True - Return Me - End Function - - ''' - ''' Sets the drive letter of windream drive, default is "W" - ''' - ''' The drive letter to use - ''' A IConnectionBuilder instance to allow for chaining - Public Function WithDriveLetter(driveLetter As String) As IConnectionBuilder Implements IConnectionBuilder.WithDriveLetter - Me.DriveLetter = driveLetter - BasePath = String.Empty - Return Me - End Function - - ''' - ''' Sets the drive letter to String.Empty, use \\windream\objects as Windream base path - ''' - ''' The windream base path, eg. \\windream\objects - ''' A IConnectionBuilder instance to allow for chaining - Public Function WithWindreamObjects(BasePath As String) As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjects - BasePath = BasePath - DriveLetter = String.Empty - Return Me - End Function - - ''' - ''' Sets the drive letter to String.Empty, use \\windream\objects as Windream base path - ''' - ''' A IConnectionBuilder instance to allow for chaining - Public Function WithWindreamObjects() As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjects - BasePath = BASE_PATH - DriveLetter = String.Empty - Return Me - End Function - - Public Function WithWindreamObjectsOrDriveLetter(BasePath As String, DriveLetter As String) As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjectsOrDriveLetter - If Utils.NotNull(BasePath, Nothing) IsNot Nothing Then - Return WithWindreamObjects(BasePath) - ElseIf Utils.NotNull(DriveLetter, Nothing) IsNot Nothing Then - Return WithDriveLetter(DriveLetter) - Else - Return WithWindreamObjects() - End If - End Function - - ''' - ''' Sets flag in Windream class to indicate 64-bit support - ''' - ''' A IConnectionBuilder instance to allow for chaining - Public Function With64BitSupport() As IConnectionBuilder Implements IConnectionBuilder.With64BitSupport - Support64Bit = True - Return Me - End Function - - ''' - ''' Sets the servername in Windream class, overriding the client setting - ''' - ''' - ''' A IConnectionBuilder instance to allow for chaining - Public Function WithServerName(serverName As String) As IConnectionBuilder Implements IConnectionBuilder.WithServerName - Me.ServerName = serverName - Return Me - End Function - - ''' - ''' Sets the username, password and domain in Windream class, overriding the client settings - ''' - ''' The username used for the connection - ''' The password used for the connection - ''' The domain used for the connection - ''' A IConnectionBuilder instance to allow for chaining - Public Function WithImpersonation(userName As String, password As String, domain As String) As IConnectionBuilder Implements IConnectionBuilder.WithImpersonation - Me.UserName = userName - Me.Password = password - Me.Domain = domain - Return Me - End Function - - ''' - ''' Creates a connection. - ''' - ''' If there was an error while establishing the connection - ''' A Windream Object - Public Function Connect() As Windream Implements IConnectionBuilder.Connect - Return New Windream(LogConfig, SessionReconnect, DriveLetter, BasePath, Support64Bit, ServerName, UserName, Password, Domain) - End Function - -End Class diff --git a/Modules.Windream/Constants.vb b/Modules.Windream/Constants.vb deleted file mode 100644 index 228533c9..00000000 --- a/Modules.Windream/Constants.vb +++ /dev/null @@ -1,67 +0,0 @@ -Public Class Constants - ' Primitive Types - Public Const INDEX_TYPE_UNDEFINED = 0 - Public Const INDEX_TYPE_STRING = 1 - Public Const INDEX_TYPE_INTEGER = 2 - Public Const INDEX_TYPE_FLOAT = 3 - Public Const INDEX_TYPE_BOOLEAN = 4 - Public Const INDEX_TYPE_DATE = 5 - Public Const INDEX_TYPE_FIXED_POINT = 6 - Public Const INDEX_TYPE_DATE_TIME = 7 - Public Const INDEX_TYPE_CURRENCY = 8 - Public Const INDEX_TYPE_TIME = 9 - Public Const INDEX_TYPE_VARIANT = 10 - - ' Vector Types - Public Const INDEX_TYPE_VECTOR_STRING = 4097 - Public Const INDEX_TYPE_VECTOR_INTEGER = 4098 - Public Const INDEX_TYPE_VECTOR_FLOAT = 4099 - Public Const INDEX_TYPE_VECTOR_BOOLEAN = 4100 - Public Const INDEX_TYPE_VECTOR_DATE = 4101 - Public Const INDEX_TYPE_VECTOR_FIXED_POINT = 4102 - Public Const INDEX_TYPE_VECTOR_DATE_TIME = 4103 - Public Const INDEX_TYPE_VECTOR_CURRENCY = 4014 - Public Const INDEX_TYPE_VECTOR_TIME = 4105 - Public Const INDEX_TYPE_VECTOR_INTEGER_64BIT = 4107 - - ' Special Types - Public Const INDEX_TYPE_FULLTEXT = 8193 - Public Const INDEX_TYPE_HASH = 36865 - - ' Misc Types / Unknown Types - Public Const INDEX_TYPE_MASK = &HFFF - Public Const INDEX_FLAG_MASK = &HFFFFF000 - Public Const INDEX_TYPE_VECTOR = &H1000 - Public Const INDEX_TYPE_DEFAULT_VALUE = &H4000 - 'Single Index Types - Public Const WMObjectVariableValueTypeUndefined = 0 - - 'History Tags - Public Const HISTORY_NEW_FROM_VERSION = "HISTORY_New_From_Version" - Public Const HISTORY_USER_DEFINED = "HISTORY_User_Defined" - - ' Entity Types - Public Const ENTITY_TYPE_OBJECTTYPE = 10 - - 'Search Types - Public Const SEARCH_TYPE_QUICK_SEARCH = "WMOSRCH.WMQUICKSEARCH" - Public Const SEARCH_TYPE_INDEX_SEARCH = "WMOSRCH.WMINDEXSEARCH" - Public Const SEARCH_TYPE_OBJECTTYPE_SEARCH = "WMOSRCH.WMOBJECTTYPESEARCH" - - ' Attribute Types - Public Const ATTRIBUTE_TYPE_SYSTEMINDEX = 1 - Public Const ATTRIBUTE_TYPE_TYPEINDEX = 2 - - ' Misc - Public Const OBJECT_TYPE_DEFAULT = "Standard" - - ' File Stream - Public Const STREAM_BINARY_OBJECT = "BinaryObject" - Public Const STREAM_OPEN_MODE_READ_WRITE = 2 - - ' COM Events - Public Const COM_EVENT_SESSION_NEED_INDEX = 1 - - ' Regexes - Public Const REGEX_CLEAN_FILENAME As String = "[?*^""<>|]" -End Class diff --git a/Modules.Windream/DDWindream.zip b/Modules.Windream/DDWindream.zip deleted file mode 100644 index eea90865..00000000 Binary files a/Modules.Windream/DDWindream.zip and /dev/null differ diff --git a/Modules.Windream/Exceptions.vb b/Modules.Windream/Exceptions.vb deleted file mode 100644 index 3add4c21..00000000 --- a/Modules.Windream/Exceptions.vb +++ /dev/null @@ -1,19 +0,0 @@ -Imports System.Runtime.InteropServices - -Public Class Exceptions - Public Class SessionException - Inherits ApplicationException - - Public Sub New() - MyBase.New() - End Sub - - Public Sub New(message As String) - MyBase.New(message) - End Sub - - Public Sub New(message As String, innerException As Exception) - MyBase.New(message, innerException) - End Sub - End Class -End Class diff --git a/Modules.Windream/Helpers.vb b/Modules.Windream/Helpers.vb deleted file mode 100644 index 82770bb1..00000000 --- a/Modules.Windream/Helpers.vb +++ /dev/null @@ -1,112 +0,0 @@ -Imports System.Text.RegularExpressions -Imports DigitalData.Modules.Windream.Constants - -Public Class Helpers - Private Shared ReadOnly VectorIndicies As New List(Of Integer) From { - INDEX_TYPE_VECTOR_BOOLEAN, - INDEX_TYPE_VECTOR_CURRENCY, - INDEX_TYPE_VECTOR_DATE, - INDEX_TYPE_VECTOR_DATE_TIME, - INDEX_TYPE_VECTOR_FIXED_POINT, - INDEX_TYPE_VECTOR_FLOAT, - INDEX_TYPE_VECTOR_INTEGER, - INDEX_TYPE_VECTOR_INTEGER_64BIT, - INDEX_TYPE_VECTOR_STRING, - INDEX_TYPE_VECTOR_TIME - } - - Friend Shared Function ConvertVectorType(pIndexType As Integer, pValue As String) - Dim myArray - ReDim myArray(0) - Select Case pIndexType - Case INDEX_TYPE_HASH ' 36865 - 'Umwandeln in String - myArray(0) = CStr(pValue) - Return myArray - Case INDEX_TYPE_VECTOR_STRING '4097 - 'Umwandeln in String - myArray(0) = CStr(pValue) - Return myArray - Case INDEX_TYPE_VECTOR_INTEGER '4098 - 'Umwandeln in Integer - myArray(0) = CInt(pValue.Replace(" ", "")) - Return myArray - Case INDEX_TYPE_VECTOR_FLOAT '4099 - pValue = pValue. - Replace(" ", ""). - Replace(".", ",") - 'Umwandeln in Double - myArray(0) = CDbl(pValue) - Return myArray - Case INDEX_TYPE_VECTOR_BOOLEAN '4100 - 'Umwandeln in Boolean - myArray(0) = CBool(pValue) - Return myArray - Case INDEX_TYPE_VECTOR_DATE '4101 - 'Umwandeln in Date - myArray(0) = CDate(pValue) - Return myArray - Case INDEX_TYPE_VECTOR_INTEGER_64BIT '4107 - myArray(0) = Convert.ToInt64(pValue) - Return myArray - Case INDEX_TYPE_VECTOR_DATE_TIME '4103 - 'Umwandeln in Datum Uhrzeit - Return pValue - Case 8204 - 'Umwandeln in Integer - myArray(0) = CInt(pValue.Replace(" ", "")) - Return myArray - Case Else - 'Umwandeln in String - myArray(0) = CStr(pValue) - Return myArray - End Select - End Function - - Friend Shared Function ConvertIndexValue(Type As Integer, Value As String) As Object - ' Leerzeichen an Anfang und Ende entfernen - Value = Value.Trim() - - Select Case Type - Case INDEX_TYPE_HASH - Return Value - Case INDEX_TYPE_STRING - Return Value - Case INDEX_TYPE_VECTOR_STRING - Return Value - Case INDEX_TYPE_INTEGER - Value = Value.Replace(" ", String.Empty) - Return Convert.ToInt32(Value) - Case INDEX_TYPE_VECTOR_INTEGER - Value = Value.Replace(" ", String.Empty) - Return Convert.ToInt32(Value) - Case INDEX_TYPE_VECTOR_INTEGER_64BIT - Value = Value.Replace(" ", String.Empty) - Return Convert.ToInt64(Value) - Case INDEX_TYPE_VECTOR_BOOLEAN - Return Convert.ToBoolean(Value) - Case INDEX_TYPE_BOOLEAN - Return Convert.ToBoolean(Value) - Case INDEX_TYPE_DATE - Return Convert.ToDateTime(Value) - Case INDEX_TYPE_DATE_TIME - Return Convert.ToDateTime(Value) - Case INDEX_TYPE_TIME - Return Convert.ToDateTime(Value) - Case INDEX_TYPE_VECTOR_DATE_TIME - Return Convert.ToDateTime(Value) - Case INDEX_TYPE_VECTOR_DATE - Return Convert.ToDateTime(Value) - Case INDEX_TYPE_FLOAT - Return Convert.ToDouble(Value) - Case INDEX_TYPE_VECTOR_FLOAT - Return Convert.ToDouble(Value) - Case Else - Return Value - End Select - End Function - - Friend Shared Function IsVectorIndex(indexType As Integer) - Return VectorIndicies.Contains(indexType) - End Function -End Class diff --git a/Modules.Windream/IConnectionBuilder.vb b/Modules.Windream/IConnectionBuilder.vb deleted file mode 100644 index 236843b1..00000000 --- a/Modules.Windream/IConnectionBuilder.vb +++ /dev/null @@ -1,11 +0,0 @@ -Public Interface IConnectionBuilder - Function WithSessionReconnect() As IConnectionBuilder - Function WithDriveLetter(driveLetter As String) As IConnectionBuilder - Function WithWindreamObjects() As IConnectionBuilder - Function WithWindreamObjects(BasePath As String) As IConnectionBuilder - Function WithWindreamObjectsOrDriveLetter(BasePath As String, DriveLetter As String) As IConnectionBuilder - Function With64BitSupport() As IConnectionBuilder - Function WithServerName(serverName As String) As IConnectionBuilder - Function WithImpersonation(userName As String, password As String, domain As String) As IConnectionBuilder - Function Connect() As Windream -End Interface diff --git a/Modules.Windream/My Project/Application.Designer.vb b/Modules.Windream/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.Windream/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.Windream/My Project/Application.myapp b/Modules.Windream/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.Windream/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.Windream/My Project/Resources.Designer.vb b/Modules.Windream/My Project/Resources.Designer.vb deleted file mode 100644 index e5304217..00000000 --- a/Modules.Windream/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Windream.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.Windream/My Project/Resources.resx b/Modules.Windream/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.Windream/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.Windream/My Project/Settings.Designer.vb b/Modules.Windream/My Project/Settings.Designer.vb deleted file mode 100644 index fca08ef3..00000000 --- a/Modules.Windream/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Windream.My.MySettings - Get - Return Global.DigitalData.Modules.Windream.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.Windream/My Project/Settings.settings b/Modules.Windream/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.Windream/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.Windream/Windream.vbproj b/Modules.Windream/Windream.vbproj deleted file mode 100644 index b9ded2b2..00000000 --- a/Modules.Windream/Windream.vbproj +++ /dev/null @@ -1,160 +0,0 @@ - - - - - Debug - AnyCPU - {4C86DF8F-A280-40D4-85B0-10B1BF66C15C} - Library - DigitalData.Modules.Windream - DigitalData.Modules.Windream - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Windream.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Windream.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll - False - - - P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMCNNCTDLLLib.dll - True - - - P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOSRCHLib.dll - True - - - P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll - True - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - {25B51999-6DCA-11D4-B815-00104BB52DEA} - 1 - 0 - 0 - tlbimp - False - True - - - - \ No newline at end of file diff --git a/Modules.Windream/Windream_alt.vb b/Modules.Windream/Windream_alt.vb deleted file mode 100644 index 14e77697..00000000 --- a/Modules.Windream/Windream_alt.vb +++ /dev/null @@ -1,1214 +0,0 @@ -Imports WINDREAMLib -Imports WINDREAMLib.WMCOMEvent -Imports WINDREAMLib.WMEntity -Imports WINDREAMLib.WMObjectEditMode -Imports WINDREAMLib.WMSearchOperator -Imports WINDREAMLib.WMSearchRelation -Imports WMOBRWSLib -Imports WMOSRCHLib -Imports WMCNNCTDLLLib -Imports WMOTOOLLib -Public Class Windream_alt - Inherits Constants -#Region "+++++ Variables +++++" - Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger - - Private ServerBrowser As IServerBrowser - - Private CurrentController As WMOSearchController - Private CurrentSession As WMSession - Private CurrentConnect As WMConnect - Private CurrentServer As String - Private CurrentObjecttypes As WMObjects - - Public ReadOnly Property ReconnectSession As Boolean - Public ReadOnly Property DriveLetter As String - Public ReadOnly Property Support64Bit As Boolean - Public Property LoggedInSession As Boolean = False -#End Region -#Region "+++++ Init +++++" - ''' - ''' Initializes windream and creates a windream session with the actual user - ''' - ''' - Public Sub New( - Optional DriveLetter As String = "W", - Optional ReconnectSession As Boolean = False, - Optional Support64Bit As Boolean = False, - Optional ServerName As String = Nothing, - Optional UserName As String = Nothing, - Optional UserPass As String = Nothing, - Optional UserDomain As String = Nothing - ) - Try - Me.DriveLetter = DriveLetter - Me.ReconnectSession = ReconnectSession - Me.Support64Bit = Support64Bit - - Dim session As WMSession = NewSession(ServerName, UserName, UserPass, UserDomain) - - If session Is Nothing Then - Throw New Exception("Login failed") - End If - - CurrentSession = session - CurrentServer = ServerName - CurrentObjecttypes = GetObjectTypes() - - Catch ex As Exception - Logger.Error(ex) - End Try - End Sub - - Public Function NewSession(Optional serverName As String = Nothing) As WMSession - Dim browser As ServerBrowser - Dim connect As WMConnect - Dim session As WMSession - Dim credentials As WMUserIdentity - - Try - browser = New ServerBrowser() - connect = New WMConnect() - Logger.Info("Successfully created windream objects") - Catch ex As Exception - Logger.Error(ex, "Error while creating windream objects") - Return Nothing - End Try - - Try - If serverName Is Nothing OrElse serverName.Length = 0 Then - serverName = browser.GetCurrentServer() - End If - Catch ex As Exception - Logger.Error(ex, "Error while getting current server") - Return Nothing - End Try - - Try - credentials = New WMUserIdentity() With { - .aServerName = serverName - } - Catch ex As Exception - Logger.Error(ex, "Error while creating user identity") - Return Nothing - End Try - - Try - session = connect.Login(credentials) - 'LoggedInSession = True - CurrentServer = serverName - - Return session - Catch ex As Exception - Logger.Error(ex, "Error while logging in") - Return Nothing - End Try - End Function - - Public Function NewSession(Optional serverName As String = Nothing, Optional userName As String = Nothing, Optional password As String = Nothing, Optional domain As String = Nothing) As WMSession - Dim browser As ServerBrowser - Dim connect As WMConnect - Dim session As WMSession - Dim credentials As WMUserIdentity - - Dim impersonation As Boolean - Dim serverNameFromClient As Boolean - - Try - browser = New ServerBrowser() - connect = New WMConnect() - Logger.Info("Successfully created windream objects") - Catch ex As Exception - Logger.Error(ex, "Error while creating windream objects") - Return Nothing - End Try - - ' If no server was supplied, try to get the current server set in the client - Try - If serverName Is Nothing OrElse serverName.Length = 0 Then - serverName = browser.GetCurrentServer - serverNameFromClient = True - Else - serverNameFromClient = False - End If - Catch ex As Exception - Logger.Error(ex, "Error while getting Servername") - Return Nothing - End Try - - Logger.Info("Servername: {0}", serverName) - Logger.Info("Servername aquired from client: {0}", serverNameFromClient) - - 'TODO: Test connection to windream server - - ' If username, password and domain are set, login with impersonation - ' Else, login with current credentials - If userName IsNot Nothing And password IsNot Nothing And domain IsNot Nothing Then - impersonation = True - credentials = New WMUserIdentity() With { - .aServerName = serverName, - .aUserName = userName, - .aPassword = password, - .aDomain = domain - } - - connect.ModuleId = 9 - - Logger.Info("Impersonated Login: True") - Logger.Info("Username: {0}", userName) - Logger.Info("Domain: {0}", domain) - Else - impersonation = False - credentials = New WMUserIdentity() With { - .aServerName = serverName - } - - Logger.Info("Impersonated Login: False") - Logger.Info("Username: {0}", Environment.UserName) - Logger.Info("Domain: {0}", Environment.UserDomainName) - End If - - Try - session = connect.Login(credentials) - Catch ex As Exception - Logger.Error(ex, "Error while logging in") - Return Nothing - End Try - - Try - ' Standardmässig hinterlegen dass abgelegte Dateien keine Indexmaske öffnet - session.SwitchEvents(WMCOMEventWMSessionNeedIndex, False) - Catch ex As Exception - Logger.Error(ex, "Could not SwitchEvents") - Return Nothing - End Try - - If session.aLoggedin = False Then - Logger.Warn("Session created but user {0} could not be logged in", Environment.UserName) - Return Nothing - End If - - Return session - End Function - - - Private Function GetObjectTypes() As WMObjects - Dim objectTypes As WMObjects - - Try - objectTypes = CurrentSession.GetWMObjectTypes(WMEntityDocument) - Return objectTypes - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - ''' - ''' Returns all Objecttypes of current server as list of strings - ''' - ''' List of String of all objecttypes - ''' - Public Function GetObjecttypeNames() As List(Of String) - Dim objectTypes As New List(Of String) - - Try - For i As Integer = 0 To CurrentObjecttypes.Count - objectTypes.Add(CurrentObjecttypes.Item(i).aName) - Next - Return objectTypes - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - Private Function NormalizePath(path As String) - Dim normalizedPath = path - - If Not path.StartsWith("\") And path.ToUpper().StartsWith(DriveLetter.ToUpper) Then - normalizedPath = path.Substring(2) - End If - - Return normalizedPath - End Function - - - ''' - ''' Creates a windream session with the current user and the current server - ''' - ''' Returns true when created, false if not - ''' - 'Public Function NewSession() As Boolean - ' Try - ' ServerBrowser = New ServerBrowser() - ' CurrentServer = ServerBrowser.GetCurrentServer - ' Catch ex As Exception - ' Logger.Error(ex, "Could not create ServerBrowser") - ' Return False - ' End Try - - ' Try - ' ' Create Connect Object for Session - ' CurrentConnect = New WMConnect - ' Catch ex As Exception - ' Logger.Error(ex, "Could not create WMConnect") - ' Return False - ' End Try - - ' Try - ' ' Create session object with severname set - ' CurrentSession = CreateObject("Windream.WMSession", ServerBrowser.GetCurrentServer) - ' Catch ex As Exception - ' Logger.Error(ex, "Could not create WMConnect") - ' Return False - ' End Try - - ' Try - ' CurrentConnect.LoginSession(CurrentSession) - ' LoggedInSession = True - ' Catch ex As Exception - ' Logger.Error(ex, "Could not login session") - ' Return False - ' End Try - - ' Try - ' ' Standardmässig hinterlegen dass abgelegte Dateien keine Indexmaske öffnet - ' CurrentSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False) - ' Catch ex As Exception - ' Logger.Error(ex, "Could not SwitchEvents") - ' Return False - ' End Try - - ' If TestLoggedInSession() = False Then - ' Logger.Warn("Session created but user {0} could not be logged in", Environment.UserName) - ' Return False - ' End If - - ' Return True - 'End Function -#End Region -#Region "+++++ New +++++" - ''' - ''' Creates a folder in windream. All folder-parts will be checked - ''' - ''' full path of new folder - ''' Returns true when folder was created, false if not - ''' - Public Function NewFolder(ByVal folderpath As String) - Try - If TestLoggedInSession() = False Then - Return False - End If - folderpath = NormalizePath(folderpath) - Dim folders() As String = folderpath.Split("\") - For Each folder As String In folders - Dim WMObject As WINDREAMLib.WMObject - If TestFolderExists(folder) = False Then - Try - WMObject = CurrentSession.GetNewWMObjectFS(WMEntityFolder, folder, WMObjectEditModeNoEdit) - Catch ex As Exception - Logger.Error(ex) - 'clsLogger.Add("Could not create WMObject for folderpath '" & folder & "': " & ex.Message, True) - Return False - End Try - - End If - Next - Return True - Catch ex As Exception - Logger.Error(ex) - 'clsLogger.Add("Unexpected error in NewFolder: " & ex.Message, True) - Return False - End Try - End Function - ''' - ''' Indexes the file with the given values - ''' - ''' full filepath - ''' Name of the index - ''' values as array - ''' Returns true when folder was created, false if not - ''' - Public Function NewIndexFile(WMFile As String, ByVal indexname As String, ByVal aValues() As String) As Boolean - If TestLoggedInSession() = False Then - Return False - End If - Dim oWMFile As WMObject = GetWMObjectForFile(WMFile) - If IsNothing(oWMFile) Then - Return False - End If - Dim vektInsState As Integer = 1 - Try - If Not oWMFile.aLocked Then - oWMFile.lock() - Else - Logger.Info("WMDoc is locked already!") - Return False - End If - - - If aValues.Length = 1 And aValues(0) = "" Then - Logger.Info("Indexvalue is empty - No indexing") - - Return False - End If - Logger.Info("Indexing of index '" & indexname) - - Dim oWMType - Try - ' das entsprechende Attribut aus windream auslesen - Dim oAttribute = CurrentSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname) - ' den Variablentyp (String, Integer, ...) auslesen - oWMType = oAttribute.GetVariableValue("dwAttrType") - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - - ' wenn in aValues an Position i ein Wert steht - Dim i As Integer = 0 - Dim value = aValues(i) - - Dim oWMValueConverted = Nothing - - Dim vektor As Boolean = False - 'Den Typ des Index-Feldes auslesen - Logger.Info("type of windreamIndex: " & oWMType.ToString) - Select Case (oWMType) - - Case INDEX_TYPE_STRING - oWMValueConverted = CStr(value) - Case INDEX_TYPE_INTEGER - value = value.ToString.Replace(" ", "") - value = value.ToString.Replace(" ", "") - oWMValueConverted = CInt(value) - Case INDEX_TYPE_FLOAT - value = value.ToString.Replace(" ", "") - oWMValueConverted = CDbl(value) - Case INDEX_TYPE_FIXED_POINT - value = value.ToString.Replace(" ", "") - oWMValueConverted = CDbl(value) - Case INDEX_TYPE_BOOLEAN - oWMValueConverted = CBool(value) - Case INDEX_TYPE_DATE - 'Dim _date As Date = value - oWMValueConverted = value - Case INDEX_TYPE_TIME - oWMValueConverted = CDbl(value) - Case INDEX_TYPE_CURRENCY - 'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden - Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(value)) - oWMValueConverted = aValueWrapper - Case INDEX_TYPE_TIME - 'If ((value)) Then - ' oWMValueConverted = CDate(value) - 'Else - ' oWMValueConverted = "" - 'End If - 'Dim _date As Date = value - oWMValueConverted = oWMValueConverted '*_date.ToShortTimeString - Case INDEX_TYPE_FLOAT - oWMValueConverted = CStr(value) - Case INDEX_TYPE_VARIANT - - oWMValueConverted = CStr(value) - Case INDEX_TYPE_FULLTEXT - oWMValueConverted = CStr(value) - Case 4097 - 'Vektor alphanumerisch - vektor = True - Case 4098 - 'Vektor Numerisch - vektor = True - Case 4099 - 'Vektor Kommazahl - vektor = True - Case 4100 - 'Vektor Kommazahl - vektor = True - Case 4101 - 'Vektor Kommazahl - vektor = True - Case 4103 - 'Vektor DateTime - vektor = True - Case 4107 - vektor = True - Case 36865 - 'Vektor Kommazahl - vektor = True - Case Else - oWMValueConverted = "" - End Select - If vektor = False Then - If oWMValueConverted.ToString Is Nothing = False Then - Logger.Info("Converted value is: " & oWMValueConverted.ToString) - End If - End If - '############################################################################################ - '####################### Der eigentliche Indexierungsvorgang ################################ - '############################################################################################ - If vektor = False Then - Try - If oWMValueConverted.ToString Is Nothing = False Then - Logger.Info("Now: oWMFile.SetVariableValue(" & indexname & ", " & oWMValueConverted & ")") - oWMFile.SetVariableValue(indexname, oWMValueConverted) - 'Die Datei speichern - oWMFile.Save() - Logger.Info("Index has been written!") - Else - Logger.Info("No indexvalue exists!") - End If - Catch ex As Exception - Logger.Error(ex) - oWMFile.Save() - oWMFile.unlock() - Return False - End Try - - Else - Logger.Info("Vectorfield: Preparing of Array!") - Dim myArray() - Dim Anzahl As Integer = aValues.Length - 'Vektorfeld wird mit EINEM Wert gefüllt - If Anzahl = 1 Then - Logger.Info("Vectorfield will be filled with ONE VALUE!") - ReDim myArray(0) - myArray(0) = Helpers.ConvertVectorType(oWMType, value) - 'Jetzt überprüfen ob Werte in Vektorfeld angefügt oder überschrieben werden sollen - Logger.Info("Converted Value: " & myArray(0).ToString) - Dim VektorArray() - VektorArray = Return_VektorArray(oWMFile, indexname, myArray, oWMType) - If VektorArray Is Nothing = False Then - ReDim myArray(VektorArray.Length - 1) - Array.Copy(VektorArray, myArray, VektorArray.Length) - 'Jetzt die Nachindexierung - oWMFile.SetVariableValue(indexname, myArray) ' - Logger.Info("Vectorindex has been written!") - 'Die Änderungen festsschreiben/speichern - oWMFile.Save() - End If - - End If - - End If - i += 1 - - oWMFile.unlock() - Logger.Info("...and unlock") - Return True - Catch ex As Exception - Logger.Error(ex) - oWMFile.Save() - oWMFile.unlock() - Return False - End Try - End Function - Private Function NewLockWMFile(oWMFile As WMObject) As Boolean - Try - oWMFile.lock() - Return True - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function - ''' - ''' Sets the folder-objecttype. - ''' - ''' full path of folder - ''' Obcjectype Name - ''' Returns true when Otype was set, false if not - ''' - Public Function NewObjecttypeForFolder(folderpath As String, folderObjecttype As String) As Boolean - Try - If TestLoggedInSession() = False Then - Return False - End If - Dim result As Boolean = False - Dim WMFolder As WINDREAMLib.WMObject - folderpath = NormalizePath(folderpath) - - If TestFolderExists(folderpath) = True Then - WMFolder = CurrentSession.GetWMObjectByPath(WMEntityFolder, folderpath) - Try - ' die Datei sperren - WMFolder.lock() - Catch ex As Exception - ' nichts tun (Datei ist bereits gesperrt) - End Try - - ' wenn der Datei noch kein Dokumenttyp zugewiesen wurde - If WMFolder.aObjectType.aName = "Standard" Then - - ' ihr den entsprechenden Dokumenttyp zuweisen - WMFolder.aObjectType = CurrentSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, folderObjecttype) - ' WMObject.aObjectType = Me.selectedProfile.Dokumenttyp - Logger.Info("Objecttype has been set") - result = True - Else - If WMFolder.aObjectType.aName <> "Standard" Then - Logger.Warn("An Objecttype has already been set!") - End If - End If - - Try - WMFolder.Save() - Catch ex As Exception - ' wenn es einen Fehler beim speichern gab, dann konnte auch kein Dokumenttyp gesetzt werden -> es kann also auch keine - ' Indexierung stattfinden und die Indexierung muss nicht fortgesetzt werden - Return False - End Try - - Try - WMFolder.unlock() - Catch ex As Exception - ' wenn das entsperren nicht geklappt hat, dann war die Datei auch nicht gesperrt - End Try - End If - Return result - - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function - ''' - ''' Creates a new version of the file - ''' - ''' full path to the file - ''' Comment - ''' Returns true when version was created, false if not - ''' - Public Function NewVersion(ByVal WMPath As String, ByVal Comment As String) - Try - If TestLoggedInSession() = False Then - Return False - End If - WMPath = NormalizePath(WMPath) - - Dim WMObject As WMObject '= CreateObject("WINDREAMLib.WMObject") 'New WINDREAMLib.WMObject - Try - WMObject = CurrentSession.GetWMObjectByPath(WMEntityDocument, WMPath) 'WINDREAMLib.WMEntity.WMEntityDocument - Catch ex As Exception - Logger.Warn("Could not create WMObject in Create_Version for file '" & WMPath & "': " & ex.Message) - Return False - End Try - WMObject.CreateVersion2(False, "HISTORY_New_From_Version", Comment) - Return True - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function -#End Region -#Region "+++++ Get +++++" - ''' - ''' Returns all choicelists - ''' - ''' Choicelists as List of Strings or empty list if no choice lists are found - Public Function GetChoiceLists() As List(Of String) - Dim items As New List(Of String) - - If TestLoggedInSession() = False Then - Return items - End If - - Try - Dim choiceLists As WMObjects - Dim choiceList As IWMObject2 - 'load list of choicelists - choiceLists = CurrentSession.GetAllObjects(WMEntityChoiceList) - - For Each choiceList In choiceLists - items.Add(choiceList.aName) - Next - - Return items - Catch ex As Exception - Logger.Error(ex) - Return items - End Try - End Function - - ''' - ''' Returns all indices for an objecttype - ''' - ''' Name of objecttype - ''' Names of indices as list of String - ''' - Public Function GetIndicesByObjecttype(ByVal ObjecttypeName As String) As List(Of String) - Try - If TestLoggedInSession() = False Then - Return Nothing - End If - - Dim oObjectType As WMObject - Dim oIndexAttributes As WMObjectRelation - Dim oIndexAttribute As WMObject - Dim oIndex As WMObject - Dim oRelProperties As WMObjectRelation - ' den Objekttyp laden - oObjectType = CurrentSession.GetWMObjectByName(WMEntityObjectType, ObjecttypeName) - - ' Beziehung zu Indizes des Objekttyp auslesen - oIndexAttributes = oObjectType.GetWMObjectRelationByName("TypeAttributes") - - ' Array für Indizes vorbereiten - 'Dim aIndexNames(oIndexAttributes.Count - 1) As String - Dim indexNames As New List(Of String) - ' alle Indizes durchlaufen - For j As Integer = 0 To oIndexAttributes.Count - 1 - ' aktuellen Index auslesen - oIndexAttribute = oIndexAttributes.Item(j) - - ' Eigenschaften des Index auslesen - oRelProperties = oIndexAttribute.GetWMObjectRelationByName("Attribute") - - ' Index aus den Eigenschaften auslesen - oIndex = oRelProperties.Item(0) - - ' Indexname speichern - 'aIndexNames(j) = oIndex.aName - indexNames.Add(oIndex.aName) - Next - - ' Indexarray zurückgeben - 'Return aIndexNames - Return indexNames - - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function - - ''' - ''' Returns all items of a choicelist - ''' - ''' name of choicelist - ''' Items as list of String - ''' - Public Function GetChoicelistItems(ByVal NameChoicelist As String) As List(Of String) - Dim items As New List(Of String) - - If TestLoggedInSession() = False Then - Return Nothing - End If - - Dim choiceList As WMObject - - ' Try to get the choicelist first and abort if an error occurs - Try - Dim session As IWMSession2 = DirectCast(CurrentSession, IWMSession2) - choiceList = session.GetWMObjectByName(WMEntityChoiceList, NameChoicelist) - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - - ' Try to get choicelist items - Try - Dim values As Object = choiceList.GetVariableValue("vItems") - - ' If values is nothing, the list is empty - If values Is Nothing Then - Return items - End If - - For Each value In values - items.Add(value) - Next - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - - Return items - End Function - - ''' - ''' Returns the result of windream-search - ''' - ''' filepath of windreamSearch-file - ''' Name of the Docid Index - ''' Returns datatable - ''' - Public Function GetSearchDocuments(ByVal wdfLocation As String, NameIndexDocID As String) As DataTable - Dim dtresult As New DataTable - dtresult.Columns.Add("DOC_ID", GetType(Integer)) - dtresult.Columns.Add("PATH", GetType(String)) - If TestLoggedInSession() = False Then - Return dtresult - End If - If TestWMFileExists(wdfLocation) = False Then - Return dtresult - End If - Try - Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1) - Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length) - - CurrentController = New WMOSearchController - CurrentController.CheckSearchProfile(wdfLocation.ToLower) - Dim suchTyp = CurrentController.SearchProfileTargetProgID - Dim ExSettings As Object - Dim oSearch As Object - ExSettings = CurrentController.SearchProfileExSettings - If ExSettings = 0 Then ExSettings = 7 - - Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch") - Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch") - Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch") - Dim suchTyp1 = suchTyp.ToString.ToUpper - '' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments() - Select Case suchTyp.ToString.ToUpper - Case "WMOSRCH.WMQUICKSEARCH" - srchQuick.WMSession = CreateObject("Windream.WMSession", CurrentServer) - - CurrentConnect.LoginSession(srchQuick.WMSession) - - srchQuick.ClearSearch() - srchQuick.SearchProfilePath = ProfilePath - srchQuick.LoadSearchProfile(ProfileName) - - oSearch = srchQuick.GetSearch() - - Case "WMOSRCH.WMINDEXSEARCH" - srchIndex.WMSession = CreateObject("Windream.WMSession", CurrentServer) - - CurrentConnect.LoginSession(srchIndex.WMSession) - - srchIndex.ClearSearch() - srchIndex.SearchProfilePath = ProfilePath - srchIndex.LoadSearchProfile(ProfileName) - - oSearch = srchIndex.GetSearch() - - Case "WMOSRCH.WMOBJECTTYPESEARCH" - srchObjectType.WMSession = CreateObject("Windream.WMSession", CurrentServer) - - CurrentConnect.LoginSession(srchObjectType.WMSession) - - srchObjectType.ClearSearch() - srchObjectType.SearchProfilePath = ProfilePath - srchObjectType.LoadSearchProfile(ProfileName) - - oSearch = srchObjectType.GetSearch() - - Case Else - Logger.Warn("No valid WM-SearchType") - Return dtresult - End Select - Dim WMObjects As Object - WMObjects = oSearch.Execute - 'If returnDT = True Then - If WMObjects.Count > 0 Then - - For Each dok As WMObject In WMObjects - Dim path As String = dok.aPath - Dim DOC_ID = dok.GetVariableValue(NameIndexDocID) - Logger.Info("Adding DocInfo for DocID: " & DOC_ID.ToString) - dtresult.Rows.Add(DOC_ID, path) - - Next - dtresult.AcceptChanges() - End If - Return dtresult - Catch ex As Exception - Logger.Error(ex) - Return dtresult - End Try - End Function - ''' - ''' Returns a windream-type as Integer. - ''' - ''' Name of indexfield - ''' Returns integer, which describes the type - ''' - Public Function GetTypeOfIndexAsInt(ByVal indexname As String) As Integer - Try - If TestLoggedInSession() = False Then - Return False - End If - Dim oAttribute = CurrentSession.GetWMObjectByName(WMEntityAttribute, indexname) - Dim vType = oAttribute.GetVariableValue("dwAttrType") - Return vType - Catch ex As Exception - Return Nothing - End Try - End Function - ''' - ''' Returns the value(s) for an index as a datatable - ''' - ''' filepath of windream-file - ''' Name of the index - ''' Datatable - ''' - Public Function GetValueforIndex(ByVal WMFile As String, ByVal NameIndex As String) As DataTable - Dim dt As New DataTable - dt.Columns.Add("RESULT", GetType(String)) - If TestLoggedInSession() = False Then - Return dt - End If - Try - - If Not WMFile.StartsWith("\") And WMFile.ToUpper.StartsWith(DriveLetter.ToUpper) Then - WMFile = WMFile.Substring(2) - End If - Dim WMObject As WINDREAMLib.WMObject '= CreateObject("WINDREAMLib.WMObject") 'New WINDREAMLib.WMObject - Try - WMObject = CurrentSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WMFile) 'WINDREAMLib.WMEntity.WMEntityDocument - Catch ex As Exception - Logger.Error(ex) - Return dt - End Try - - Dim result = WMObject.GetVariableValue(NameIndex) - If IsNothing(result) Then - Return Nothing - Else - If result.GetType.ToString.Contains("System.Object") Then - For Each val As String In result - dt.Rows.Add(val) - Next - dt.AcceptChanges() - Else - dt.Rows.Add(result) - End If - End If - Return dt - Catch ex As Exception - Logger.Error(ex) - Return dt - End Try - End Function - ''' - ''' Returns the values for a vektorfield plus the new ones - ''' - ''' windream-file as Object - ''' Name of the index - ''' Returns value as Datatable - ''' - Public Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, arrIndexwerte As Object, vType As Object) - Try - If TestLoggedInSession() = False Then - Return False - End If - Dim missing As Boolean = False - Dim valueCount As Integer = 0 - Dim ValueArray() = Nothing - 'Jeden Wert des Vektorfeldes durchlaufen - Dim DT_RESULT = GetValueforIndex(oDocument.aPath, vktIndexName) - If DT_RESULT.Rows.Count > 0 Then - 'Erst die aktuellen Werte speichern und schreiben - For Each row As DataRow In DT_RESULT.Rows - - ReDim Preserve ValueArray(valueCount) - 'Den Wert im Array speichern - ValueArray(valueCount) = Helpers.ConvertVectorType(vType, row.Item(0)) - valueCount += 1 - Next - 'Jetzt die Neuen Werte auf Duplikate überprüfen - For Each NewValue As Object In arrIndexwerte - If NewValue Is Nothing = False Then - If ValueArray.Contains(NewValue) = False Then - 'Das Array anpassen - ReDim Preserve ValueArray(valueCount) - 'Den Wert im Array speichern - ValueArray(valueCount) = Helpers.ConvertVectorType(vType, NewValue) - valueCount += 1 - Else - Logger.Info("Value '" & NewValue.ToString & "' already existing in vectorfield(1)") - - End If - End If - Next - Else - Logger.Info(" vectorfield is empty....") - - 'Den/die Neuen Wert(e) anfügen - For Each NewValue As Object In arrIndexwerte - If NewValue Is Nothing = False Then - If ValueArray Is Nothing = False Then - If ValueArray.Contains(NewValue) = False Then - 'Das Array anpassen - ReDim Preserve ValueArray(valueCount) - 'Den Wert im Array speichern - ValueArray(valueCount) = Helpers.ConvertVectorType(vType, NewValue) - valueCount += 1 - Else - Logger.Info("Value '" & NewValue.ToString & "' already existing in vectorfield(2)") - - End If - Else 'Dererste Wert, also hinzufügen - 'Das Array anpassen - ReDim Preserve ValueArray(valueCount) - 'Den Wert im Array speichern - ValueArray(valueCount) = Helpers.ConvertVectorType(vType, NewValue) - valueCount += 1 - - End If - - - End If - Next - End If - - Return ValueArray - Catch ex As Exception - Logger.Error(ex) - End Try - End Function - ''' - ''' Returns a WMObject if file exists - ''' - ''' full path to the file - ''' Returns WMObject - ''' - Public Function GetWMObjectForFile(ByVal WMPath As String) As WMObject - Try - If TestLoggedInSession() = False Then - Return Nothing - End If - WMPath = NormalizePath(WMPath) - Dim oWMObject As WINDREAMLib.WMObject - Try - oWMObject = CurrentSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WMPath) - Catch ex As Exception - Logger.Warn("Could not create WMObject for file '" & WMPath & "': " & ex.Message) - Return Nothing - End Try - Return oWMObject - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - End Function -#End Region -#Region "+++++ Test +++++" - ''' - ''' Checks if the folder exists - ''' - ''' The path of the folder - ''' True if exists or false if not or error occured - ''' - Public Function TestFolderExists(folderpath As String) - Try - If TestLoggedInSession() = False Then - Return False - End If - folderpath = NormalizePath(folderpath) - Try - Dim exists = CurrentSession.WMObjectExists(WMEntityFolder, folderpath, 0, 0) - Return exists - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - Catch ex As Exception - Return False - End Try - End Function - ''' - ''' Checks wether file exists in windream - ''' - ''' full path to the file - ''' Returns true when file was deleted, false if not - ''' - Public Function TestWMFileExists(ByVal WMPath As String) - Try - If TestLoggedInSession() = False Then - Return False - End If - WMPath = NormalizePath(WMPath) - If IsNothing(GetWMObjectForFile(WMPath)) Then - Return False - Else - Return True - End If - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function - - - Private Function TestLoggedInSession() As Boolean - Try - If CurrentSession.aLoggedin Then - Return True - Else - Logger.Warn("There is no active WM-SSession!") - Return False - End If - Catch ex As Exception - Return False - End Try - End Function - ''' - ''' Checks if user exists in windream. - ''' - ''' test username - ''' Returns true if exists, false if not - ''' - Public Function TestWMUSerExists(username As String) As Boolean - Try - If TestLoggedInSession() = False Then - Return False - End If - Return CurrentSession.WMObjectExists(WMEntityUser, username, 0, 0) - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function - ''' - ''' Checks if group exists in windream. - ''' - ''' test username - ''' Returns true if exists, false if not - ''' - Public Function TestWMGroupExists(groupname As String) - Try - If TestLoggedInSession() = False Then - Return False - End If - Return CurrentSession.WMObjectExists(WMEntityGroups, groupname, 0, 0) - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function -#End Region -#Region "+++++ Remove +++++" - ''' - ''' Deletes a file in windream including all preversions - ''' - ''' full path to the file - ''' Returns true when file was deleted, false if not - ''' - Public Function RemFile(ByVal WMPath As String) - Try - Const COL_Document_VersionID = "dwVersionID" - Const WMObjectPartVersion = 128 - Dim oUnexpected_Error As Boolean = False - WMPath = NormalizePath(WMPath) - Dim oWMObject = GetWMObjectForFile(WMPath) - If IsNothing(oWMObject) = False Then - Try - If (oWMObject.aPart And WMObjectPartVersion) Then - Dim oWMObjects As WMObjects - Dim oWMVersion As WMObject - Dim iCount As Integer - oWMObjects = oWMObject.aVersions - iCount = oWMObjects.Count - If iCount > 0 Then - For Each oWMVersion In oWMObjects - oWMVersion.Delete() - Logger.Info($">> Deleted version '{oWMVersion.GetVariableValue(COL_Document_VersionID)}' of file '{oWMVersion.aName}'!") - Next - End If - End If - Catch ex As Exception - Logger.Warn($"Unexpected Error in CheckingDeleting Prevesions: {ex.Message}") - oUnexpected_Error = True - End Try - If oUnexpected_Error = False Then - oWMObject.Delete() - Logger.Info($">> File '{oWMObject.aName}' has been deleted!") - Return True - Else - Return False - End If - Else - Return False - End If - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function - ''' - ''' Removes the vektorlink from windream - ''' - ''' full path to the file - ''' Indexname of Vektor-Index - ''' Value which is to be deleted - ''' Returns true when indexing was successfull, false if not - ''' - Public Function REMOVE_VEKTOR_LINK(ByVal WMPath As String, vktIndexName As String, deleteValue As String) - Try - Logger.Info("Removing Value '" & deleteValue & "' of Index '" & vktIndexName & "' " & WMPath) - Dim oWMFile As WMObject = GetWMObjectForFile(WMPath) - If IsNothing(oWMFile) Then - Logger.Warn("Exit from REMOVE_VEKTOR_LINK...") - Return False - End If - Dim containsvalue As Boolean = False - Dim ValueArray() = Nothing - 'Jeden Wert des Vektorfeldes durchlaufen - Dim WMValue = oWMFile.GetVariableValue(vktIndexName) - If WMValue Is Nothing = False Then - 'Nochmals prüfen ob wirklich Array - If WMValue.GetType.ToString.Contains("System.Object") Then - ' das entsprechende Attribut aus windream auslesen - Dim oAttribute = CurrentSession.GetWMObjectByName(WMEntityAttribute, vktIndexName) - ' den Variablentyp (String, Integer, ...) auslesen - Dim vType = oAttribute.getVariableValue("dwAttrType") - Dim Anzahl As Integer = 0 - For Each WDValue As Object In WMValue - If WDValue Is Nothing = False Then - If WDValue = deleteValue Then - containsvalue = True - Logger.Info("The Index contains the value to be deleted!") - End If - If WDValue <> deleteValue Then - 'Erst die ALten Werte schreiben - ReDim Preserve ValueArray(Anzahl) - 'Den Wert im Array speichern - ValueArray(Anzahl) = Helpers.ConvertVectorType(vType, WDValue) - Anzahl += 1 - End If - End If - Next - Else - Logger.Warn("Index is not a vector") - Return False - End If - Else - Logger.Warn("oWMObject is nothing") - Return True - End If - - If containsvalue = True Then 'And Not IsNothing(ValueArray) - If NewLockWMFile(oWMFile) = False Then - Return False - End If - 'Indexiern des Vektorfeldes - oWMFile.SetVariableValue(vktIndexName, ValueArray) - ' die Indexinformationen des Dokuments speichern - oWMFile.Save() - Logger.Info("The new vectorvalues were saved!") - ' Unlock in einem unbehandelten Try-Block um Fehler abzufangen, - Try - ' die Sperrung des Dokuments aufheben - oWMFile.unlock() - - Catch ex As Exception - ' nichts tun (Datei war nicht gesperrt) - End Try - 'Zurückgeben - Return True - Else - Logger.Info("containsvalue is not true") - Return True - End If - - Catch ex As Exception - Logger.Error(ex) - Return False - End Try - End Function -#End Region -End Class diff --git a/Modules.Windream/packages.config b/Modules.Windream/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.Windream/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules.ZooFlow/AdHocWorkflow.vb b/Modules.ZooFlow/AdHocWorkflow.vb deleted file mode 100644 index 3eaf8d28..00000000 --- a/Modules.ZooFlow/AdHocWorkflow.vb +++ /dev/null @@ -1,5 +0,0 @@ -Public Class AdHocWorkflow - Public Property AHWF_CMD_LAYOUT_SELECT As String - Public Property AHWF_CMD_USR_SELECT As String - Public Property OBJECT_ID As Long -End Class diff --git a/Modules.ZooFlow/Constants.vb b/Modules.ZooFlow/Constants.vb deleted file mode 100644 index 41d86d27..00000000 --- a/Modules.ZooFlow/Constants.vb +++ /dev/null @@ -1,8 +0,0 @@ -Public Class Constants - Public Enum OperationMode - WithAppServer - NoAppServer - ZooFlow - None - End Enum -End Class diff --git a/Modules.ZooFlow/Environment.vb b/Modules.ZooFlow/Environment.vb deleted file mode 100644 index 2a010237..00000000 --- a/Modules.ZooFlow/Environment.vb +++ /dev/null @@ -1,10 +0,0 @@ -Imports DigitalData.Modules.Database - -Public Class Environment - Public Property User As State.UserState - Public Property Settings As State.SettingsState - Public Property Service As State.ServiceState - Public Property Database As MSSQLServer - Public Property DatabaseIDB As MSSQLServer - Public Property Modules As Dictionary(Of String, State.ModuleState) -End Class diff --git a/Modules.ZooFlow/My Project/Application.Designer.vb b/Modules.ZooFlow/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Modules.ZooFlow/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules.ZooFlow/My Project/Application.myapp b/Modules.ZooFlow/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules.ZooFlow/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules.ZooFlow/My Project/AssemblyInfo.vb b/Modules.ZooFlow/My Project/AssemblyInfo.vb deleted file mode 100644 index bab052d6..00000000 --- a/Modules.ZooFlow/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Modules.ZooFlow/My Project/Resources.Designer.vb b/Modules.ZooFlow/My Project/Resources.Designer.vb deleted file mode 100644 index 7f80f5d1..00000000 --- a/Modules.ZooFlow/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.ZooFlow.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules.ZooFlow/My Project/Resources.resx b/Modules.ZooFlow/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules.ZooFlow/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules.ZooFlow/My Project/Settings.Designer.vb b/Modules.ZooFlow/My Project/Settings.Designer.vb deleted file mode 100644 index 69590c62..00000000 --- a/Modules.ZooFlow/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.ZooFlow.My.MySettings - Get - Return Global.DigitalData.Modules.ZooFlow.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules.ZooFlow/My Project/Settings.settings b/Modules.ZooFlow/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules.ZooFlow/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules.ZooFlow/Params/Attribute.vb b/Modules.ZooFlow/Params/Attribute.vb deleted file mode 100644 index 3fc9052d..00000000 --- a/Modules.ZooFlow/Params/Attribute.vb +++ /dev/null @@ -1,14 +0,0 @@ -Public Class Attribute - Public Const TYPE_BIT = "BIT" - Public Const TYPE_FLOAT = "FLOAT" - Public Const TYPE_DECIMAL = "DECIMAL" - Public Const TYPE_DATE = "DATE" - Public Const TYPE_BIG_INTEGER = "BIG INTEGER" - Public Const TYPE_VECTOR_STRING = "VECTOR STRING" - - Public Property ID As Long - Public Property Title As String - Public Property TypeID As Long - Public Property TypeName As String - Public Property IsSystem As Boolean -End Class diff --git a/Modules.ZooFlow/Params/ClipboardWatcherParams.vb b/Modules.ZooFlow/Params/ClipboardWatcherParams.vb deleted file mode 100644 index e21ebdf5..00000000 --- a/Modules.ZooFlow/Params/ClipboardWatcherParams.vb +++ /dev/null @@ -1,10 +0,0 @@ -Imports System.Windows.Forms -Imports DigitalData.Modules.ZooFlow.Constants -Imports DigitalData.Modules.ZooFlow.Params - -Public Class ClipboardWatcherParams - Public ClipboardContents As String - Public MatchingProfiles As List(Of ProfileData) - Public MatchTreeView As TreeView - Public OperationModeOverride As OperationMode = OperationMode.None -End Class diff --git a/Modules.ZooFlow/Params/ProfileData.vb b/Modules.ZooFlow/Params/ProfileData.vb deleted file mode 100644 index 574a04e9..00000000 --- a/Modules.ZooFlow/Params/ProfileData.vb +++ /dev/null @@ -1,79 +0,0 @@ -Namespace Params - Public Class ProfileData - Public Guid As Integer - Public Regex As String - Public Name As String - Public Comment As String - Public ProfileType As Integer - - Public Processes As List(Of ProcessData) - Public Windows As List(Of WindowData) - Public Controls As List(Of ControlData) - - Public CountDocs As Integer = 0 - Public CountData As Integer = 0 - - Public IsMatched As Boolean = False - Public IsCatchAll As Boolean = False - - Public MatchedProcessID As Integer = 0 - Public MatchedWindowID As Integer = 0 - Public MatchedControlID As Integer = 0 - - Public SelectCommand As String - - Public ErrorMessage As String = "" - - Public Overrides Function Equals(obj As Object) As Boolean - Return Guid = DirectCast(obj, ProfileData).Guid - End Function - - Public Overrides Function GetHashCode() As Integer - Return Guid.ToString.GetHashCode() - End Function - End Class - - Public Class ProcessData - Public Guid As Integer - Public PROFILE_ID As Integer - Public ProcessName As String - Public IsMatched As Boolean = False - - Public Overrides Function Equals(obj As Object) As Boolean - Return Guid = DirectCast(obj, ProcessData).Guid - End Function - - Public Overrides Function GetHashCode() As Integer - Return Guid.ToString.GetHashCode() - End Function - End Class - Public Class WindowData - Public Guid As Integer - Public WindowProcessID As Integer - Public Title As String - Public Regex As String - Public Sequence As Integer - Public IsMatched As Boolean = False - - End Class - Public Class ControlData - Public Guid As Integer - Public WindowId As Integer - Public Description As String - Public Regex As String - Public AutomationId As String - Public ControlName As String - Public ProcessName As String - Public IsMatched As Boolean = False - Public TopLeft As ControlBounds - Public TopRight As ControlBounds - Public BottomLeft As ControlBounds - Public BottomRight As ControlBounds - End Class - Public Class ControlBounds - Public Top As Integer - Public Bottom As Integer - Public Left As Integer - Public Right As Integer - End Class -End Namespace \ No newline at end of file diff --git a/Modules.ZooFlow/State/ModuleState.vb b/Modules.ZooFlow/State/ModuleState.vb deleted file mode 100644 index 9f960d5f..00000000 --- a/Modules.ZooFlow/State/ModuleState.vb +++ /dev/null @@ -1,7 +0,0 @@ -Namespace State - Public Class ModuleState - Public Property HasAccess As Boolean - Public Property IsAdmin As Boolean - Public Property LoggedIn As Integer - End Class -End Namespace \ No newline at end of file diff --git a/Modules.ZooFlow/State/ServiceState.vb b/Modules.ZooFlow/State/ServiceState.vb deleted file mode 100644 index 5b00e66e..00000000 --- a/Modules.ZooFlow/State/ServiceState.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports DigitalData.Modules.EDMI.API - -Namespace State - Public Class ServiceState - Public Property IsOnline As Boolean = False - Public Property IsActive As Boolean = False - Public Property LastChecked As Date = Date.Now - Public Property Address As String = String.Empty - Public Property Client As Client = Nothing - End Class -End Namespace \ No newline at end of file diff --git a/Modules.ZooFlow/State/SettingsState.vb b/Modules.ZooFlow/State/SettingsState.vb deleted file mode 100644 index 6a9e50e6..00000000 --- a/Modules.ZooFlow/State/SettingsState.vb +++ /dev/null @@ -1,5 +0,0 @@ -Namespace State - Public Class SettingsState - Public GdPictureKey As String = String.Empty - End Class -End Namespace \ No newline at end of file diff --git a/Modules.ZooFlow/State/UserState.vb b/Modules.ZooFlow/State/UserState.vb deleted file mode 100644 index 27244026..00000000 --- a/Modules.ZooFlow/State/UserState.vb +++ /dev/null @@ -1,92 +0,0 @@ -Imports System.Threading - -Namespace State - ''' - ''' Helper Class to hold User State - ''' - Public Class UserState - Public Const LANG_DE_DE As String = "de-DE" - Public Const LANG_EN_US As String = "en-US" - - ''' - ''' Numeric UserId, ex. 1 - ''' - Public Property UserId As Integer - - ''' - ''' The windows username, ex. JenneJ - ''' - ''' - Public Property UserName As String - - ''' - ''' The user's surname, ex. Jenne - ''' - Public Property Surname As String - - ''' - ''' The user's given name, ex. Jonathan - ''' - Public Property GivenName As String - - ''' - ''' The shortname given to the user, ex. JJ - ''' - Public Property ShortName As String - - ''' - ''' The user's email address - ''' - Public Property Email As String - - ''' - ''' The user's windows machine name, ex. DD-PC-ENT04 - ''' - Public Property MachineName As String - - ''' - ''' The users preferred date format, ex. dd-MM-yyyy - ''' - Public Property DateFormat As String - - ''' - ''' The user's language code, ex. de-DE - ''' - Public Property Language As String - - ''' - ''' The user's language id, what is this? - ''' - Public Property LanguageId As Integer - - ''' - ''' Is the user a general administrator? - ''' - ''' - Public Property IsAdmin As Boolean = False - - ''' - ''' Should basic config (DB Settings) be hidden from this user? - ''' - ''' - Public Property HideBasicConfig As Boolean = False - - ''' - ''' Initialize user object with values that can be read from the environment. Only meant for Global Application State - ''' - Public Sub New() - Language = Thread.CurrentThread.CurrentCulture.Name - UserName = System.Environment.UserName - MachineName = System.Environment.MachineName - End Sub - - ''' - ''' Initialize user object with user name. Mandatory for sending user data between systems. - ''' - Public Sub New(pUserName As String) - MyBase.New() - UserName = pUserName - End Sub - End Class -End Namespace - diff --git a/Modules.ZooFlow/ZooFlow.vbproj b/Modules.ZooFlow/ZooFlow.vbproj deleted file mode 100644 index 3184ff3c..00000000 --- a/Modules.ZooFlow/ZooFlow.vbproj +++ /dev/null @@ -1,146 +0,0 @@ - - - - - Debug - AnyCPU - {81CAC44F-3711-4C8F-AE98-E02A7448782A} - Library - DigitalData.Modules.ZooFlow - DigitalData.Modules.ZooFlow - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.ZooFlow.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.ZooFlow.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {25017513-0D97-49D3-98D7-BA76D9B251B0} - EDMI.API - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86} - Windows - - - - \ No newline at end of file diff --git a/Modules.ZooFlow/packages.config b/Modules.ZooFlow/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Modules.ZooFlow/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Modules/Filesystem.Test/FileTest.vb b/Modules/Filesystem.Test/FileTest.vb deleted file mode 100644 index 412372bd..00000000 --- a/Modules/Filesystem.Test/FileTest.vb +++ /dev/null @@ -1,21 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualStudio.TestTools.UnitTesting -Imports DigitalData.Modules.Logging - - Public Class FileTest - - Public Shared Sub Setup(Context As TestContext) - System.IO.File.Create("E:\Test.txt") - End Sub - - Public Sub TestMethod1() - Dim oLogConfig = New DigitalData.Modules.Logging.LogConfig(LogConfig.PathType.Temp) - Dim oFilesystem As New DigitalData.Modules.Filesystem.File(oLogConfig) - - Dim oPath = "E:\Test~2345676778697678678967867.txt" - Dim oVersionedPath = oFilesystem.GetVersionedFilename(oPath) - - Assert.AreEqual(oVersionedPath, oPath) - End Sub - -End Class \ No newline at end of file diff --git a/Modules/Filesystem.Test/Filesystem.Test.vbproj b/Modules/Filesystem.Test/Filesystem.Test.vbproj deleted file mode 100644 index 87b70aaa..00000000 --- a/Modules/Filesystem.Test/Filesystem.Test.vbproj +++ /dev/null @@ -1,137 +0,0 @@ - - - - - Debug - AnyCPU - {B29ED6D4-839B-413A-A485-B10F4A4788EA} - Library - Filesystem.Test - Filesystem.Test - 512 - Windows - v4.6.1 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - true - true - bin\Debug\ - Filesystem.Test.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - Filesystem.Test.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - ..\..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - - - ..\..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - - - - \ No newline at end of file diff --git a/Modules/Filesystem.Test/My Project/Application.Designer.vb b/Modules/Filesystem.Test/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c7..00000000 --- a/Modules/Filesystem.Test/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Modules/Filesystem.Test/My Project/Application.myapp b/Modules/Filesystem.Test/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Modules/Filesystem.Test/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Modules/Filesystem.Test/My Project/AssemblyInfo.vb b/Modules/Filesystem.Test/My Project/AssemblyInfo.vb deleted file mode 100644 index 954e4783..00000000 --- a/Modules/Filesystem.Test/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - - - - - - - - - - - - -' - - diff --git a/Modules/Filesystem.Test/My Project/Resources.Designer.vb b/Modules/Filesystem.Test/My Project/Resources.Designer.vb deleted file mode 100644 index 81d342eb..00000000 --- a/Modules/Filesystem.Test/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Filesystem.Test.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Modules/Filesystem.Test/My Project/Resources.resx b/Modules/Filesystem.Test/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Modules/Filesystem.Test/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Modules/Filesystem.Test/My Project/Settings.Designer.vb b/Modules/Filesystem.Test/My Project/Settings.Designer.vb deleted file mode 100644 index 365aec20..00000000 --- a/Modules/Filesystem.Test/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Filesystem.Test.My.MySettings - Get - Return Global.Filesystem.Test.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Modules/Filesystem.Test/My Project/Settings.settings b/Modules/Filesystem.Test/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Modules/Filesystem.Test/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Modules/Filesystem.Test/packages.config b/Modules/Filesystem.Test/packages.config deleted file mode 100644 index 371adee0..00000000 --- a/Modules/Filesystem.Test/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/SQLConfig/App.config b/SQLConfig/App.config deleted file mode 100644 index cd714553..00000000 --- a/SQLConfig/App.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/SQLConfig/My Project/Application.Designer.vb b/SQLConfig/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/SQLConfig/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/SQLConfig/My Project/Application.myapp b/SQLConfig/My Project/Application.myapp deleted file mode 100644 index 745fec77..00000000 --- a/SQLConfig/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - true - frmSQLConfig - false - 0 - true - 0 - true - \ No newline at end of file diff --git a/SQLConfig/My Project/AssemblyInfo.vb b/SQLConfig/My Project/AssemblyInfo.vb deleted file mode 100644 index c17090a0..00000000 --- a/SQLConfig/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/SQLConfig/My Project/Resources.Designer.vb b/SQLConfig/My Project/Resources.Designer.vb deleted file mode 100644 index f4cda3f5..00000000 --- a/SQLConfig/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Controls.SQLConfig.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/SQLConfig/My Project/Resources.resx b/SQLConfig/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/SQLConfig/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/SQLConfig/My Project/Settings.Designer.vb b/SQLConfig/My Project/Settings.Designer.vb deleted file mode 100644 index 8f2429b8..00000000 --- a/SQLConfig/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Controls.SQLConfig.My.MySettings - Get - Return Global.DigitalData.Controls.SQLConfig.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/SQLConfig/My Project/Settings.settings b/SQLConfig/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/SQLConfig/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/SQLConfig/My Project/licenses.licx b/SQLConfig/My Project/licenses.licx deleted file mode 100644 index ab3ecc3a..00000000 --- a/SQLConfig/My Project/licenses.licx +++ /dev/null @@ -1,4 +0,0 @@ -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/SQLConfig/My Project/licenses.licx.bak b/SQLConfig/My Project/licenses.licx.bak deleted file mode 100644 index 4f6348a0..00000000 --- a/SQLConfig/My Project/licenses.licx.bak +++ /dev/null @@ -1,4 +0,0 @@ -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/SQLConfig/SQLConfig.vbproj b/SQLConfig/SQLConfig.vbproj deleted file mode 100644 index 1d9d9d7b..00000000 --- a/SQLConfig/SQLConfig.vbproj +++ /dev/null @@ -1,164 +0,0 @@ - - - - - Debug - AnyCPU - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A} - Library - - - DigitalData.Controls.SQLConfig - DigitalData.Controls.SQLConfig - 512 - Windows - v4.6.1 - true - true - - - AnyCPU - true - full - true - true - bin\Debug\ - DigitalData.Controls.SQLConfig.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - DigitalData.Controls.SQLConfig.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - False - - - - False - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmSQLConfig.vb - - - Form - - - - True - Application.myapp - True - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - frmSQLConfig.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - {8a8f20fc-c46e-41ac-bee7-218366cfff99} - Encryption - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/SQLConfig/SQLConfig.vbproj.bak b/SQLConfig/SQLConfig.vbproj.bak deleted file mode 100644 index d7e6924c..00000000 --- a/SQLConfig/SQLConfig.vbproj.bak +++ /dev/null @@ -1,163 +0,0 @@ - - - - - Debug - AnyCPU - {65EFB268-C0E0-40C1-8981-9F70DEE5C74A} - Library - - - DigitalData.Controls.SQLConfig - DigitalData.Controls.SQLConfig - 512 - Windows - v4.6.1 - true - true - - - AnyCPU - true - full - true - true - bin\Debug\ - DigitalData.Controls.SQLConfig.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - DigitalData.Controls.SQLConfig.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - False - D:\ProgramFiles\DevExpress 19.2\Components\Bin\Framework\DevExpress.XtraEditors.v19.2.dll - - - False - D:\ProgramFiles\DevExpress 19.2\Components\Bin\Framework\DevExpress.XtraLayout.v19.2.dll - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmSQLConfig.vb - - - Form - - - - True - Application.myapp - True - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - frmSQLConfig.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - {8a8f20fc-c46e-41ac-bee7-218366cfff99} - Encryption - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - - \ No newline at end of file diff --git a/SQLConfig/packages.config b/SQLConfig/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/SQLConfig/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb index 87f16f94..764852d2 100644 --- a/Service.EDMIService/EDMIService.vb +++ b/Service.EDMIService/EDMIService.vb @@ -23,7 +23,6 @@ Public Class EDMIService Public Shared Firebird As Firebird Public Shared AppConfig As Config Public Shared Filesystem As Filesystem.File - Public Shared EDMIArchive As EDMI.File.Archive Public Shared GlobalState As GlobalState Public Shared Scheduler As Scheduler diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj index 45200c8f..933ca6f3 100644 --- a/Service.EDMIService/EDMIService.vbproj +++ b/Service.EDMIService/EDMIService.vbproj @@ -66,6 +66,33 @@ On + + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + ..\..\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll + + + ..\..\DDModules\Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll + + + ..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll + + + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + ..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll + + + ..\..\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll + ..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll @@ -251,48 +278,6 @@ - - - {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} - Base - - - {44982F9B-6116-44E2-85D0-F39650B1EF99} - Config - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {1477032d-7a02-4c5f-b026-a7117da4bc6b} - EDMI.File - - - {25017513-0d97-49d3-98d7-ba76d9b251b0} - EDMI.API - - - {991D0231-4623-496D-8BD0-9CA906029CBC} - Filesystem - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - {7c3b0c7e-59fe-4e1a-a655-27ae119f9444} - Patterns - - - {81cac44f-3711-4c8f-ae98-e02a7448782a} - ZooFlow - - False diff --git a/Service.EDMIService/GlobalState.vb b/Service.EDMIService/GlobalState.vb index 0ee10f8d..55a6c6b5 100644 --- a/Service.EDMIService/GlobalState.vb +++ b/Service.EDMIService/GlobalState.vb @@ -156,8 +156,8 @@ Public Class GlobalState _Logger.Debug("ForceDirectDatabaseAccess: {0}", pConfig.ClientConfig.ForceDirectDatabaseAccess) ClientConfig.ForceDirectDatabaseAccess = pConfig.ClientConfig.ForceDirectDatabaseAccess ClientConfig.DocumentTypes = Doctypes - ClientConfig.ConnectionStringECM = _MSSQL_ECM.CurrentSQLConnectionString - ClientConfig.ConnectionStringIDB = _MSSQL_IDB.CurrentSQLConnectionString + ClientConfig.ConnectionStringECM = _MSSQL_ECM.CurrentConnectionString + ClientConfig.ConnectionStringIDB = _MSSQL_IDB.CurrentConnectionString End Sub Public Class ObjectStore diff --git a/Service.EDMIService/WindowsService.vb b/Service.EDMIService/WindowsService.vb index c672730d..4249c9c5 100644 --- a/Service.EDMIService/WindowsService.vb +++ b/Service.EDMIService/WindowsService.vb @@ -22,7 +22,6 @@ Public Class WindowsService Private ConfigManager As ConfigManager(Of Config) Private Config As Config - Private Archive As EDMI.File.Archive Private Filesystem As Filesystem.File Private GlobalState As GlobalState Private Scheduler As Scheduler @@ -74,7 +73,6 @@ Public Class WindowsService Logger.Info("Connection to Databases established!") Logger.Debug("Initializing EDMI Functions") - Archive = New EDMI.File.Archive(LogConfig) Filesystem = New Filesystem.File(LogConfig) GlobalState = New GlobalState(LogConfig, MSSQL_IDB, MSSQL_ECM) @@ -96,7 +94,6 @@ Public Class WindowsService EDMIService.Firebird = Firebird EDMIService.LogConfig = LogConfig EDMIService.AppConfig = Config - EDMIService.EDMIArchive = Archive EDMIService.Filesystem = Filesystem EDMIService.GlobalState = GlobalState EDMIService.Scheduler = Scheduler diff --git a/Service.JobRunner/JobRunner.vbproj b/Service.JobRunner/JobRunner.vbproj index c6fb482a..38256adb 100644 --- a/Service.JobRunner/JobRunner.vbproj +++ b/Service.JobRunner/JobRunner.vbproj @@ -50,6 +50,18 @@ My Project\app.manifest + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Jobs\bin\Debug\DigitalData.Modules.Jobs.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll @@ -149,23 +161,5 @@ - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} - Database - - - {39EC839A-3C30-4922-A41E-6B09D1DDE5C3} - Jobs - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - \ No newline at end of file diff --git a/Services.CommunicationService/App.config b/Services.CommunicationService/App.config deleted file mode 100644 index 04ac5f4f..00000000 --- a/Services.CommunicationService/App.config +++ /dev/null @@ -1,33 +0,0 @@ - - - - -
- - - - - - - - - 172.24.12.41 - - - 172.24.12.41:E:\DB\Firebird\Databases\EDMI_TEMPLATE\EDMI_MASTER.FDB - - - sysdba - - - dd - - - True - - - Data Source=172.24.12.41\Tests;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd - - - - \ No newline at end of file diff --git a/Services.CommunicationService/DD_CommunicationService.vbproj b/Services.CommunicationService/DD_CommunicationService.vbproj deleted file mode 100644 index 286848e8..00000000 --- a/Services.CommunicationService/DD_CommunicationService.vbproj +++ /dev/null @@ -1,153 +0,0 @@ - - - - - Debug - AnyCPU - {1FB2854F-C050-427D-9FAC-1D8F232E8025} - WinExe - DD_CommunicationService.MyComService - DD_CommunicationService - DD_CommunicationService - 512 - Console - v4.6.1 - true - - - x64 - true - full - true - true - bin\Debug\ - DD_CommunicationService.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - DD_CommunicationService.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - ..\..\DD_EmailProfiler\App\DigitalData.EMLProfiler\bin\Debug\DigitalData.EMLProfiler.dll - - - ..\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll - - - ..\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll - - - ..\Message\bin\Debug\DigitalData.Modules.Messaging.dll - - - P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\FirebirdSql.Data.FirebirdClient.dll - - - ..\Modules.Logging\bin\Debug\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - Component - - - MyComService.vb - - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ProjectInstaller.vb - - - Component - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - MyComService.vb - - - ProjectInstaller.vb - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {AF664D85-0A4B-4BAB-A2F8-83110C06553A} - Messaging - - - - \ No newline at end of file diff --git a/Services.CommunicationService/My Project/Application.Designer.vb b/Services.CommunicationService/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c7..00000000 --- a/Services.CommunicationService/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Services.CommunicationService/My Project/Application.myapp b/Services.CommunicationService/My Project/Application.myapp deleted file mode 100644 index 602de37e..00000000 --- a/Services.CommunicationService/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 3 - true - diff --git a/Services.CommunicationService/My Project/AssemblyInfo.vb b/Services.CommunicationService/My Project/AssemblyInfo.vb deleted file mode 100644 index 2137d903..00000000 --- a/Services.CommunicationService/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Services.CommunicationService/My Project/Resources.Designer.vb b/Services.CommunicationService/My Project/Resources.Designer.vb deleted file mode 100644 index 32ad5d87..00000000 --- a/Services.CommunicationService/My Project/Resources.Designer.vb +++ /dev/null @@ -1,62 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DD_CommunicationService.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Services.CommunicationService/My Project/Resources.resx b/Services.CommunicationService/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Services.CommunicationService/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Services.CommunicationService/My Project/Settings.Designer.vb b/Services.CommunicationService/My Project/Settings.Designer.vb deleted file mode 100644 index d5d6ae27..00000000 --- a/Services.CommunicationService/My Project/Settings.Designer.vb +++ /dev/null @@ -1,128 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - - _ - Public ReadOnly Property FB_ConnString() As String - Get - Return CType(Me("FB_ConnString"),String) - End Get - End Property - - _ - Public ReadOnly Property FB_DATABASE() As String - Get - Return CType(Me("FB_DATABASE"),String) - End Get - End Property - - _ - Public ReadOnly Property FB_USER() As String - Get - Return CType(Me("FB_USER"),String) - End Get - End Property - - _ - Public ReadOnly Property FB_PW() As String - Get - Return CType(Me("FB_PW"),String) - End Get - End Property - - _ - Public ReadOnly Property LOG_ERRORS_ONLY() As Boolean - Get - Return CType(Me("LOG_ERRORS_ONLY"),Boolean) - End Get - End Property - - _ - Public ReadOnly Property SQLSERVER_CS() As String - Get - Return CType(Me("SQLSERVER_CS"),String) - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DD_CommunicationService.My.MySettings - Get - Return Global.DD_CommunicationService.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Services.CommunicationService/My Project/Settings.settings b/Services.CommunicationService/My Project/Settings.settings deleted file mode 100644 index 2097e9d0..00000000 --- a/Services.CommunicationService/My Project/Settings.settings +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - 172.24.12.41 - - - 172.24.12.41:E:\DB\Firebird\Databases\EDMI_TEMPLATE\EDMI_MASTER.FDB - - - sysdba - - - dd - - - True - - - Data Source=172.24.12.41\Tests;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd - - - \ No newline at end of file diff --git a/Services.CommunicationService/MyComService.Designer.vb b/Services.CommunicationService/MyComService.Designer.vb deleted file mode 100644 index a3dcb3ce..00000000 --- a/Services.CommunicationService/MyComService.Designer.vb +++ /dev/null @@ -1,53 +0,0 @@ -Imports System.ServiceProcess - - _ -Partial Class MyComService - Inherits System.ServiceProcess.ServiceBase - - 'UserService überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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 - - ' Der Haupteinstiegspunkt für den Prozess - _ - _ - Shared Sub Main() - Dim ServicesToRun() As System.ServiceProcess.ServiceBase - - ' Innerhalb eines Prozesses können mehrere NT-Dienste ausgeführt werden. Um einen - ' weiteren Dienst zu diesem Prozess hinzuzufügen, ändern Sie die folgende Zeile, - ' um ein zweites Dienstobjekt zu erstellen. Zum Beispiel - ' - ' ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService} - ' - ServicesToRun = New System.ServiceProcess.ServiceBase() {New MyComService} - - System.ServiceProcess.ServiceBase.Run(ServicesToRun) - End Sub - - 'Wird vom Komponenten-Designer benötigt. - Private components As System.ComponentModel.IContainer - - ' Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich. - ' Das Bearbeiten ist mit dem Komponenten-Designer möglich. - ' Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ - Private Sub InitializeComponent() - ' - 'MyComService - ' - Me.AutoLog = False - Me.CanShutdown = True - Me.ServiceName = "DDEDMI_ComService" - - End Sub - -End Class diff --git a/Services.CommunicationService/MyComService.resx b/Services.CommunicationService/MyComService.resx deleted file mode 100644 index e5858cc2..00000000 --- a/Services.CommunicationService/MyComService.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - \ No newline at end of file diff --git a/Services.CommunicationService/MyComService.vb b/Services.CommunicationService/MyComService.vb deleted file mode 100644 index 25fe1979..00000000 --- a/Services.CommunicationService/MyComService.vb +++ /dev/null @@ -1,349 +0,0 @@ -Imports System.ComponentModel -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Messaging -Imports DigitalData.EMLProfiler -Imports System.IO -Public Class MyComService - Private myLogger As Logger - Private MyLoConfig As LogConfig - Private _firebird As Firebird - Private _MSSQL As MSSQLServer - Private _Email As Email - 'Private _EmailAlt As clsEmail - Public Shared threadEmailQueue As BackgroundWorker - Protected Overrides Sub OnStart(ByVal args() As String) - ' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge - ' ausführen, damit der Dienst gestartet werden kann. - Try - MyLoConfig = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log")) - If My.Settings.LOG_ERRORS_ONLY = False Then - MyLoConfig.Debug = True - Else - MyLoConfig.Debug = False - End If - - myLogger = MyLoConfig.GetLogger() - If My.Settings.FB_ConnString <> String.Empty Then - _firebird = New Firebird(MyLoConfig, My.Settings.FB_ConnString, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW) - End If - _Email = New Email(MyLoConfig) - '_EmailAlt = New clsEmail(MyLoConfig) - If My.Settings.SQLSERVER_CS <> String.Empty Then - _MSSQL = New MSSQLServer(MyLoConfig, My.Settings.SQLSERVER_CS) - End If - - If (_firebird._DBInitialized = True Or _MSSQL.DBInitialized = True) Then - MyComService.threadEmailQueue = New BackgroundWorker() - MyComService.threadEmailQueue.WorkerReportsProgress = True - MyComService.threadEmailQueue.WorkerSupportsCancellation = True - AddHandler threadEmailQueue.DoWork, AddressOf RunThread_EmailQueue - AddHandler threadEmailQueue.RunWorkerCompleted, AddressOf ThreadEMailQueue_Completed - ' Und den Durchlauf das erste Mal starten - threadEmailQueue.RunWorkerAsync() - - '### Den Timer generieren - Dim Timer1_OneMinute As New System.Timers.Timer() - 'Das Event hinterlegen welches bei "Tick" ausgelöst wird - AddHandler Timer1_OneMinute.Elapsed, AddressOf Timer1_Tick - ' Set the Interval - Timer1_OneMinute.Interval = 60000 - 'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False) - Timer1_OneMinute.Enabled = True - - myLogger.Debug("Timer1_OneMinute started...") - End If - Catch ex As Exception - If Not IsNothing(MyLoConfig.LogFile) And File.Exists(MyLoConfig.LogFile) Then - myLogger.Error(ex) - End If - End Try - End Sub - Public Sub Timer1_Tick() - If Not threadEmailQueue.IsBusy Then - threadEmailQueue.RunWorkerAsync() - End If - End Sub - Protected Overrides Sub OnStop() - Try - ' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen. - myLogger.Warn("Service has been stopped!") - Catch ex As Exception - myLogger.Error(ex) - End Try - - End Sub - Public Sub RunThread_EmailQueue(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) - Try - MyLoConfig = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log")) - myLogger = MyLoConfig.GetLogger() - If My.Settings.LOG_ERRORS_ONLY = False Then - MyLoConfig.Debug = True - Else - MyLoConfig.Debug = False - End If - If threadEmailQueue.IsBusy Then - Exit Sub - End If - _Email = New Email(MyLoConfig) - If My.Settings.FB_ConnString <> String.Empty Then - _firebird = New Firebird(MyLoConfig, My.Settings.FB_ConnString, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW) - If _firebird._DBInitialized = False Then - myLogger.Warn("Firebird-DB could not be intitialized!") - Exit Sub - End If - SEND_FROM_FBDB() - End If - If My.Settings.SQLSERVER_CS <> String.Empty Then - _MSSQL = New MSSQLServer(MyLoConfig, My.Settings.SQLSERVER_CS) - If _MSSQL.DBInitialized = False Then - myLogger.Warn("SQL-DB could not be intitialized!") - Exit Sub - End If - SEND_FROM_MSSQL() - End If - Catch ex As Exception - myLogger.Error(ex) - End Try - End Sub - Private Function SEND_FROM_FBDB() - Try - Dim oComment As String - Dim oSQL = "SELECT * FROM TBEDM_EMAIL_ACCOUNT WHERE ACTIVE = True" - Dim oDT_EMAIL_ACCOUNT As DataTable = _firebird.GetDatatable(oSQL) - If IsNothing(oDT_EMAIL_ACCOUNT) Then - myLogger.Warn("DT_EMAIL_ACCOUNT is nothing!") - Return False - End If - oSQL = "SELECT * FROM TBEDM_EMAIL_QUEUE WHERE EMAIL_SENT IS NULL and EMAIL_TO <> ''" - Dim oDT_EMAIL_QUEUE As DataTable = _firebird.GetDatatable(oSQL) - If Not IsNothing(oDT_EMAIL_QUEUE) And oDT_EMAIL_ACCOUNT.Rows.Count >= 1 Then - Dim oEmailTo, oSubject, oBody As String - Dim oEMAILACCOUNT_ID, oGUID, oJOB_ID As Integer - For Each oNewEmailTo_Row As DataRow In oDT_EMAIL_QUEUE.Rows - oEMAILACCOUNT_ID = oNewEmailTo_Row.Item("EMAIL_ACCOUNT_ID") - Dim oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oAttachment - Dim oACCOUNT_MATCH As Boolean = False - For Each oEmailAccountRow As DataRow In oDT_EMAIL_ACCOUNT.Rows - If oEmailAccountRow.Item("GUID") = oEMAILACCOUNT_ID Then - oACCOUNT_MATCH = True - oMailFrom = oEmailAccountRow.Item("EMAIL_FROM") - oMailSMTP = oEmailAccountRow.Item("SERVER_OUT") - oMailport = oEmailAccountRow.Item("PORT_OUT") - oMailUser = oEmailAccountRow.Item("EMAIL_USER") - oAuthType = oEmailAccountRow.Item("AUTH_TYPE") - oMailPW = oEmailAccountRow.Item("EMAIL_PW") - - Dim owrapper As New clsEncryption("!35452didalog=") - - Dim oPWPlain = owrapper.DecryptData(oMailPW) - If Not IsNothing(oPWPlain) Then - oMailPW = oPWPlain - Else - myLogger.Warn("PWPlain is Nothing - Could not decrypt password..") - Return False - End If - End If - Next - If IsNothing(oMailFrom) Or IsNothing(oMailPW) Then - If oACCOUNT_MATCH = True Then - myLogger.Warn("ACCOUNT-Infos are nothing!") - Else - myLogger.Warn($"EMAIL_ACCOUNT_ID {oEMAILACCOUNT_ID} is not matching the configuration!") - End If - - Return False - End If - - oGUID = oNewEmailTo_Row.Item("GUID") - oEmailTo = oNewEmailTo_Row.Item("EMAIL_TO") - myLogger.Debug($"oEmailTo: {oEmailTo}") - oSubject = oNewEmailTo_Row.Item("EMAIL_SUBJ") - myLogger.Debug($"oSubject: {oSubject}") - oBody = oNewEmailTo_Row.Item("EMAIL_BODY") - myLogger.Debug($"oBody: {oBody}") - oJOB_ID = oNewEmailTo_Row.Item("JOB_ID") - myLogger.Debug($"oJOB_ID: {oJOB_ID}") - oAttachment = oNewEmailTo_Row.Item("EMAIL_ATTMT1") - - myLogger.Debug($"Now checking the attachment") - If IsDBNull(oAttachment) Then - oAttachment = String.Empty - Else - If oAttachment <> String.Empty Then - If File.Exists(oAttachment) = False Then - myLogger.Warn($"Email Attachment FB FileNotFound Exception!") - oComment = "Email Attachment FB FileNotFound Exception" - oAttachment = String.Empty - Else - myLogger.Debug("Email Attachment is: {0}", oAttachment.ToString) - End If - End If - - End If - - - 'Dim link As String = "pmo://" & oJOB_ID & "-" & oNewEmailTo_Row.Item("REFERENCE1") - 'If oBody.Contains("[%PMOLINK_GER]") Then - ' oBody = oBody.Replace("[%PMOLINK_GER]", "hier") - 'End If - 'If oBody.Contains("[%PMOLINK_EN]") Or oBody.Contains("[%PMOLINK_US]") Then - ' oBody = oBody.Replace("[%PMOLINK_EN]", "here") - ' oBody = oBody.Replace("[%PMOLINK_US]", "here") - 'End If - - Dim oSendResult As Boolean = False - ' oSendResult = _EmailAlt.Email_Send_Independentsoft(oSubject, oBody, oEmailTo, oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oAttachment) - ' If oSendResult = False Then - oSendResult = _Email.NewEmail(oEmailTo, oSubject, oBody, oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, "DDEDMI_ComService", oAttachment.ToString) - - ' End If - If oSendResult = True Then - Dim upd = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGUID}" - If upd.Contains(",COMMENT = ''") Then - upd.Replace(",COMMENT = ''", "") - End If - _firebird.ExecuteNonQuery(upd) - End If - Next - Return True - Else - If oDT_EMAIL_ACCOUNT.Rows.Count = 0 Then - myLogger.Warn("Check the Email_Config Table TBDD_EMAIL_ACCOUNT. The table seems to be empty.") - ElseIf IsNothing(oDT_EMAIL_QUEUE) Then - myLogger.Warn($"DT_EMAIL_QUEUE is nothing: {oSQL}") - End If - - End If - Catch ex As Exception - myLogger.Error(ex) - End Try - - End Function - Private Function SEND_FROM_MSSQL() - Try - If _MSSQL.DBInitialized = False Then - Return False - End If - Dim oSQL = "SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1" - Dim oDT_EMAIL_ACCOUNT As DataTable = _MSSQL.GetDatatable(oSQL) - If IsNothing(oDT_EMAIL_ACCOUNT) Then - myLogger.Warn("DT_EMAIL_ACCOUNT is nothing!") - Return False - End If - oSQL = "SELECT * FROM TBEMLP_EMAIL_OUT WHERE EMAIL_SENT IS NULL and EMAIL_ADRESS <> ''" - Dim oDT_EMAIL_QUEUE As DataTable = _MSSQL.GetDatatable(oSQL) - If Not IsNothing(oDT_EMAIL_QUEUE) And oDT_EMAIL_ACCOUNT.Rows.Count >= 1 Then - Dim oEmailTo, oSubject, oBody As String - Dim oEMAILACCOUNT_ID, oGUID, oJOB_ID As Integer - For Each oEmail_Row As DataRow In oDT_EMAIL_QUEUE.Rows - oEMAILACCOUNT_ID = oEmail_Row.Item("SENDING_PROFILE") - Dim oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oAttachment - - Dim oACCOUNT_MATCH As Boolean = False - - For Each oAccountRow As DataRow In oDT_EMAIL_ACCOUNT.Rows - If oAccountRow.Item("GUID") = oEMAILACCOUNT_ID Then - oACCOUNT_MATCH = True - oMailFrom = oAccountRow.Item("EMAIL_FROM") - oMailSMTP = oAccountRow.Item("EMAIL_SMTP") - oMailport = oAccountRow.Item("PORT") - oMailUser = oAccountRow.Item("EMAIL_USER") - oAuthType = oAccountRow.Item("AUTH_TYPE") - oMailPW = oAccountRow.Item("EMAIL_PW") - - Dim owrapper As New clsEncryption("!35452didalog=") - - Dim oPWPlain = owrapper.DecryptData(oMailPW) - If Not IsNothing(oPWPlain) Then - oMailPW = oPWPlain - Else - myLogger.Warn("PWPlain is Nothing - Could not decrypt password..") - Return False - End If - End If - Next - - If IsNothing(oMailFrom) Or IsNothing(oMailPW) Then - If oACCOUNT_MATCH = True Then - myLogger.Warn("ACCOUNT-Infos are nothing!") - Else - myLogger.Warn($"EMAIL_ACCOUNT_ID {oEMAILACCOUNT_ID} is not matching the configuration!") - End If - - Return False - End If - - oGUID = oEmail_Row.Item("GUID") - oEmailTo = oEmail_Row.Item("EMAIL_ADRESS") - myLogger.Debug($"oEmailTo: {oEmailTo}") - oSubject = oEmail_Row.Item("EMAIL_SUBJ") - myLogger.Debug($"oSubject: {oSubject}") - oBody = oEmail_Row.Item("EMAIL_BODY") - myLogger.Debug($"oBody: {oBody}") - oJOB_ID = oEmail_Row.Item("REFERENCE_ID") - myLogger.Debug($"oJOB_ID: {oJOB_ID}") - oAttachment = oEmail_Row.Item("EMAIL_ATTMT1") - - Try - myLogger.Debug($"Now checking the attachment") - If IsDBNull(oAttachment) Then - oAttachment = String.Empty - Else - If oAttachment <> String.Empty Then - If File.Exists(oAttachment) = False Then - myLogger.Warn($"Email Attachment MSSQL FileNotFound Exception!") - - oAttachment = String.Empty - Else - myLogger.Debug("Email Attachment is: {0}", oAttachment.ToString) - End If - End If - - End If - Catch ex As Exception - oAttachment = String.Empty - End Try - - Dim oSendResult As Boolean = False - 'oSendResult = _EmailAlt.Email_Send_Independentsoft(oSubject, oBody, oEmailTo, oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oAttachment) - 'If oSendResult = False Then - oSendResult = _Email.NewEmail(oEmailTo, oSubject, oBody, oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, "DDEDMI_ComService", oAttachment.ToString) - ' End If - If oSendResult = True Then - Dim oUpdCommand = "UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE() WHERE GUID = " & oGUID - _MSSQL.ExecuteNonQuery(oUpdCommand) - End If - Next - Else - If oDT_EMAIL_ACCOUNT.Rows.Count = 0 Then - myLogger.Warn("Check the Email_Config Table TBEDM_EMAIL_ACCOUNT. The table seems to be empty.") - ElseIf IsNothing(oDT_EMAIL_QUEUE) Then - myLogger.Warn($"DT_EMAIL_QUEUE is nothing: {oSQL}") - End If - End If - Catch ex As Exception - myLogger.Error(ex) - End Try - - End Function -#Region "*** BackgroundWorker Stop/Completed ***" - Private Sub ThreadEMailQueue_Completed(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) 'Handles threadDateiimport.RunWorkerCompleted - ' This event fires when the DoWork event completes - Try - Dim result As String = "" - If e.Cancelled Then - myLogger.Warn("ThreadEMailQueue has been cancelled manually...") - - ElseIf e.Error IsNot Nothing Then - myLogger.Warn("Unexpected error in running thread: " & e.Error.Message) - - End If - Catch ex As Exception - myLogger.Error(ex) - End Try - - End Sub - -#End Region -End Class diff --git a/Services.CommunicationService/ProjectInstaller.Designer.vb b/Services.CommunicationService/ProjectInstaller.Designer.vb deleted file mode 100644 index 13e6433c..00000000 --- a/Services.CommunicationService/ProjectInstaller.Designer.vb +++ /dev/null @@ -1,48 +0,0 @@ - Partial Class ProjectInstaller - Inherits System.Configuration.Install.Installer - - 'Installer überschreibt den Löschvorgang zum Bereinigen der Komponentenliste. - _ - 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 Komponenten-Designer benötigt. - Private components As System.ComponentModel.IContainer - - 'Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich. - 'Das Bearbeiten ist mit dem Komponenten-Designer möglich. - 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ - Private Sub InitializeComponent() - Me.ServiceProcessInstaller1 = New System.ServiceProcess.ServiceProcessInstaller() - Me.ServiceInstaller1 = New System.ServiceProcess.ServiceInstaller() - ' - 'ServiceProcessInstaller1 - ' - Me.ServiceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem - Me.ServiceProcessInstaller1.Password = Nothing - Me.ServiceProcessInstaller1.Username = Nothing - ' - 'ServiceInstaller1 - ' - Me.ServiceInstaller1.Description = "Communication Service for sending and receiving notifications and messages" - Me.ServiceInstaller1.DisplayName = "DDEDMI_ComService" - Me.ServiceInstaller1.ServiceName = "DDEDMI_ComService" - Me.ServiceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic - ' - 'ProjectInstaller - ' - Me.Installers.AddRange(New System.Configuration.Install.Installer() {Me.ServiceProcessInstaller1, Me.ServiceInstaller1}) - - End Sub - - Friend WithEvents ServiceProcessInstaller1 As ServiceProcess.ServiceProcessInstaller - Friend WithEvents ServiceInstaller1 As ServiceProcess.ServiceInstaller -End Class diff --git a/Services.CommunicationService/ProjectInstaller.resx b/Services.CommunicationService/ProjectInstaller.resx deleted file mode 100644 index e1b81e8f..00000000 --- a/Services.CommunicationService/ProjectInstaller.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 56 - - - 197, 17 - - - False - - \ No newline at end of file diff --git a/Services.CommunicationService/ProjectInstaller.vb b/Services.CommunicationService/ProjectInstaller.vb deleted file mode 100644 index 733dfc0c..00000000 --- a/Services.CommunicationService/ProjectInstaller.vb +++ /dev/null @@ -1,16 +0,0 @@ -Imports System.ComponentModel -Imports System.Configuration.Install - -Public Class ProjectInstaller - - Public Sub New() - MyBase.New() - - 'Dieser Aufruf ist für den Komponenten-Designer erforderlich. - InitializeComponent() - - 'Initialisierungscode nach dem Aufruf von InitializeComponent hinzufügen - - End Sub - -End Class diff --git a/Services.CommunicationService/clsEncryption.vb b/Services.CommunicationService/clsEncryption.vb deleted file mode 100644 index d6adca68..00000000 --- a/Services.CommunicationService/clsEncryption.vb +++ /dev/null @@ -1,72 +0,0 @@ -Imports System.Security.Cryptography -Public Class clsEncryption - Private TripleDes As New TripleDESCryptoServiceProvider - Sub New(ByVal key As String) - ' Initialize the crypto provider. - TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8) - TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8) - End Sub - - Private Function TruncateHash( - ByVal key As String, - ByVal length As Integer) As Byte() - - Dim sha1 As New SHA1CryptoServiceProvider - - ' Hash the key. - Dim keyBytes() As Byte = - System.Text.Encoding.Unicode.GetBytes(key) - Dim hash() As Byte = sha1.ComputeHash(keyBytes) - - ' Truncate or pad the hash. - ReDim Preserve hash(length - 1) - Return hash - End Function - Public Function EncryptData( - ByVal plaintext As String) As String - - ' Convert the plaintext string to a byte array. - Dim plaintextBytes() As Byte = - System.Text.Encoding.Unicode.GetBytes("!Didalog35452Heuchelheim=" & plaintext) - - ' Create the stream. - Dim ms As New System.IO.MemoryStream - ' Create the encoder to write to the stream. - Dim encStream As New CryptoStream(ms, - TripleDes.CreateEncryptor(), - System.Security.Cryptography.CryptoStreamMode.Write) - - ' Use the crypto stream to write the byte array to the stream. - encStream.Write(plaintextBytes, 0, plaintextBytes.Length) - encStream.FlushFinalBlock() - - ' Convert the encrypted stream to a printable string. - Return Convert.ToBase64String(ms.ToArray) - End Function - 'Entschlüsselt die Zeichenfolge - Public Function DecryptData( - ByVal encryptedtext As String) As String - Try - ' Convert the encrypted text string to a byte array. - Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext) - - ' Create the stream. - Dim ms As New System.IO.MemoryStream - ' Create the decoder to write to the stream. - Dim decStream As New CryptoStream(ms, - TripleDes.CreateDecryptor(), - System.Security.Cryptography.CryptoStreamMode.Write) - - ' Use the crypto stream to write the byte array to the stream. - decStream.Write(encryptedBytes, 0, encryptedBytes.Length) - decStream.FlushFinalBlock() - Dim result = System.Text.Encoding.Unicode.GetString(ms.ToArray) - result = result.Replace("!Didalog35452Heuchelheim=", "") - ' Convert the plaintext stream to a string. - Return result - Catch ex As Exception - Return Nothing - End Try - - End Function -End Class diff --git a/Services.EmailService/DDEmailService.vbproj b/Services.EmailService/DDEmailService.vbproj index d3f1d31f..3c5add8c 100644 --- a/Services.EmailService/DDEmailService.vbproj +++ b/Services.EmailService/DDEmailService.vbproj @@ -47,6 +47,36 @@ On + + ..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + + + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll + + + False + ..\..\DDModules\Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll + + + False + ..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + + False + ..\..\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll + ..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll @@ -82,6 +112,13 @@ + + EmailService.vb + + + Component + + True @@ -93,12 +130,6 @@ Component - - Component - - - EmailService.vb - True @@ -135,31 +166,5 @@ - - - {8a8f20fc-c46e-41ac-bee7-218366cfff99} - Encryption - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {991d0231-4623-496d-8bd0-9ca906029cbc} - Filesystem - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - - {af664d85-0a4b-4bab-a2f8-83110c06553a} - Messaging - - \ No newline at end of file diff --git a/Services.EmailService/EmailService.Designer.vb b/Services.EmailService/EmailService.Designer.vb index 4b562e79..8d2aed7d 100644 --- a/Services.EmailService/EmailService.Designer.vb +++ b/Services.EmailService/EmailService.Designer.vb @@ -1,11 +1,11 @@ Imports System.ServiceProcess - _ + Partial Class EmailService Inherits System.ServiceProcess.ServiceBase 'UserService überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -17,8 +17,8 @@ Partial Class EmailService End Sub ' Der Haupteinstiegspunkt für den Prozess - _ - _ + + Shared Sub Main() Dim ServicesToRun() As System.ServiceProcess.ServiceBase @@ -39,7 +39,7 @@ Partial Class EmailService ' Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich. ' Das Bearbeiten ist mit dem Komponenten-Designer möglich. ' Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() components = New System.ComponentModel.Container() Me.ServiceName = "Service1" diff --git a/Services.EmailService/EmailService.vb b/Services.EmailService/EmailService.vb index eb8d95e2..f62b5179 100644 --- a/Services.EmailService/EmailService.vb +++ b/Services.EmailService/EmailService.vb @@ -1,11 +1,10 @@ -Imports System.ComponentModel +Imports System.Timers +Imports System.IO +Imports System.ComponentModel Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Database Imports DigitalData.Modules.Messaging -Imports DigitalData.Modules.Filesystem Imports DigitalData.Modules.Language -Imports System.Timers -Imports System.IO Imports DigitalData.Modules.Encryption Public Class EmailService @@ -18,8 +17,9 @@ Public Class EmailService Private _EmailQueue As BackgroundWorker Private _QueueTimer As Timer Private _AnyDatabaseInitialized As Boolean = False - Private _limilab As DigitalData.Modules.Messaging.Limilab - Private _messageSend As Boolean = False + Private _limilab As Limilab + Private _MailSender As MailSender + Private ReadOnly _messageSend As Boolean = False Private Enum DatabaseType Firebird @@ -29,38 +29,26 @@ Public Class EmailService Protected Overrides Sub OnStart(ByVal args() As String) Try ' === Initialize Logger === - _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"), Nothing, "Digital Data", "EmailService") - _LogConfig.Debug = My.Settings.DEBUG + Dim oLogPath = Path.Combine(My.Application.Info.DirectoryPath, "Log") + _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oLogPath, Nothing, "Digital Data", "EmailService") With { + .Debug = My.Settings.DEBUG + } + + Dim oCurrentDomain As AppDomain + AddHandler oCurrentDomain.UnhandledException, AddressOf AppDomain_UnhandledException _Logger = _LogConfig.GetLogger() - Try - Dim directory As New IO.DirectoryInfo(_LogConfig.LogDirectory) - For Each file As IO.FileInfo In directory.GetFiles - If (Now - file.CreationTime).Days > 29 Then - file.Delete() - Else - Exit For - End If - - - Next - Catch ex As Exception - - End Try _Logger.Info("Starting {0}", ServiceName) ' === Inititalize Encryption === - _Logger.NewBlock("Inititalize Encryption") - + _Logger.Debug("Inititalize Encryption") _Encryption = New EncryptionLegacy() - _Logger.EndBlock() - ' === Initialize Databases === - _Logger.NewBlock("Inititalize Databases") + _Logger.Info("Inititalize Databases") If My.Settings.FB_ConnString <> String.Empty Then _Firebird = New Firebird(_LogConfig, My.Settings.FB_ConnString, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW) @@ -89,13 +77,12 @@ Public Class EmailService _AnyDatabaseInitialized = _Firebird?._DBInitialized Or _MSSQL?.DBInitialized Or _MSSQL_Test?.DBInitialized - _Logger.EndBlock() - ' === Initialize Email === - _Logger.NewBlock("Inititalize Email") + _Logger.Debug("Inititalize Email") _limilab = New Limilab(_LogConfig) + _MailSender = New MailSender(_LogConfig) _Logger.EndBlock() @@ -141,13 +128,23 @@ Public Class EmailService End Try End Sub + Private Sub AppDomain_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs) + Dim oException As Exception = e.ExceptionObject + _Logger.Error(oException) + End Sub + Private Sub QueueTimer_Elapsed(sender As Object, e As ElapsedEventArgs) - If Not _EmailQueue.IsBusy Then - _EmailQueue.RunWorkerAsync() - _Logger.Debug("Worker is ready, executing.") - Else - _Logger.Info("Worker is busy, skipping execution.") - End If + Try + If Not _EmailQueue.IsBusy Then + _EmailQueue.RunWorkerAsync() + _Logger.Debug("Worker is ready, executing.") + Else + _Logger.Info("Worker is busy, skipping execution.") + End If + Catch ex As Exception + _Logger.Warn("Error while starting the Worker!") + _Logger.Error(ex) + End Try End Sub Private Sub EmailQueue_DoWork(sender As Object, e As DoWorkEventArgs) @@ -171,11 +168,24 @@ Public Class EmailService End Try End Sub - Private Function SendEmailFrom(Database As DatabaseType, MSSQLInstance As MSSQLServer) + Private Class EmailAccount + Public Guid As Integer + Public Sender As String + Public Server As String + Public Port As String + Public Username As String + Public Password As String + Public AuthType As String + + Public AddedWhen As String + Public ErrorMessage As String + End Class + + Private Function GetAccounts(Database As DatabaseType, MSSQLInstance As MSSQLServer) As List(Of EmailAccount) Try Dim oSQL As String = String.Empty - Dim oEmailAccounts As DataTable - Dim oEmailQueue As DataTable + Dim oEmailAccounts As DataTable = Nothing + Dim oAccounts As New List(Of EmailAccount) Select Case Database Case DatabaseType.Firebird @@ -189,20 +199,94 @@ Public Class EmailService If IsNothing(oEmailAccounts) Then _Logger.Warn("Error in TBEDM_EMAIL_ACCOUNT Query. Exiting.") _Logger.Warn("Query: {0}", oSQL) - Return False + Return Nothing End If If oEmailAccounts.Rows.Count = 0 Then + _Logger.Warn("No Active Email Accounts Configured! Exiting.") + Return Nothing + End If + + _Logger.Debug("Found [{0}] active Accounts.", oEmailAccounts.Rows.Count) + + For Each oRow As DataRow In oEmailAccounts.Rows + Dim oAccount As EmailAccount = Nothing + + Select Case Database + Case DatabaseType.Firebird + oAccount = New EmailAccount With { + .Guid = oRow.Item("GUID"), + .Sender = oRow.Item("EMAIL_FROM"), + .Server = oRow.Item("SERVER_OUT"), + .Port = oRow.Item("PORT_OUT"), + .Username = oRow.Item("EMAIL_USER"), + .Password = oRow.Item("EMAIL_PW"), + .AuthType = oRow.Item("AUTH_TYPE"), + .AddedWhen = "" + } + + Case DatabaseType.MSSQL + oAccount = New EmailAccount With { + .Guid = oRow.Item("GUID"), + .Sender = oRow.Item("EMAIL_FROM"), + .Server = oRow.Item("EMAIL_SMTP"), + .Port = oRow.Item("PORT"), + .Username = oRow.Item("EMAIL_USER"), + .Password = oRow.Item("EMAIL_PW"), + .AuthType = oRow.Item("AUTH_TYPE"), + .AddedWhen = oRow.Item("ADDED_WHEN").ToString, + .ErrorMessage = oRow.ItemEx("ERROR_MSG", String.Empty) + } + + End Select + + If oAccount Is Nothing Then + _Logger.Warn("Account could not be created. Unknown Database type.") + Continue For + End If + + Dim oPasswordPlain = _Encryption.DecryptData(oAccount.Password) + + If IsNothing(oPasswordPlain) Then + _Logger.Warn("Could not decrypt email password for Account [{0}]. Skipping.", oAccount.Sender) + Continue For + End If + + oAccount.Password = oPasswordPlain + oAccounts.Add(oAccount) + + Next + + Return oAccounts + Catch ex As Exception + _Logger.Warn("Error while getting Accounts!") + _Logger.Error(ex) + Return Nothing + End Try + End Function + + Private Function SendEmailFrom(Database As DatabaseType, MSSQLInstance As MSSQLServer) + Try + Dim oSQL As String = String.Empty + Dim oEmailAccounts As List(Of EmailAccount) = GetAccounts(Database, MSSQLInstance) + Dim oEmailQueue As DataTable = Nothing + + If IsNothing(oEmailAccounts) Then + _Logger.Warn("Error in getting Accounts Query. Exiting.") + Return False + End If + + If oEmailAccounts.Count = 0 Then _Logger.Warn("No Active Email Accounts Configured! Exiting.") Return False End If Select Case Database Case DatabaseType.Firebird - oSQL = "SELECT * FROM TBEDM_EMAIL_QUEUE WHERE EMAIL_SENT IS NULL and EMAIL_TO <> ''" + oSQL = "SELECT * FROM TBEDM_EMAIL_QUEUE WHERE EMAIL_SENT IS NULL and EMAIL_TO <> '' ORDER BY EMAIL_ACCOUNT_ID, CREATEDWHEN DESC" oEmailQueue = _Firebird.GetDatatable(oSQL) Case DatabaseType.MSSQL - oSQL = "SELECT * FROM TBEMLP_EMAIL_OUT WHERE EMAIL_SENT IS NULL and EMAIL_ADRESS <> ''" + oSQL = "SELECT * FROM TBEMLP_EMAIL_OUT WHERE EMAIL_SENT IS NULL and EMAIL_ADRESS <> '' ORDER BY SENDING_PROFILE, ADDED_WHEN DESC" oEmailQueue = MSSQLInstance.GetDatatable(oSQL) End Select @@ -217,168 +301,182 @@ Public Class EmailService Return False End If - Dim oEmailTo, oSubject, oBody As String - Dim oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oAttachment, ofromName, oErrorMsg, oMailADDED - Dim oAccountId, oGuid, oJobId As Integer + Dim oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oErrorMsg, oMailADDED + Dim oGuid, oJobId As Integer - For Each oEmailToRow As DataRow In oEmailQueue.Rows - Dim oAccountMatch As Boolean = False - Dim oComment As String = String.Empty + For Each oAccount In oEmailAccounts - Select Case Database - Case DatabaseType.Firebird - oAccountId = oEmailToRow.Item("EMAIL_ACCOUNT_ID") - Case DatabaseType.MSSQL - oAccountId = oEmailToRow.Item("SENDING_PROFILE") - End Select - oErrorMsg = "" - For Each oAccountRow As DataRow In oEmailAccounts.Rows - If oAccountRow.Item("GUID") = oAccountId Then - oAccountMatch = True + Try + _Logger.Debug("Sending mails for Account [{0}]", oAccount.Guid) - Select Case Database - Case DatabaseType.Firebird - oMailFrom = oAccountRow.Item("EMAIL_FROM") - ofromName = oMailFrom - oMailSMTP = oAccountRow.Item("SERVER_OUT") - oMailport = oAccountRow.Item("PORT_OUT") - oMailUser = oAccountRow.Item("EMAIL_USER") - oAuthType = oAccountRow.Item("AUTH_TYPE") - oMailPW = oAccountRow.Item("EMAIL_PW") - oMailADDED = "" - - Case DatabaseType.MSSQL - oMailFrom = oAccountRow.Item("EMAIL_FROM") - ofromName = oAccountRow.Item("EMAIL_FROM_NAME") - oMailSMTP = oAccountRow.Item("EMAIL_SMTP") - oMailport = oAccountRow.Item("PORT") - oMailUser = oAccountRow.Item("EMAIL_USER") - oAuthType = oAccountRow.Item("AUTH_TYPE") - oMailPW = oAccountRow.Item("EMAIL_PW") - oMailADDED = oAccountRow.Item("ADDED_WHEN").ToString - Try - oErrorMsg = IIf(IsDBNull(oAccountRow.Item("ERROR_MSG")), "", oAccountRow.Item("ERROR_MSG")) - Catch ex As Exception - oErrorMsg = "" - End Try - - End Select - - Dim oPasswordPlain = _Encryption.DecryptData(oMailPW) - If Not IsNothing(oPasswordPlain) Then - oMailPW = oPasswordPlain - Else - _Logger.Warn("Could not decrypt email password. Exiting.") - Return False - End If - End If - Next - - If IsNothing(oMailFrom) Or IsNothing(oMailPW) Then - If oAccountMatch Then - _Logger.Warn("Account credentials are empty. Exiting.") - Else - _Logger.Warn("Account credentials are empty and account with Id {0} does not match the configuration. Exiting.", oAccountId) - End If - - Return False - End If - If oErrorMsg <> String.Empty Then - - End If - - Select Case Database - Case DatabaseType.Firebird - oGuid = oEmailToRow.Item("GUID") - oEmailTo = oEmailToRow.Item("EMAIL_TO") - _Logger.Debug("oEmailTo: {0}", oEmailTo) - oSubject = oEmailToRow.Item("EMAIL_SUBJ") - _Logger.Debug("oSubject: {0}", oSubject) - oBody = oEmailToRow.Item("EMAIL_BODY") - _Logger.Debug("oBody: {0}", oBody) - oJobId = oEmailToRow.Item("JOB_ID") - _Logger.Debug("oJOB_ID: {0}", oJobId) - oAttachment = Utils.NotNull(oEmailToRow.Item("EMAIL_ATTMT1"), String.Empty) - - Case DatabaseType.MSSQL - oGuid = oEmailToRow.Item("GUID") - oEmailTo = oEmailToRow.Item("EMAIL_ADRESS") - _Logger.Debug($"oEmailTo: {oEmailTo}") - oSubject = oEmailToRow.Item("EMAIL_SUBJ") - _Logger.Debug($"oSubject: {oSubject}") - oBody = oEmailToRow.Item("EMAIL_BODY") - _Logger.Debug($"oBody: {oBody}") - oJobId = oEmailToRow.Item("REFERENCE_ID") - _Logger.Debug($"oJOB_ID: {oJobId}") - oAttachment = Utils.NotNull(oEmailToRow.Item("EMAIL_ATTMT1"), String.Empty) - End Select - - If oAttachment <> String.Empty Then - If oAttachment.ToString.Contains("\") Then - If IO.File.Exists(oAttachment) = False Then - _Logger.Warn($"Email Attachment [{oAttachment}] not existing!") - oComment = $"Email Attachment [{oAttachment}] not existing!" - oAttachment = String.Empty - Else - _Logger.Debug("Email Attachment is: {0}", oAttachment) - End If - End If - - End If - - _messageSend = _limilab.NewSMTPEmail(oEmailTo, oSubject, oBody, oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, "DDEmailService", oMailADDED, oAttachment) - - If _messageSend Then + Dim oAccountQueue As DataRow() Select Case Database Case DatabaseType.Firebird - oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" - If oSQL.Contains(",COMMENT = ''") Then - oSQL.Replace(",COMMENT = ''", "") - End If - _Firebird.ExecuteNonQuery(oSQL) - Case DatabaseType.MSSQL - oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} " - If oSQL.Contains(",COMMENT = ''") Then - oSQL.Replace(",COMMENT = ''", "") - End If - MSSQLInstance.ExecuteNonQuery(oSQL) + oAccountQueue = oEmailQueue.Select($"EMAIL_ACCOUNT_ID = {oAccount.Guid}") + Case Else + oAccountQueue = oEmailQueue.Select($"SENDING_PROFILE = {oAccount.Guid}") End Select - _Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo}") - Threading.Thread.Sleep(500) - Else - Select Case Database - 'Case DatabaseType.Firebird - ' oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" - ' If oSQL.Contains(",COMMENT = ''") Then - ' oSQL.Replace(",COMMENT = ''", "") - ' End If - ' _Firebird.ExecuteNonQuery(oSQL) - Case DatabaseType.MSSQL - oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET ERROR_TIMESTAMP = GETDATE(),ERROR_MSG = '{_limilab.ErrorMessage}' WHERE GUID = {oGuid} " - MSSQLInstance.ExecuteNonQuery(oSQL) - If _messageSend = True Then - Select Case Database - Case DatabaseType.Firebird - oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" - If oSQL.Contains(",COMMENT = ''") Then - oSQL.Replace(",COMMENT = ''", "") - End If - _Firebird.ExecuteNonQuery(oSQL) - Case DatabaseType.MSSQL - oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} " - If oSQL.Contains(",COMMENT = ''") Then - oSQL.Replace(",COMMENT = ''", "") - End If - MSSQLInstance.ExecuteNonQuery(oSQL) - End Select - _Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo} - althogh there was an error in connection close!") + ' No mails for this profile + If oAccountQueue.Count = 0 Then + _Logger.Debug("No mails for Account [{0}]", oAccount.Guid) + Continue For + End If + + _Logger.Debug("Preparing to send [{0}] mails..", oAccountQueue.Count) + + ' ======= Connect to server ======= + + Dim oResult = _MailSender.ConnectToServer(oAccount.Server, oAccount.Port, oAccount.Username, oAccount.Password, oAccount.AuthType) + + If oResult = False Then + _Logger.Warn("Could not connect to server. Skipping.") + Continue For + + End If + + ' ======= Connect to server ======= + + Dim oSuccessfulSent As New List(Of String) + Dim oFailedSent As New List(Of String) + Dim oTotalSent As New List(Of String) + + For Each oRow As DataRow In oAccountQueue + 'Dim oAccountMatch As Boolean = False + Dim oComment As String = String.Empty + oErrorMsg = "" + + Dim oAttachment = String.Empty + Dim oEmailTo = String.Empty + Dim oSubject = String.Empty + Dim oBody = String.Empty + Dim oAddedWhen = Now + + Select Case Database + Case DatabaseType.Firebird + oGuid = oRow.Item("GUID") + + oEmailTo = oRow.Item("EMAIL_TO") + _Logger.Debug("EMAIL_TO: {0}", oEmailTo) + + oSubject = oRow.Item("EMAIL_SUBJ") + _Logger.Debug("EMAIL_SUBJ: {0}", oSubject) + + oBody = oRow.Item("EMAIL_BODY") + _Logger.Debug("EMAIL_BODY: {0}", oBody) + + oJobId = oRow.Item("JOB_ID") + _Logger.Debug("JOB_ID: {0}", oJobId) + + oAttachment = oRow.ItemEx("EMAIL_ATTMT1", String.Empty) + + Case DatabaseType.MSSQL + oGuid = oRow.ItemEx("GUID", 0) + + oEmailTo = oRow.ItemEx("EMAIL_ADRESS", String.Empty) + _Logger.Debug($"EMAIL_ADRESS: {oEmailTo}") + + oSubject = oRow.ItemEx("EMAIL_SUBJ", String.Empty) + _Logger.Debug($"EMAIL_SUBJ: {oSubject}") + + oBody = oRow.ItemEx("EMAIL_BODY", String.Empty) + _Logger.Debug($"EMAIL_BODY: {oBody}") + + oJobId = oRow.ItemEx("REFERENCE_ID", 0) + _Logger.Debug($"REFERENCE_ID: {oJobId}") + + oAddedWhen = oRow.ItemEx("ADDED_WHEN", Now) + + oAttachment = oRow.ItemEx("EMAIL_ATTMT1", String.Empty) + End Select + + If oAttachment <> String.Empty Then + If oAttachment.ToString.Contains("\") Then + If File.Exists(oAttachment) = False Then + _Logger.Warn($"Email Attachment [{oAttachment}] not existing!") + oComment = $"Email Attachment [{oAttachment}] not existing!" + oAttachment = String.Empty + Else + _Logger.Debug("Email Attachment is: {0}", oAttachment) + End If End If - End Select - End If - Next + End If + + Dim oAddresses As List(Of String) = oEmailTo.Split(";").ToList() + Dim oAttachments As New List(Of String) From {oAttachment} + Dim oMessageSent = _MailSender.SendMail(oAddresses, oAccount.Sender, oSubject, oBody, oAddedWhen, oAttachments, False) + + + If oMessageSent Then + oTotalSent.Add(oEmailTo) + oSuccessfulSent.Add(oEmailTo) + + Select Case Database + Case DatabaseType.Firebird + oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + _Firebird.ExecuteNonQuery(oSQL) + Case DatabaseType.MSSQL + oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} " + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + MSSQLInstance.ExecuteNonQuery(oSQL) + End Select + _Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo}") + + Else + oTotalSent.Add(oEmailTo) + oFailedSent.Add(oEmailTo) + + Select Case Database + + Case DatabaseType.MSSQL + oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET ERROR_TIMESTAMP = GETDATE(),ERROR_MSG = '{_limilab.ErrorMessage}' WHERE GUID = {oGuid} " + MSSQLInstance.ExecuteNonQuery(oSQL) + If _messageSend = True Then + Select Case Database + Case DatabaseType.Firebird + oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + _Firebird.ExecuteNonQuery(oSQL) + Case DatabaseType.MSSQL + oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} " + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + MSSQLInstance.ExecuteNonQuery(oSQL) + End Select + _Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo} - althogh there was an error in connection close!") + + End If + + End Select + End If + + Next ' Account Queue + + Dim oDisconnected = _MailSender.DisconnectFromServer() + If oDisconnected = False Then + _Logger.Warn("Error while disconnecting from Server. Continuing.") + End If + + _Logger.Info("Sent [{0}] mails for account [{1}]", oTotalSent.Count, oAccount.Guid) + _Logger.Info("Successful: [{0}], Failed: [{1}]", oSuccessfulSent.Count, oFailedSent.Count) + Catch ex As Exception + + _Logger.Warn("Could not send mails for account [{0}]", oAccount.Guid) + _Logger.Error(ex) + + End Try + + Next ' Accounts Return True Catch ex As Exception @@ -397,6 +495,7 @@ Public Class EmailService _Logger.Error(e.Error) End If Catch ex As Exception + _Logger.Warn("Error while processing result of Worker!") _Logger.Error(e.Error) End Try End Sub @@ -405,6 +504,7 @@ Public Class EmailService Try _Logger.Warn("Service {0} was stopped.", ServiceName) Catch ex As Exception + _Logger.Warn("Error while stopping service!") _Logger.Error(ex) End Try End Sub diff --git a/Services.EmailService/EmailServiceOld.vb b/Services.EmailService/EmailServiceOld.vb new file mode 100644 index 00000000..47f3a320 --- /dev/null +++ b/Services.EmailService/EmailServiceOld.vb @@ -0,0 +1,419 @@ +Imports System.ComponentModel +Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Messaging +Imports DigitalData.Modules.Filesystem +Imports DigitalData.Modules.Language +Imports System.Timers +Imports System.IO +Imports DigitalData.Modules.Encryption + +Public Class EmailServiceOld + Private _Logger As Logger + Private _LogConfig As LogConfig + Private _Firebird As Firebird + Private _MSSQL As MSSQLServer + Private _MSSQL_Test As MSSQLServer + Private _Encryption As EncryptionLegacy + Private _EmailQueue As BackgroundWorker + Private _QueueTimer As Timer + Private _AnyDatabaseInitialized As Boolean = False + Private _limilab As DigitalData.Modules.Messaging.Limilab + Private _messageSend As Boolean = False + + Private Enum DatabaseType + Firebird + MSSQL + End Enum + + ' Original Line + 'Protected Overrides Sub OnStart(ByVal args() As String) + Protected Sub OnStart(ByVal args() As String) + Try + ' === Initialize Logger === + _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"), Nothing, "Digital Data", "EmailService") + _LogConfig.Debug = My.Settings.DEBUG + + _Logger = _LogConfig.GetLogger() + Try + Dim directory As New IO.DirectoryInfo(_LogConfig.LogDirectory) + + For Each file As IO.FileInfo In directory.GetFiles + If (Now - file.CreationTime).Days > 29 Then + file.Delete() + Else + Exit For + End If + + + Next + Catch ex As Exception + + End Try + + ' Original Line + '_Logger.Info("Starting {0}", ServiceName) + _Logger.Info("Starting {0}", "Email Service") + + ' === Inititalize Encryption === + + _Logger.NewBlock("Inititalize Encryption") + + _Encryption = New EncryptionLegacy() + + _Logger.EndBlock() + + ' === Initialize Databases === + + _Logger.NewBlock("Inititalize Databases") + + If My.Settings.FB_ConnString <> String.Empty Then + _Firebird = New Firebird(_LogConfig, My.Settings.FB_ConnString, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW) + + If _Firebird._DBInitialized = False Then + _Logger.Warn("Firebird Connection could not be established. Check the Error Log") + End If + End If + + If My.Settings.SQLSERVER_CS <> String.Empty Then + _MSSQL = New MSSQLServer(_LogConfig, My.Settings.SQLSERVER_CS) + + If _MSSQL.DBInitialized = False Then + _Logger.Warn("MSSQL Connection could not be established. Check the Error Log") + End If + End If + + If My.Settings.SQLSERVER_CS_TEST <> String.Empty Then + + _MSSQL_Test = New MSSQLServer(_LogConfig, My.Settings.SQLSERVER_CS_TEST) + + If _MSSQL_Test.DBInitialized = False Then + _Logger.Warn("MSSQL Test Connection could not be established. Check the Error Log") + End If + End If + + _AnyDatabaseInitialized = _Firebird?._DBInitialized Or _MSSQL?.DBInitialized Or _MSSQL_Test?.DBInitialized + + _Logger.EndBlock() + + ' === Initialize Email === + + _Logger.NewBlock("Inititalize Email") + + _limilab = New Limilab(_LogConfig) + + _Logger.EndBlock() + + ' === Initialize Queue === + + _Logger.NewBlock("Inititalize Queue") + + If _AnyDatabaseInitialized Then + _EmailQueue = New BackgroundWorker() With { + .WorkerReportsProgress = True, + .WorkerSupportsCancellation = True + } + + AddHandler _EmailQueue.DoWork, AddressOf EmailQueue_DoWork + AddHandler _EmailQueue.RunWorkerCompleted, AddressOf EmailQueue_Completed + End If + + _Logger.EndBlock() + + ' === Initialize & Start Timer === + + _Logger.NewBlock("Initialize & Start Timer") + + If _AnyDatabaseInitialized Then + _QueueTimer = New Timer With { + .Interval = 60000, + .Enabled = True + } + + AddHandler _QueueTimer.Elapsed, AddressOf QueueTimer_Elapsed + End If + + _Logger.EndBlock() + + ' === Initial Run === + + If _AnyDatabaseInitialized Then + _Logger.Info("Starting Initial Run...") + _EmailQueue.RunWorkerAsync() + End If + Catch ex As Exception + _Logger.Error(ex) + End Try + End Sub + + Private Sub QueueTimer_Elapsed(sender As Object, e As ElapsedEventArgs) + If Not _EmailQueue.IsBusy Then + _EmailQueue.RunWorkerAsync() + _Logger.Debug("Worker is ready, executing.") + Else + _Logger.Info("Worker is busy, skipping execution.") + End If + End Sub + + Private Sub EmailQueue_DoWork(sender As Object, e As DoWorkEventArgs) + Try + If _Firebird?._DBInitialized Then + _Logger.Debug("Starting Firebird Sending") + SendEmailFrom(DatabaseType.Firebird, Nothing) + End If + + If _MSSQL?.DBInitialized Then + _Logger.Debug("Starting MSSQL Sending") + SendEmailFrom(DatabaseType.MSSQL, _MSSQL) + End If + + If _MSSQL_Test?.DBInitialized Then + _Logger.Debug("Starting MSSQL Test Sending") + SendEmailFrom(DatabaseType.MSSQL, _MSSQL_Test) + End If + Catch ex As Exception + _Logger.Error(ex) + End Try + End Sub + + Private Function SendEmailFrom(Database As DatabaseType, MSSQLInstance As MSSQLServer) + Try + Dim oSQL As String = String.Empty + Dim oEmailAccounts As DataTable + Dim oEmailQueue As DataTable + + Select Case Database + Case DatabaseType.Firebird + oSQL = "SELECT * FROM TBEDM_EMAIL_ACCOUNT WHERE ACTIVE = True" + oEmailAccounts = _Firebird.GetDatatable(oSQL) + Case DatabaseType.MSSQL + oSQL = "SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1" + oEmailAccounts = MSSQLInstance.GetDatatable(oSQL) + End Select + + If IsNothing(oEmailAccounts) Then + _Logger.Warn("Error in TBEDM_EMAIL_ACCOUNT Query. Exiting.") + _Logger.Warn("Query: {0}", oSQL) + Return False + End If + + If oEmailAccounts.Rows.Count = 0 Then + _Logger.Warn("No Active Email Accounts Configured! Exiting.") + Return False + End If + + Select Case Database + Case DatabaseType.Firebird + oSQL = "SELECT * FROM TBEDM_EMAIL_QUEUE WHERE EMAIL_SENT IS NULL and EMAIL_TO <> ''" + oEmailQueue = _Firebird.GetDatatable(oSQL) + Case DatabaseType.MSSQL + oSQL = "SELECT * FROM TBEMLP_EMAIL_OUT WHERE EMAIL_SENT IS NULL and EMAIL_ADRESS <> ''" + oEmailQueue = MSSQLInstance.GetDatatable(oSQL) + End Select + + If IsNothing(oEmailQueue) Then + _Logger.Warn("Error in EmailQueue Query. Exiting.") + _Logger.Warn("Query: {0}", oSQL) + Return False + End If + + If oEmailQueue.Rows.Count = 0 Then + _Logger.Debug("Email Queue is empty. Exiting.") + Return False + End If + + Dim oEmailTo, oSubject, oBody As String + Dim oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, oAttachment, ofromName, oErrorMsg, oMailADDED + Dim oAccountId, oGuid, oJobId As Integer + + For Each oEmailToRow As DataRow In oEmailQueue.Rows + Dim oAccountMatch As Boolean = False + Dim oComment As String = String.Empty + + Select Case Database + Case DatabaseType.Firebird + oAccountId = oEmailToRow.Item("EMAIL_ACCOUNT_ID") + Case DatabaseType.MSSQL + oAccountId = oEmailToRow.Item("SENDING_PROFILE") + End Select + oErrorMsg = "" + For Each oAccountRow As DataRow In oEmailAccounts.Rows + If oAccountRow.Item("GUID") = oAccountId Then + oAccountMatch = True + + Select Case Database + Case DatabaseType.Firebird + oMailFrom = oAccountRow.Item("EMAIL_FROM") + ofromName = oMailFrom + oMailSMTP = oAccountRow.Item("SERVER_OUT") + oMailport = oAccountRow.Item("PORT_OUT") + oMailUser = oAccountRow.Item("EMAIL_USER") + oAuthType = oAccountRow.Item("AUTH_TYPE") + oMailPW = oAccountRow.Item("EMAIL_PW") + oMailADDED = "" + + Case DatabaseType.MSSQL + oMailFrom = oAccountRow.Item("EMAIL_FROM") + ofromName = oAccountRow.Item("EMAIL_FROM_NAME") + oMailSMTP = oAccountRow.Item("EMAIL_SMTP") + oMailport = oAccountRow.Item("PORT") + oMailUser = oAccountRow.Item("EMAIL_USER") + oAuthType = oAccountRow.Item("AUTH_TYPE") + oMailPW = oAccountRow.Item("EMAIL_PW") + oMailADDED = oAccountRow.Item("ADDED_WHEN").ToString + Try + oErrorMsg = IIf(IsDBNull(oAccountRow.Item("ERROR_MSG")), "", oAccountRow.Item("ERROR_MSG")) + Catch ex As Exception + oErrorMsg = "" + End Try + + End Select + + Dim oPasswordPlain = _Encryption.DecryptData(oMailPW) + If Not IsNothing(oPasswordPlain) Then + oMailPW = oPasswordPlain + Else + _Logger.Warn("Could not decrypt email password. Exiting.") + Return False + End If + End If + Next + + If IsNothing(oMailFrom) Or IsNothing(oMailPW) Then + If oAccountMatch Then + _Logger.Warn("Account credentials are empty. Exiting.") + Else + _Logger.Warn("Account credentials are empty and account with Id {0} does not match the configuration. Exiting.", oAccountId) + End If + + Return False + End If + If oErrorMsg <> String.Empty Then + + End If + + Select Case Database + Case DatabaseType.Firebird + oGuid = oEmailToRow.Item("GUID") + oEmailTo = oEmailToRow.Item("EMAIL_TO") + _Logger.Debug("oEmailTo: {0}", oEmailTo) + oSubject = oEmailToRow.Item("EMAIL_SUBJ") + _Logger.Debug("oSubject: {0}", oSubject) + oBody = oEmailToRow.Item("EMAIL_BODY") + _Logger.Debug("oBody: {0}", oBody) + oJobId = oEmailToRow.Item("JOB_ID") + _Logger.Debug("oJOB_ID: {0}", oJobId) + oAttachment = Utils.NotNull(oEmailToRow.Item("EMAIL_ATTMT1"), String.Empty) + + Case DatabaseType.MSSQL + oGuid = oEmailToRow.Item("GUID") + oEmailTo = oEmailToRow.Item("EMAIL_ADRESS") + _Logger.Debug($"oEmailTo: {oEmailTo}") + oSubject = oEmailToRow.Item("EMAIL_SUBJ") + _Logger.Debug($"oSubject: {oSubject}") + oBody = oEmailToRow.Item("EMAIL_BODY") + _Logger.Debug($"oBody: {oBody}") + oJobId = oEmailToRow.Item("REFERENCE_ID") + _Logger.Debug($"oJOB_ID: {oJobId}") + oAttachment = Utils.NotNull(oEmailToRow.Item("EMAIL_ATTMT1"), String.Empty) + End Select + + If oAttachment <> String.Empty Then + If oAttachment.ToString.Contains("\") Then + If IO.File.Exists(oAttachment) = False Then + _Logger.Warn($"Email Attachment [{oAttachment}] not existing!") + oComment = $"Email Attachment [{oAttachment}] not existing!" + oAttachment = String.Empty + Else + _Logger.Debug("Email Attachment is: {0}", oAttachment) + End If + End If + + End If + + _messageSend = _limilab.NewSMTPEmail(oEmailTo, oSubject, oBody, oMailFrom, oMailSMTP, oMailport, oMailUser, oMailPW, oAuthType, "DDEmailService", oMailADDED, oAttachment) + + If _messageSend Then + + Select Case Database + Case DatabaseType.Firebird + oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + _Firebird.ExecuteNonQuery(oSQL) + Case DatabaseType.MSSQL + oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} " + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + MSSQLInstance.ExecuteNonQuery(oSQL) + End Select + _Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo}") + Threading.Thread.Sleep(500) + Else + Select Case Database + 'Case DatabaseType.Firebird + ' oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" + ' If oSQL.Contains(",COMMENT = ''") Then + ' oSQL.Replace(",COMMENT = ''", "") + ' End If + ' _Firebird.ExecuteNonQuery(oSQL) + Case DatabaseType.MSSQL + oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET ERROR_TIMESTAMP = GETDATE(),ERROR_MSG = '{_limilab.ErrorMessage}' WHERE GUID = {oGuid} " + MSSQLInstance.ExecuteNonQuery(oSQL) + If _messageSend = True Then + Select Case Database + Case DatabaseType.Firebird + oSQL = $"UPDATE TBEDM_EMAIL_QUEUE SET EMAIL_SENT = CURRENT_TIMESTAMP,COMMENT = '{oComment}' WHERE GUID = {oGuid}" + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + _Firebird.ExecuteNonQuery(oSQL) + Case DatabaseType.MSSQL + oSQL = $"UPDATE TBEMLP_EMAIL_OUT SET EMAIL_SENT = GETDATE(),COMMENT = '{oComment}' WHERE GUID = {oGuid} " + If oSQL.Contains(",COMMENT = ''") Then + oSQL.Replace(",COMMENT = ''", "") + End If + MSSQLInstance.ExecuteNonQuery(oSQL) + End Select + _Logger.Info($"EmailID [{oGuid.ToString}] has been send to: {oEmailTo} - althogh there was an error in connection close!") + + End If + + End Select + End If + Next + + Return True + Catch ex As Exception + _Logger.Warn("Error in SendEmailFrom. Email was not sent.") + _Logger.Error(ex) + Return False + End Try + End Function + + Private Sub EmailQueue_Completed(sender As Object, e As RunWorkerCompletedEventArgs) + Try + If e.Cancelled Then + _Logger.Warn("EmailQueue has been cancelled manually!") + ElseIf e.Error IsNot Nothing Then + _Logger.Warn("Unexpected Error in EmailQueue: {0}", e.Error.Message) + _Logger.Error(e.Error) + End If + Catch ex As Exception + _Logger.Error(e.Error) + End Try + End Sub + + 'Original Line + 'Protected Overrides Sub OnStop() + Protected Sub OnStop() + Try + '_Logger.Warn("Service {0} was stopped.", ServiceName) + _Logger.Warn("Service {0} was stopped.", "Email Service") + Catch ex As Exception + _Logger.Error(ex) + End Try + End Sub +End Class diff --git a/Services.LicenseService/DDEDMLicenseService.vbproj b/Services.LicenseService/DDEDMLicenseService.vbproj index e7bc385d..e39e4787 100644 --- a/Services.LicenseService/DDEDMLicenseService.vbproj +++ b/Services.LicenseService/DDEDMLicenseService.vbproj @@ -47,6 +47,14 @@ DDLicenseService.WindowsService + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\NLog.4.7.10\lib\net45\NLog.dll @@ -127,15 +135,5 @@ - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - \ No newline at end of file diff --git a/Services.ZUGFeRDService/Config.vb b/Services.ZUGFeRDService/Config.vb index ae94968c..1281e170 100644 --- a/Services.ZUGFeRDService/Config.vb +++ b/Services.ZUGFeRDService/Config.vb @@ -31,6 +31,7 @@ Public Property MaxAttachmentSizeInMegaBytes As Integer = -1 + Public Property RejectionTransferEnabled As Boolean = True Public Property RejectionTransferTimeUnit As String = "HOUR" Public Property RejectionTransferTimeValue As Integer = 12 End Class diff --git a/Services.ZUGFeRDService/DDZUGFeRDService.vbproj b/Services.ZUGFeRDService/DDZUGFeRDService.vbproj index 91ba160d..06f4b385 100644 --- a/Services.ZUGFeRDService/DDZUGFeRDService.vbproj +++ b/Services.ZUGFeRDService/DDZUGFeRDService.vbproj @@ -47,6 +47,26 @@ On + + False + ..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + False + ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + False + ..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll + + + False + ..\..\DDModules\Jobs\bin\Debug\DigitalData.Modules.Jobs.dll + + + False + ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll @@ -134,27 +154,5 @@ - - - {44982f9b-6116-44e2-85d0-f39650b1ef99} - Config - - - {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} - Database - - - {ab6f09bf-e794-4f6a-94bb-c97c0ba84d64} - Interfaces - - - {39ec839a-3c30-4922-a41e-6b09d1dde5c3} - Jobs - - - {903b2d7d-3b80-4be9-8713-7447b704e1b0} - Logging - - \ No newline at end of file diff --git a/Services.ZUGFeRDService/My Project/AssemblyInfo.vb b/Services.ZUGFeRDService/My Project/AssemblyInfo.vb index d767b756..78d35980 100644 --- a/Services.ZUGFeRDService/My Project/AssemblyInfo.vb +++ b/Services.ZUGFeRDService/My Project/AssemblyInfo.vb @@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/Services.ZUGFeRDService/ThreadRunner.vb b/Services.ZUGFeRDService/ThreadRunner.vb index 80037170..1a2a7e44 100644 --- a/Services.ZUGFeRDService/ThreadRunner.vb +++ b/Services.ZUGFeRDService/ThreadRunner.vb @@ -182,7 +182,11 @@ Public Class ThreadRunner Private Sub DoWork(sender As Object, e As DoWorkEventArgs) Handles _workerThread.DoWork Try - MaybeUpdateRejected() + If _config.Config.Custom.RejectionTransferEnabled = True Then + MaybeUpdateRejected() + Else + _logger.Debug("Transferring rejection status to Firebird is disabled.") + End If Dim oArgs As WorkerArgs = e.Argument _logger.Debug("Background worker running..") diff --git a/State/ModuleState.vb b/State/ModuleState.vb deleted file mode 100644 index 9f960d5f..00000000 --- a/State/ModuleState.vb +++ /dev/null @@ -1,7 +0,0 @@ -Namespace State - Public Class ModuleState - Public Property HasAccess As Boolean - Public Property IsAdmin As Boolean - Public Property LoggedIn As Integer - End Class -End Namespace \ No newline at end of file diff --git a/State/My Project/Application.Designer.vb b/State/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/State/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/State/My Project/Application.myapp b/State/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/State/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/State/My Project/AssemblyInfo.vb b/State/My Project/AssemblyInfo.vb deleted file mode 100644 index 09bb81e4..00000000 --- a/State/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' indem Sie "*" wie unten gezeigt eingeben: -' - - - diff --git a/State/My Project/Resources.Designer.vb b/State/My Project/Resources.Designer.vb deleted file mode 100644 index cbcc5534..00000000 --- a/State/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.State.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/State/My Project/Resources.resx b/State/My Project/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/State/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/State/My Project/Settings.Designer.vb b/State/My Project/Settings.Designer.vb deleted file mode 100644 index dec125aa..00000000 --- a/State/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.State.My.MySettings - Get - Return Global.DigitalData.Modules.State.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/State/My Project/Settings.settings b/State/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/State/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/State/ServiceState.vb b/State/ServiceState.vb deleted file mode 100644 index 5b00e66e..00000000 --- a/State/ServiceState.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports DigitalData.Modules.EDMI.API - -Namespace State - Public Class ServiceState - Public Property IsOnline As Boolean = False - Public Property IsActive As Boolean = False - Public Property LastChecked As Date = Date.Now - Public Property Address As String = String.Empty - Public Property Client As Client = Nothing - End Class -End Namespace \ No newline at end of file diff --git a/State/SettingsState.vb b/State/SettingsState.vb deleted file mode 100644 index 6a9e50e6..00000000 --- a/State/SettingsState.vb +++ /dev/null @@ -1,5 +0,0 @@ -Namespace State - Public Class SettingsState - Public GdPictureKey As String = String.Empty - End Class -End Namespace \ No newline at end of file diff --git a/State/State.vbproj b/State/State.vbproj deleted file mode 100644 index ce551278..00000000 --- a/State/State.vbproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - AnyCPU - {3D8AEB1A-1FAB-4107-8FFE-67337C281AD0} - Library - DigitalData.Modules.State - DigitalData.Modules.State - 512 - Windows - v4.6.1 - true - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.State.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.State.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - True - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - \ No newline at end of file diff --git a/State/UserState.vb b/State/UserState.vb deleted file mode 100644 index ffe668e5..00000000 --- a/State/UserState.vb +++ /dev/null @@ -1,33 +0,0 @@ -Imports System.Threading -Imports System.Environment - -Namespace State - ''' - ''' Helper Class to hold User State - ''' - Public Class UserState - Public Property UserId As Integer - Public Property UserName As String - Public Property Surname As String - Public Property GivenName As String - Public Property ShortName As String - Public Property Email As String - Public Property MachineName As String - Public Property DateFormat As String - Public Property Language As String - Public Property LanguageID As Int16 - Public Property IsAdmin As Boolean = False - - Public Property HideBasicConfig As Boolean = False - - ''' - ''' Initialize user object with values that can be read from the environment - ''' - Public Sub New() - Language = Thread.CurrentThread.CurrentCulture.Name - UserName = Environment.UserName - MachineName = Environment.MachineName - End Sub - End Class -End Namespace - diff --git a/WEBSERVICES/ZUGFeRDRESTService/Database.cs b/WEBSERVICES/ZUGFeRDRESTService/Database.cs index a16138ac..4278058b 100644 --- a/WEBSERVICES/ZUGFeRDRESTService/Database.cs +++ b/WEBSERVICES/ZUGFeRDRESTService/Database.cs @@ -30,7 +30,7 @@ namespace ZUGFeRDRESTService MSSQL = new MSSQLServer(LogConfig, AppConfig["MSSQLConnectionString"]); Firebird = new Firebird(LogConfig, FBConfig["Datasource"], FBConfig["Database"], FBConfig["Username"], FBConfig["Password"]); - Logger.Debug("MSSQL Connection: [{0}]", MSSQL.CurrentSQLConnectionString); + Logger.Debug("MSSQL Connection: [{0}]", MSSQL.CurrentConnectionString); Logger.Debug("Firebird Connection: [{0}]", Firebird.ConnectionString); } diff --git a/WEBSERVICES/ZUGFeRDRESTService/ZUGFeRDRESTService.csproj b/WEBSERVICES/ZUGFeRDRESTService/ZUGFeRDRESTService.csproj index a8fcddbf..888619ca 100644 --- a/WEBSERVICES/ZUGFeRDRESTService/ZUGFeRDRESTService.csproj +++ b/WEBSERVICES/ZUGFeRDRESTService/ZUGFeRDRESTService.csproj @@ -15,9 +15,18 @@ - - - + + ..\..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll + + + ..\..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll + + + ..\..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll + + + ..\..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + diff --git a/Windows/Animator.vb b/Windows/Animator.vb deleted file mode 100644 index c1c14b51..00000000 --- a/Windows/Animator.vb +++ /dev/null @@ -1,82 +0,0 @@ -Imports System.Drawing -Imports System.Windows.Forms -Public Class Animator - Private Const DEFAULT_POPUP_OPACITY = 0.5 - Private Const DEFAULT_POPUP_SIZE = 30 - Private Const DEFAULT_POPUP_FADE_SPEED = 10 - Private Const DEFAULT_POPUP_FADE_INTERVAL = 250 - - ''' - ''' Time the popup stays visible between the animations - ''' - Public Property AnimationInterval As Integer - ''' - ''' Basevalue for calculating the time the popup takes to animate - ''' - Public Property AnimationSpeed As Integer - ''' - ''' Opacity the popup animates to (From 0.0 to .., back to 0.0) - ''' - Public Property PopupOpacity As Double - ''' - ''' Color of the popup - ''' - ''' - Public Property PopupColor As Color - ''' - ''' Size of the popup in width and height - ''' - Public Property PopupSize As Size - - Public Sub New() - _PopupSize = New Size(DEFAULT_POPUP_SIZE, DEFAULT_POPUP_SIZE) - _AnimationSpeed = DEFAULT_POPUP_FADE_SPEED - _AnimationInterval = DEFAULT_POPUP_FADE_INTERVAL - _PopupOpacity = DEFAULT_POPUP_OPACITY - _PopupColor = Color.FromArgb(255, 214, 49) - End Sub - - Public Async Sub Highlight(Position As Point) - Dim oForm = GetPopup(Position, PopupSize) - oForm.Show() - FadeIn(oForm, _PopupOpacity, _AnimationSpeed / 2) - Await Task.Delay(_AnimationInterval) - FadeOut(oForm, _AnimationSpeed * 2) - End Sub - - Private Function GetPopup(CursorPosition As Point, PopupSize As Size) As frmPopup - Dim oFormLocation = New Point( - CursorPosition.X - (PopupSize.Width / 2), - CursorPosition.Y - (PopupSize.Height / 2)) - - Return New frmPopup() With { - .Location = oFormLocation, - .StartPosition = FormStartPosition.Manual, - .Size = PopupSize, - .MaximumSize = PopupSize, - .MinimumSize = PopupSize, - .Opacity = 0, - .ShowInTaskbar = False, - .BackColor = _PopupColor, - .TopMost = True - } - End Function - - Private Async Sub FadeIn(ByVal o As Form, finalOpacity As Double, ByVal Optional interval As Integer = 80) - While o.Opacity < finalOpacity - Await Task.Delay(interval) - o.Opacity += 0.05 - End While - - o.Opacity = finalOpacity - End Sub - - Private Async Sub FadeOut(ByVal o As Form, ByVal Optional interval As Integer = 80) - While o.Opacity > 0.0 - Await Task.Delay(interval) - o.Opacity -= 0.05 - End While - - o.Opacity = 0 - End Sub -End Class diff --git a/Windows/Animator/frmPopup.Designer.vb b/Windows/Animator/frmPopup.Designer.vb deleted file mode 100644 index 09bb5b0d..00000000 --- a/Windows/Animator/frmPopup.Designer.vb +++ /dev/null @@ -1,43 +0,0 @@ -Imports System.Windows.Forms - - -Partial Class frmPopup - Inherits Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - 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. - _ - Private Sub InitializeComponent() - Me.SuspendLayout() - ' - 'frmPopup - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.BackColor = System.Drawing.Color.Yellow - Me.ClientSize = New System.Drawing.Size(30, 30) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None - Me.MaximumSize = New System.Drawing.Size(30, 30) - Me.MinimumSize = New System.Drawing.Size(30, 30) - Me.Name = "frmPopup" - Me.Text = "frmPopup" - Me.ResumeLayout(False) - - End Sub -End Class diff --git a/Windows/Animator/frmPopup.resx b/Windows/Animator/frmPopup.resx deleted file mode 100644 index 1af7de15..00000000 --- a/Windows/Animator/frmPopup.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Windows/Animator/frmPopup.vb b/Windows/Animator/frmPopup.vb deleted file mode 100644 index 5a5f2724..00000000 --- a/Windows/Animator/frmPopup.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class frmPopup - -End Class \ No newline at end of file diff --git a/Windows/Drawing.vb b/Windows/Drawing.vb deleted file mode 100644 index b3f3286e..00000000 --- a/Windows/Drawing.vb +++ /dev/null @@ -1,27 +0,0 @@ -Imports System.Drawing -Imports DigitalData.Modules.Logging - -Public Class Drawing - Private _Logger As Logger - - Public Sub New(LogConfig As LogConfig) - _Logger = LogConfig.GetLogger() - End Sub - - Public Sub DrawRectangle(Bounds As Rectangle) - Dim oContext As IntPtr - oContext = NativeMethods.GetDC(IntPtr.Zero) - - Try - Dim g As Graphics - g = Graphics.FromHdc(oContext) - Try - g.DrawRectangle(Pens.Red, Bounds) - Finally - g.Dispose() - End Try - Finally - NativeMethods.ReleaseDC(IntPtr.Zero, oContext) - End Try - End Sub -End Class diff --git a/Windows/File.vb b/Windows/File.vb deleted file mode 100644 index 4f003e76..00000000 --- a/Windows/File.vb +++ /dev/null @@ -1,36 +0,0 @@ -Imports System.ComponentModel -Imports System.Runtime.InteropServices -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Windows.NativeMethods - -Public Class File - Private _LogConfig As LogConfig - Private _Logger As Logger - - Public Sub New(LogConfig As LogConfig) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - End Sub - - Public Function OpenFileProperties(FilePath As String) As Boolean - Try - Dim oShellExecuteInfo As New ShellExecuteInfo() - oShellExecuteInfo.cbSize = Marshal.SizeOf(oShellExecuteInfo) - oShellExecuteInfo.lpVerb = "properties" - oShellExecuteInfo.lpFile = FilePath - oShellExecuteInfo.nShow = SW_SHOW - oShellExecuteInfo.fMask = SEE_MASK_INVOKEIDLIST - - If Not ShellExecuteEx(oShellExecuteInfo) Then - Dim oWin32Error = Marshal.GetLastWin32Error() - Dim oException As New Win32Exception(oWin32Error) - Throw oException - End If - - Return True - Catch ex As Exception - _Logger.Error(ex) - Return False - End Try - End Function -End Class diff --git a/Windows/FileDrop.vb b/Windows/FileDrop.vb deleted file mode 100644 index 51fce442..00000000 --- a/Windows/FileDrop.vb +++ /dev/null @@ -1,363 +0,0 @@ -Imports System.Text -Imports DigitalData.Modules.Base -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language.Utils -Imports Microsoft.Office.Interop -Imports System.Windows.Forms - -Partial Public Class FileDrop - Inherits BaseClass - - Public Enum FileFormat - OutlookAttachment - OutlookMail - ThunderbirdAttachment - ThunderbirdMail - MailWithoutAttachments - LocalFile - Unknown - End Enum - - Public Enum FileSource - DragDrop - FolderWatch - Attachment - End Enum - - Public ReadOnly Property TempFileSubDirectory - Get - Return _TempFileSubDirectory - End Get - End Property - - Private _TempFileSubDirectory As String = "FileDrop" - - Public Sub New(pLogConfig As LogConfig) - MyBase.New(pLogConfig) - End Sub - - Public Sub New(pLogConfig As LogConfig, pTempFileSubDirectory As String) - MyClass.New(pLogConfig) - _TempFileSubDirectory = pTempFileSubDirectory - End Sub - - - - Public Function GetFileFormats(pEvent As DragEventArgs) As List(Of String) - Dim oFormats As New List(Of String) - - For Each oFormat As String In pEvent.Data.GetFormats(False) - oFormats.Add(oFormat) - Next - - Return oFormats - End Function - - Public Function GetFileFormat(pEvent As DragEventArgs) As FileFormat - Logger.Debug("Determining FileFormat") - - If IsThunderbird(pEvent) Then - Logger.Debug("File is a Thunderbird File") - - If IsThunderbirdAttachment(pEvent) Then - Return FileFormat.ThunderbirdAttachment - - ElseIf IsThunderbirdMail(pEvent) Then - Return FileFormat.ThunderbirdMail - - Else - Return FileFormat.Unknown - End If - End If - - If IsOutlook(pEvent) Then - Logger.Debug("File is an Outlook File") - - If IsOutlookAttachment(pEvent) Then - Return FileFormat.OutlookAttachment - - ElseIf IsOutlookMail(pEvent) Then - Return FileFormat.OutlookMail - - Else - Return FileFormat.Unknown - End If - End If - - If IsNormalFile(pEvent) Then - Logger.Debug("File is a normal File") - - Return FileFormat.LocalFile - - Else - Return FileFormat.Unknown - End If - End Function - - Public Function GetFiles(pEvent As DragEventArgs) As List(Of DroppedFile) - Try - Dim oFormats As List(Of String) = GetFileFormats(pEvent) - Dim oFormatString = String.Join(", ", oFormats) - Logger.Debug("Available Formats: [{0}]", oFormatString) - - Dim oFormat = GetFileFormat(pEvent) - Logger.Debug("Format: [{0}]", oFormat.ToString) - - Dim oFiles As New List(Of DroppedFile) - - Select Case oFormat - Case FileFormat.OutlookAttachment, FileFormat.OutlookMail - Dim oFilePaths = GetOutlookFilePath(pEvent) - - For Each oPath In oFilePaths - oFiles.Add(New DroppedFile(oPath) With { - .FileFormat = oFormat - }) - Next - - Case Else - Dim oDroppedFiles As String() = GetFormat(pEvent, "FileDrop") - Dim oTempPath As String = GetTempPathWithSubdirectory() - - If oDroppedFiles IsNot Nothing Then - For Each oPath In oDroppedFiles - oFiles.Add(New DroppedFile(oPath) With { - .FileFormat = oFormat - }) - Next - End If - - End Select - - Logger.Debug("Handled [{0}] dropped files.", oFiles.Count) - - Return oFiles - - Catch ex As Exception - Logger.Warn("Error while handling dropped files.") - Logger.Error(ex) - Return Nothing - - End Try - End Function - - Private Function GetOutlookFilePath(pEvent As DragEventArgs) As List(Of String) - Dim oTempPath As String = GetTempPathWithSubdirectory() - Dim oFileName As String = GetOutlookFileName(pEvent) - Dim oFilePath As String = IO.Path.Combine(oTempPath, oFileName) - Dim oContentsList As List(Of Byte()) = GetOutlookFileContents_FromInterop(pEvent) - - If oContentsList Is Nothing Then - Return Nothing - End If - - Dim oPathList As New List(Of String) - - For Each oContents In oContentsList - Using oFileStream As IO.FileStream = New IO.FileStream(oFilePath, IO.FileMode.Create) - oFileStream.Write(oContents, 0, oContents.Length) - oFileStream.Close() - End Using - - oPathList.Add(oFilePath) - Next - - Return oPathList - - End Function - - Private Function GetOutlookFileName(pEvent As DragEventArgs) As String - Dim oFileDescriptorSize = 512 - Dim oIndex As Integer = 76 - Dim oBuilder As New StringBuilder() - - Using oStream As IO.MemoryStream = GetFormat(pEvent, "FileGroupDescriptor") - Dim oFileGroupDescriptor As Byte() = New Byte(oFileDescriptorSize) {} - oStream.Read(oFileGroupDescriptor, 0, oFileDescriptorSize) - - While oFileGroupDescriptor(oIndex) <> 0 - Dim oChar = Convert.ToChar(oFileGroupDescriptor(oIndex)) - oBuilder.Append(oChar) - oIndex += 1 - End While - End Using - - Dim oFileName As String = oBuilder.ToString - Logger.Debug("Outlook filename is [{0}]", oFileName) - - Return oFileName - End Function - - Private Function GetOutlookFileContents_FromDragEvent(pEvent As DragEventArgs) As List(Of Byte()) - Logger.Debug("Getting file contents") - - Using oStream As IO.MemoryStream = pEvent.Data.GetData("FileContents", True) - If oStream Is Nothing Then - Return Nothing - End If - - Dim oContentLength = Convert.ToInt32(oStream.Length) - Dim oContents As Byte() = New Byte(oContentLength) {} - - oStream.Position = 0 - oStream.Read(oContents, 0, Convert.ToInt32(oContentLength)) - - Return New List(Of Byte()) From {oContents} - End Using - End Function - - Private Function GetOutlookFileContents_FromInterop(pEvent As DragEventArgs) As List(Of Byte()) - Logger.Debug("Getting file contents") - Logger.Debug("Creating Outlook Application") - - Dim oApp As Outlook.Application - Try - oApp = New Outlook.Application() - Catch ex As Exception - Logger.Error(ex) - Return Nothing - End Try - - Dim oResults As New List(Of Byte()) - Dim oMailItem As Outlook.MailItem - For oIndex As Integer = 1 To oApp.ActiveExplorer.Selection.Count - Try - Logger.Debug("Fetching mail [{0}]") - - oMailItem = oApp.ActiveExplorer.Selection.Item(oIndex) - - Dim oSubject As String = ConvertTextToSlug(oMailItem.Subject) - If oSubject = "" Then - oSubject = "NO_SUBJECT" - End If - Logger.Info("Subject Slug: [{0}]", oSubject) - - Dim oFileName As String = $"{oSubject}.msg" - Dim oTempPath As String = GetTempPathWithSubdirectory() - Dim oFilePath As String = IO.Path.Combine(oTempPath, oFileName) - - oMailItem.SaveAs(oFilePath) - - Using oFileStream As New IO.FileStream(oFilePath, IO.FileMode.Open) - - Dim oContents As Byte() = New Byte(oFileStream.Length) {} - oFileStream.Read(oContents, 0, oFileStream.Length) - - oResults.Add(oContents) - End Using - - Try - IO.File.Delete(oFilePath) - Catch ex As Exception - Logger.Warn("Temp file [{0}] could not be deleted!", oFilePath) - Logger.Error(ex) - End Try - - Return oResults - Catch ex As Exception - Logger.Error(ex) - - End Try - Next - - Return Nothing - End Function - - Public Function GetFormat(pEvent As DragEventArgs, pFormat As String, pAutoConvert As Boolean) As Object - If CheckFor(pEvent, pFormat) Then - Dim oValue = pEvent.Data.GetData(pFormat, pAutoConvert) - Return oValue - Else - Return Nothing - End If - End Function - - Public Function GetFormat(pEvent As DragEventArgs, pFormat As String) As Object - Return GetFormat(pEvent, pFormat, False) - End Function - - Public Function CheckFor(pEvent As DragEventArgs, pFormat As String, pAutoConvert As Boolean) As Boolean - Dim oFormats = pEvent.Data.GetFormats(pAutoConvert).ToList() - Dim oFormatExists = oFormats.Any(Function(format) format = pFormat) - - Logger.Debug("Format [{0}] exists: [{1}]", pFormat, oFormatExists) - Return oFormatExists - End Function - - Public Function CheckFor(pEvent As DragEventArgs, pFormat As String) As Boolean - Return CheckFor(pEvent, pFormat, False) - End Function - - Public Function IsNormalFile(e As DragEventArgs) As Boolean - Return CheckFor(e, DataFormats.FileDrop, False) - End Function - - Public Function IsOutlook(e As DragEventArgs) As Boolean - Logger.Debug("Checking for Outlook") - Return CheckFor(e, "FileGroupDescriptor") AndAlso CheckFor(e, "FileContents") - End Function - Public Function IsThunderbird(e As DragEventArgs) As Boolean - Logger.Debug("Checking for Thunderbird") - Return CheckFor(e, "text/x-moz-url") AndAlso CheckFor(e, "FileDrop") - End Function - - Public Sub RemoveTempDirectory() - Dim oTempPath As String = IO.Path.Combine(IO.Path.GetTempPath(), _TempFileSubDirectory) - - If IO.Directory.Exists(oTempPath) Then - Try - IO.Directory.Delete(oTempPath, recursive:=True) - Catch ex As Exception - Logger.Warn("Could not delete Temp Subdirectory [{0}].", oTempPath) - Logger.Error(ex) - End Try - End If - End Sub - - Private Function GetTempPathWithSubdirectory() As String - Dim oTempPath As String = IO.Path.Combine(IO.Path.GetTempPath(), _TempFileSubDirectory) - - If IO.Directory.Exists(oTempPath) = False Then - Try - IO.Directory.CreateDirectory(oTempPath) - Catch ex As Exception - Logger.Warn("Could not create Temp Subdirectory [{0}]. Returning default Temp Path.", oTempPath) - Logger.Error(ex) - Return IO.Path.GetTempPath() - End Try - End If - - Return oTempPath - End Function - - -#Region "Thunderbird" - Private Function IsOutlookMail(e As DragEventArgs) As Boolean - Logger.Debug("Checking for Outlook Mail") - Return Not IsOutlookAttachment(e) AndAlso CheckFor(e, "RenPrivateSourceFolder") - End Function - - Private Function IsOutlookAttachment(e As DragEventArgs) As Boolean - Logger.Debug("Checking for Outlook Attachment") - Return IsOutlook(e) AndAlso CheckFor(e, "RenPrivateItem") - End Function -#End Region - -#Region "Outlook" - Private Function IsThunderbirdMail(e As DragEventArgs) As Boolean - Logger.Debug("Checking for Thunderbird Mail") - Return Not IsThunderbirdAttachment(e) - End Function - - Private Function IsThunderbirdAttachment(e As DragEventArgs) As Boolean - Logger.Debug("Checking for Thunderbird Attachment") - Return IsThunderbird(e) AndAlso - CheckFor(e, "text/x-moz-url-data") AndAlso - CheckFor(e, "text/x-moz-url-desc") - End Function -#End Region - - - - -End Class diff --git a/Windows/FileDrop/DroppedFile.vb b/Windows/FileDrop/DroppedFile.vb deleted file mode 100644 index a843329f..00000000 --- a/Windows/FileDrop/DroppedFile.vb +++ /dev/null @@ -1,57 +0,0 @@ -Imports System.Text -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language.Utils -Imports Microsoft.Office.Interop -Imports System.Windows - - -Partial Class FileDrop - Public Class DroppedFile - Public ReadOnly Property FilePath As String - Public ReadOnly Property DropType As String = "|DROPFROMFSYSTEM|" - - Public Property FileFormat As FileFormat = FileFormat.LocalFile - Public Property FileSource As FileSource = FileSource.DragDrop - - Public Sub New(pFilePath As String) - FilePath = pFilePath - End Sub - - Public Sub New(pFilePath As String, pDropType As String) - MyClass.New(pFilePath) - DropType = pDropType - - Select Case pDropType - Case "|DROPFROMFSYSTEM|" - FileFormat = FileFormat.LocalFile - - Case "OUTLOOK_ATTACHMENT" - FileFormat = FileFormat.OutlookAttachment - - Case "|OUTLOOK_MESSAGE|" - FileFormat = FileFormat.OutlookMail - - Case "|MSGONLY|" - FileFormat = FileFormat.MailWithoutAttachments - - Case "|FW_OUTLOOK_MESSAGE|" - FileFormat = FileFormat.OutlookMail - FileSource = FileSource.FolderWatch - - Case "|FW_SIMPLEINDEXER|" - FileFormat = FileFormat.LocalFile - FileSource = FileSource.FolderWatch - - Case "|ATTMNTEXTRACTED|" - FileFormat = FileFormat.LocalFile - FileSource = FileSource.Attachment - - End Select - End Sub - End Class -End Class - - - - - diff --git a/Windows/FileDrop/TobitDavid.vb b/Windows/FileDrop/TobitDavid.vb deleted file mode 100644 index e2a397a2..00000000 --- a/Windows/FileDrop/TobitDavid.vb +++ /dev/null @@ -1,139 +0,0 @@ -Public Class TobitDavid - ' Tobit David Drag Drop: https://www.david-forum.de/thread/12671-drag-and-drop-von-faxen-und-mails-in-net-anwendung/ - 'Private Declare Function DVEmlFromMailItem Lib "DvApi32" (ByVal oMailItem As MailItem, ByVal strFileName As String) As Long - - 'Private Sub DragDrop_HandleTobit(e As DragEventArgs) - ' If e.Data.GetDataPresent("#TobitMsgData") Then - ' Dim Quellpfad As String = "" - ' Dim Dateinamen As String() - ' 'Quellpfad zu den David Dateien auslesen - ' Using ms As MemoryStream = e.Data.GetData("#TobitMsgData") - ' Dim bytes As Byte() = ms.ToArray() - ' Dim n As Integer = 0 - ' Dim c As Char - ' Do While True - ' c = Convert.ToChar(bytes(n)) - ' If bytes(n) <> 0 Then - ' Quellpfad &= c - ' n += 1 - ' Else - ' Exit Do - ' End If - ' Loop - ' End Using - ' 'Dateinamen der gedroppten Emails auslesen - ' Using ms As MemoryStream = e.Data.GetData("FileGroupDescriptor") - ' 'Header sind 4B - ' 'Jeder Datensatz ist 332B - ' 'Bei Index 72 des Datensatzes beginnt das "Dateiname.eml" - ' Dim bytes As Byte() = ms.ToArray() - ' ReDim Dateinamen(Int(bytes.Count / 332) - 1) - ' ' Array mit so vielen Elementen wie Datensätze im FileGroupDescriptor sind - ' Dim AnzahlMails As Integer = bytes(0) - ' Dim Dateiname As String - ' Dim n As Integer - ' For i = 0 To AnzahlMails - 1 - ' Dateiname = "" - ' n = 0 - ' Do While True - ' 'Solange die Bytes auslesen, bis man einen vbNullChar liest - ' If bytes(i * 332 + 4 + 72 + n) <> 0 Then - ' Dateiname = Dateiname & Convert.ToChar(bytes(i * 332 + 4 + 72 + n)) - - ' n += 1 - ' Else - ' Exit Do - ' End If - ' Loop - ' Dateinamen(i) = Dateiname - ' Next - ' End Using - ' Using EntryDataEx As MemoryStream = e.Data.GetData("#TobitEntryDataEx") - ' Dim bytes As Byte() = EntryDataEx.ToArray() - ' 'Die Größe des Headers steht im ersten Byte - ' Dim HeadExSize As Integer = bytes(0) - ' 'Die Anzahl der Datensätze steht im 8. - 11. Byte - ' Dim nCountEntries As Integer = BitConverter.ToInt32(bytes, 8) - ' Dim nPositions(nCountEntries - 1) As Integer - ' For i = 0 To nCountEntries - 1 - ' 'Datensätze in der #TobitEntryDataEx sind 269 Byte groß. - ' 'In den ersten 4 Bytes steht die QID aus der archive.dat - ' nPositions(i) = BitConverter.ToInt32(bytes, HeadExSize + i * 269) - ' Next - - ' Using fs As New FileStream(Quellpfad & "\archive.dat", FileMode.Open, FileAccess.Read) - - ' 'archive.dat als MemoryStream kopieren - ' Using ms As New MemoryStream - ' fs.CopyTo(ms) - ' 'MemoryStream in ein Byte-Array konvertieren - ' Dim archiveBytes As Byte() = ms.ToArray() - ' 'Datensätze in der archive.dat sind 430 Byte groß - ' For i = 16 To archiveBytes.Length - 1 Step 430 - - ' 'Das 17.-20. Byte ist die QID die wir suchen - ' Dim QID As Integer = BitConverter.ToInt32(archiveBytes, i) - ' 'Wenn die QID übereinstimmt mit einer der David-Mails, dann lies den Dateinamen im Archiv aus - ' If nPositions.Contains(QID) Then - - ' 'Der Index der QID (0, ..., nCountEntries - 1) - ' Dim nPosIndex As Integer = -1 - ' For j = 0 To nPositions.Length - 1 - ' If QID = nPositions(j) Then - ' nPosIndex = j - ' Exit For - ' End If - ' Next - ' 'Alle Bytes ab dem 17. bis zum Ende des Datensatzes aus der archive.bat auslesen und als String konvertieren - ' Dim byteString As String = "" - ' For j = 0 To 429 - 17 - ' byteString &= Convert.ToChar(archiveBytes(i + j)) - ' Next - ' 'Index der Id herausfinden (Index des Quellpfads im byteString + Länge des Quellpfads + 1 "\") - ' Dim IdIndex As Integer = byteString.IndexOf(Quellpfad, StringComparison.OrdinalIgnoreCase) + Quellpfad.Length + 1 - ' 'Die Id sind dann die 8 Zeichen ab dem IdIndex - ' Dim Id As String = byteString.Substring(IdIndex, 8) - ' 'EML speichern - ' DavidEmlSpeichern(Quellpfad, Dateinamen(nPosIndex), QID, Id) - ' End If - ' Next - ' End Using - ' End Using - ' End Using - ' End If - 'End Sub - - 'Private Sub DavidEmlSpeichern(ArchivePfad As String, Dateiname As String, ID As String, FaxID As String) - ' Dim oApp As DavidAPIClass - ' Dim oAcc As Account - ' Dim oArchive As Archive - ' Dim oMessageItems As MessageItems - ' Dim oMailItem As MailItem - ' oApp = New DavidAPIClass() - ' oApp.LoginOptions = DvLoginOptions.DvLoginForceAsyncDuplicate - ' oAcc = oApp.Logon("DavidServer", "", "", "", "", "NOAUTH") - ' oArchive = oAcc.ArchiveFromID(ArchivePfad) - ' If FaxID.First() = "M" Then - ' 'Faxe beginnen mit M - ' 'Bei Faxen kann man einfach die .001 Datei kopieren und als TIF speichern - ' File.Copy(ArchivePfad & "\" & FaxID & ".001", "C:\Temp\" & Dateiname, True) - ' ListeAktualisieren() - ' ElseIf FaxID.First() = "I" Then - ' 'Emails beginnen mit I - ' 'Bei Emails muss man die DVEmlFromMailItem mit dem richtigen oMailItem aufrufen - ' oMessageItems = oArchive.MailItems - ' For Each oMailItem In oMessageItems - ' If oMailItem._ID = ID Then - ' Dim fileName As String = Space(260) - ' If DVEmlFromMailItem(oMailItem, fileName) <> 0 Then - ' fileName = Trim(fileName) - ' fileName = fileName.Substring(0, fileName.Length - 1) - ' File.Copy(fileName, "C:\Temp\" & Dateiname, True) - ' ListeAktualisieren() - ' End If - ' Exit For - ' End If - ' Next - ' End If - 'End Sub -End Class diff --git a/Windows/Hotkey.vb b/Windows/Hotkey.vb deleted file mode 100644 index d0d654ee..00000000 --- a/Windows/Hotkey.vb +++ /dev/null @@ -1,86 +0,0 @@ -Option Explicit On - -Imports System.Windows.Forms - -Public Class Hotkey - Implements IMessageFilter - - Private _OwnerForm As Form - Private _HotkeyList As New Dictionary(Of Short, HotKeyObject) - Private _HotkeyIDList As New Dictionary(Of String, Short) - - ''' - ''' Diesem Event wird immer die zugewiesene HotKeyID übergeben, wenn eine HotKey Kombination gedrückt wurde. - ''' - Public Event HotKeyPressed(HotKeyID As String) - - ''' - ''' Definiert verfügbare Modfier Keys - ''' - Public Enum ModfierKey As Integer - MOD_ALT = 1 - MOD_CONTROL = 2 - MOD_SHIFT = 4 - MOD_WIN = 8 - End Enum - - Sub New(pOwnerForm As Form) - _OwnerForm = pOwnerForm - Application.AddMessageFilter(Me) - End Sub - - ''' - ''' Diese Funktion fügt einen Hotkey hinzu und registriert ihn auch sofort - ''' - ''' Den KeyCode für die Taste - ''' Die Zusatztasten wie z.B. Strg oder Alt, diese können auch mit OR kombiniert werden - ''' Die ID die der Hotkey bekommen soll um diesen zu identifizieren - Public Sub AddHotKey(pKeyCode As Keys, pModifiers As ModfierKey, pHotKeyID As Integer) - If _HotkeyIDList.ContainsKey(pHotKeyID) = True Then - Exit Sub - End If - - Dim oHotkeyId As Short = NativeMethods.GlobalAddAtom(pHotKeyID.ToString()) - _HotkeyList.Add(oHotkeyId, New HotKeyObject(pKeyCode, pModifiers, pHotKeyID)) - - NativeMethods.RegisterHotKey(_OwnerForm.Handle, oHotkeyId, _HotkeyList(oHotkeyId).Modifier, _HotkeyList(oHotkeyId).HotKey) - End Sub - - ''' - ''' Diese Funktion entfernt einen Hotkey und deregistriert ihn auch sofort - ''' - ''' Gibt die HotkeyID an welche entfernt werden soll - Public Sub RemoveHotKey(ByVal pHotKeyID As Integer) - If _HotkeyIDList.ContainsKey(pHotKeyID) = False Then - Exit Sub - End If - - Dim oHotkeyId As Short = _HotkeyIDList(pHotKeyID) - _HotkeyIDList.Remove(pHotKeyID) - _HotkeyList.Remove(oHotkeyId) - NativeMethods.UnregisterHotKey(_OwnerForm.Handle, CInt(oHotkeyId)) - NativeMethods.GlobalDeleteAtom(oHotkeyId) - End Sub - - Private Function PreFilterMessage(ByRef m As Message) As Boolean Implements IMessageFilter.PreFilterMessage - If m.Msg = NativeMethods.WM_HOTKEY Then - If Clipboard.GetText().Trim() <> String.Empty Then - RaiseEvent HotKeyPressed(_HotkeyList(CShort(m.WParam)).HotKeyID) - End If - End If - Return False - End Function - - Public Class HotKeyObject - Public Property HotKey As Keys - Public Property Modifier As ModfierKey - Public Property HotKeyID As Integer - Public Property AtomID As Short - - Sub New(NewHotKey As Keys, NewModifier As ModfierKey, NewHotKeyID As Integer) - HotKey = NewHotKey - Modifier = NewModifier - HotKeyID = NewHotKeyID - End Sub - End Class -End Class diff --git a/Windows/My Project/Application.Designer.vb b/Windows/My Project/Application.Designer.vb deleted file mode 100644 index 8ab460ba..00000000 --- a/Windows/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Windows/My Project/Application.myapp b/Windows/My Project/Application.myapp deleted file mode 100644 index 758895de..00000000 --- a/Windows/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Windows/My Project/AssemblyInfo.vb b/Windows/My Project/AssemblyInfo.vb deleted file mode 100644 index c1c4e43e..00000000 --- a/Windows/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' Allgemeine Informationen über eine Assembly werden über die folgenden -' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -' die einer Assembly zugeordnet sind. - -' Werte der Assemblyattribute überprüfen - - - - - - - - - - -'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. - - -' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -' -' Hauptversion -' Nebenversion -' Buildnummer -' Revision -' -' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -' übernehmen, indem Sie "*" eingeben: -' - - - diff --git a/Windows/My Project/Resources.Designer.vb b/Windows/My Project/Resources.Designer.vb deleted file mode 100644 index 82955370..00000000 --- a/Windows/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - ''' - ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Windows.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Windows/My Project/Resources.resx b/Windows/My Project/Resources.resx deleted file mode 100644 index 1af7de15..00000000 --- a/Windows/My Project/Resources.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Windows/My Project/Settings.Designer.vb b/Windows/My Project/Settings.Designer.vb deleted file mode 100644 index c458a722..00000000 --- a/Windows/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' 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. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Automatische My.Settings-Speicherfunktion" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Windows.My.MySettings - Get - Return Global.DigitalData.Modules.Windows.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Windows/My Project/Settings.settings b/Windows/My Project/Settings.settings deleted file mode 100644 index 85b890b3..00000000 --- a/Windows/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Windows/NativeMethods.vb b/Windows/NativeMethods.vb deleted file mode 100644 index 22e91a63..00000000 --- a/Windows/NativeMethods.vb +++ /dev/null @@ -1,223 +0,0 @@ -Imports System.Runtime.InteropServices -Imports System.Text - -Public Class NativeMethods - Public Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hwnd As Int32) As Integer - Public Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As IntPtr, ByVal WinTitle As String, ByVal MaxLength As Integer) As Integer - - Public Shared Function ShellExecuteEx(ByRef lpExecInfo As ShellExecuteInfo) As Boolean - End Function - - Public Shared Function SetClipboardViewer(ByVal hWnd As IntPtr) As IntPtr - End Function - - Public Shared Function GetDC(ByVal hwnd As IntPtr) As IntPtr - End Function - - Public Shared Function ReleaseDC(ByVal hwnd As IntPtr, ByVal hdc As IntPtr) As IntPtr - End Function - - Public Shared Function ReleaseCapture() As Boolean - End Function - - Public Shared Function GetWindowRect(ByVal hWnd As HandleRef, ByRef lpRect As RectangleAPI) As Boolean - End Function - - Public Shared Function AttachThreadInput(ByVal idAttach As IntPtr, ByVal idAttachTo As IntPtr, fAttach As Boolean) As Boolean - End Function - - Public Shared Function GetFocus() As IntPtr - End Function - - Public Shared Function WindowFromPoint(ByVal p As PointAPI) As IntPtr - End Function - - Public Shared Function GetForegroundWindow() As IntPtr - End Function - - Public Shared Function GetWindowThreadProcessId(ByVal hwnd As IntPtr, ByRef lpdwProcessID As Integer) As Integer - End Function - - Public Shared Function GetClassName(ByVal hwnd As Integer, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer - End Function - - Public Shared Function OpenProcess(ByVal dwDesiredAccess As UInteger, ByVal bInheritHandle As Boolean, ByVal dwProcessId As UInteger) As IntPtr - End Function - - Public Shared Function VirtualAllocEx(ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As UIntPtr, ByVal flAllocationType As UInteger, ByVal flProtect As PageProtection) As IntPtr - End Function - - Public Shared Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, ByRef lpdwProcessId As UInteger) As UInteger - End Function - - Public Shared Function VirtualFreeEx(ByVal hProcess As IntPtr, ByVal lpAddress As IntPtr, ByVal dwSize As UIntPtr, ByVal dwFreeType As UInteger) As Boolean - End Function - - Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Boolean - End Function - - Public Shared Function MapViewOfFile(ByVal hFileMappingObject As IntPtr, ByVal dwDesiredAccess As UInteger, ByVal dwFileOffsetHigh As UInteger, ByVal dwFileOffsetLow As UInteger, ByVal dwNumberOfBytesToMap As UIntPtr) As IntPtr - End Function - - Public Shared Function UnmapViewOfFile(ByVal lpBaseAddress As IntPtr) As Boolean - End Function - - Public Shared Function CreateFileMapping(ByVal hFile As IntPtr, ByVal lpFileMappingAttributes As IntPtr, ByVal flProtect As PageProtection, ByVal dwMaximumSizeHigh As Integer, ByVal dwMaximumSizeLow As Integer, ByVal lpName As String) As IntPtr - End Function - - Public Shared Function SendMessage(ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr - End Function - - Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, - ByVal lpBuffer As Byte(), ByVal nSize As UIntPtr, ByVal lpNumberOfBytesRead As IntPtr) As Boolean - End Function - - Public Shared Sub MoveMemoryFromByte(ByVal dest As IntPtr, ByRef src As Byte, ByVal size As Integer) - End Sub - - Public Shared Sub MoveMemoryToByte(ByRef dest As Byte, ByVal src As IntPtr, ByVal size As Integer) - End Sub - - Public Shared Function RegisterWindowMessage(ByVal lpString As String) As Integer - End Function - - Public Shared Function GetCursorPos(ByRef lpPoint As PointAPI) As Boolean - End Function - - Public Declare Function RegisterHotKey Lib "user32" ( - ByVal Hwnd As IntPtr, - ByVal ID As Integer, - ByVal Modifiers As Integer, - ByVal Key As Integer - ) As Integer - - Public Declare Function UnregisterHotKey Lib "user32" ( - ByVal Hwnd As IntPtr, - ByVal ID As Integer - ) As Integer - - Public Declare Auto Function GetWindowText Lib "user32" ( - ByVal hWnd As IntPtr, - ByVal lpString As StringBuilder, - ByVal cch As Integer - ) As Integer - - Public Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal IDString As String) As Short - Public Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal Atom As Short) As Short - - Public Const STANDARD_RIGHTS_REQUIRED As Integer = &HF0000 - - Public Const SECTION_QUERY As Short = &H1 - Public Const SECTION_MAP_WRITE As Short = &H2 - Public Const SECTION_MAP_READ As Short = &H4 - Public Const SECTION_MAP_EXECUTE As Short = &H8 - Public Const SECTION_EXTEND_SIZE As Short = &H10 - Public Const SECTION_ALL_ACCESS As Integer = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE - Public Const FILE_MAP_ALL_ACCESS As Integer = SECTION_ALL_ACCESS - - Public Const PROCESS_VM_OPERATION As Short = &H8 - Public Const PROCESS_VM_READ As Short = &H10 - Public Const PROCESS_VM_WRITE As Short = &H20 - Public Const PROCESS_ALL_ACCESS As Long = &H1F0FFF - - Public Const MEM_COMMIT As Short = &H1000 - Public Const MEM_RESERVE As Short = &H2000 - Public Const MEM_DECOMMIT As Short = &H4000 - Public Const MEM_RELEASE As Integer = &H8000 - Public Const MEM_FREE As Integer = &H10000 - Public Const MEM_PRIVATE As Integer = &H20000 - Public Const MEM_MAPPED As Integer = &H40000 - Public Const MEM_TOP_DOWN As Integer = &H100000 - - Public Const INVALID_HANDLE_VALUE As Integer = -1 - Public Const SW_SHOW As Short = 5 - - Public Const SEE_MASK_INVOKEIDLIST = &HC - Public Const SEE_MASK_NOCLOSEPROCESS = &H40 - Public Const SEE_MASK_FLAG_NO_UI = &H400 - - Public Const ULW_COLORKEY As Integer = &H1 - Public Const ULW_ALPHA As Integer = &H2 - Public Const ULW_OPAQUE As Integer = &H4 - - Public Const AC_SRC_OVER As Byte = &H0 - Public Const AC_SRC_ALPHA As Byte = &H1 - - Public Const HTCAPTION As Integer = &H2 - - Public Const WM_NCLBUTTONDOWN As Integer = &HA1 - Public Const WM_HOTKEY As Integer = &H312 - Public Const WM_DRAWCLIPBOARD As Integer = &H308 - - Public Enum PageProtection As UInteger - NoAccess = &H1 - [Readonly] = &H2 - ReadWrite = &H4 - WriteCopy = &H8 - Execute = &H10 - ExecuteRead = &H20 - ExecuteReadWrite = &H40 - ExecuteWriteCopy = &H80 - Guard = &H100 - NoCache = &H200 - WriteCombine = &H400 - End Enum - - Public Enum ChildWindowFromPointFlags As UInteger - CWP_ALL - CWP_SKIPINVISIBLE - CWP_SKIPDISABLED - CWP_SKIPTRANSPARENT - End Enum - - - Public Structure WINDOWPOS - Public hwnd As IntPtr - Public hwndInsertAfter As IntPtr - Public x As Integer - Public y As Integer - Public cx As Integer - Public cy As Integer - Public flags As Integer - End Structure - - Public Structure RectangleAPI - Public Left As Integer - Public Top As Integer - Public Right As Integer - Public Bottom As Integer - - Public Overrides Function ToString() As String - Return String.Format("Top: {0}, Bottom: {1}, Left: {2}, Right: {3}", Top, Bottom, Left, Right) - End Function - End Structure - - Public Structure ShellExecuteInfo - Public cbSize As Integer - Public fMask As Integer - Public hwnd As IntPtr - Public lpVerb As String - Public lpFile As String - Public lpParameters As String - Public lpDirectory As String - Dim nShow As Integer - Dim hInstApp As IntPtr - Dim lpIDList As IntPtr - Public lpClass As String - Public hkeyClass As IntPtr - Public dwHotKey As Integer - Public hIcon As IntPtr - Public hProcess As IntPtr - End Structure - - - Public Structure PointAPI - Public X As Integer - Public Y As Integer - - Public Sub New(ByVal X As Integer, ByVal Y As Integer) - Me.X = X - Me.Y = Y - End Sub - End Structure -End Class diff --git a/Windows/Screen.vb b/Windows/Screen.vb deleted file mode 100644 index a8cc9a5e..00000000 --- a/Windows/Screen.vb +++ /dev/null @@ -1,89 +0,0 @@ -Imports System.Drawing -Imports System.Runtime.InteropServices -Imports System.Windows.Forms -Imports Microsoft.Win32 - -Public Class Screen - Public Function GetScreenScaling(Form As Form) As Single - Dim oHandle As IntPtr = Form.Handle - Dim oFactor1, oFactor2 As Single - - oFactor1 = GetFactorFromDeviceCaps(oHandle) - oFactor2 = GetDPIFromMonitor(oHandle) - - If oFactor1 > 1 Then - Return oFactor1 - Else - Return oFactor2 - End If - End Function - - ' ============================================================================================================= - ' === DEVICE CAPS - ' ============================================================================================================= - - - Friend Shared Function GetDeviceCaps(ByVal hdc As IntPtr, ByVal nIndex As Integer) As Integer - End Function - - Public Enum DeviceCap - VERTRES = 10 - DESKTOPVERTRES = 117 - End Enum - - Private Function GetFactorFromDeviceCaps(Handle As IntPtr) As Single - Dim g As Graphics = Graphics.FromHwnd(Handle) - Dim desktop As IntPtr = g.GetHdc() - Dim LogicalScreenHeight As Integer = GetDeviceCaps(desktop, CInt(DeviceCap.VERTRES)) - Dim PhysicalScreenHeight As Integer = GetDeviceCaps(desktop, CInt(DeviceCap.DESKTOPVERTRES)) - Dim oScreenScalingFactor As Single = CSng(PhysicalScreenHeight) / CSng(LogicalScreenHeight) - Return oScreenScalingFactor - End Function - - ' ============================================================================================================= - ' === MONITOR FROM WINDOW - ' ============================================================================================================= - - 'In W32 class - - Friend Shared Function MonitorFromWindow(ByVal hwnd As IntPtr, - ByVal dwFlags As Integer) As IntPtr - End Function - - Friend Const MONITORINFOF_PRIMARY As Integer = &H1 - Friend Const MONITOR_DEFAULTTONEAREST As Integer = &H2 - Friend Const MONITOR_DEFAULTTONULL As Integer = &H0 - Friend Const MONITOR_DEFAULTTOPRIMARY As Integer = &H1 - - - Friend Shared Function GetDpiForMonitor(ByVal hmonitor As IntPtr, - ByVal dpiType As Monitor_DPI_Type, - ByRef dpiX As UInteger, - ByRef dpiY As UInteger) As Integer - End Function - - Friend Enum Monitor_DPI_Type As Integer - MDT_Effective_DPI = 0 - MDT_Angular_DPI = 1 - MDT_Raw_DPI = 2 - MDT_Default = MDT_Effective_DPI - End Enum - - Private Function GetDPIFromMonitor(Handle As IntPtr) As Single - 'Get handle to monitor that contains this window. - Dim monitorHandle As IntPtr = MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST) - - 'Get DPI (If the OS is not Windows 8.1 or newer, calling GetDpiForMonitor will cause exception). - Dim dpiX As UInteger - Dim dpiY As UInteger - - Dim result As Integer = GetDpiForMonitor(monitorHandle, Monitor_DPI_Type.MDT_Default, dpiX, dpiY) - - - If (result = 0) Then 'If S_OK (= 0) - Return dpiX / 96.0F - Else - Return -1 - End If - End Function -End Class diff --git a/Windows/Window.vb b/Windows/Window.vb deleted file mode 100644 index 7898fa24..00000000 --- a/Windows/Window.vb +++ /dev/null @@ -1,572 +0,0 @@ -Imports System.ComponentModel -Imports System.Drawing -Imports System.Runtime.InteropServices -Imports System.Text -Imports System.Windows.Forms -Imports DigitalData.Modules.Logging - -Public Class Window - Private _Logger As Logger - - Private Const WINDOW_SNAP_OFFSET = 35 - - Public Enum Anchor - TopLeft - BottomLeft - TopRight - BottomRight - End Enum - - Public Class RectangleInfo - Public Top As Integer = 0 - Public Left As Integer = 0 - Public Right As Integer = 0 - Public Bottom As Integer = 0 - - Public Overrides Function ToString() As String - Return String.Format("Top:{0},Left:{1},Bottom:{2},Right:{3}", Top, Left, Bottom, Right) - End Function - End Class - - Public Class WindowInfo - Public WindowTitle As String = "" - Public ProcessName As String = "" - Public ClassName As String = "" - Public ProcessId As Integer = 0 - Public ControlName As String = "" - Public hWnd As IntPtr = IntPtr.Zero - End Class - - Public Sub New(LogConfig As LogConfig) - _Logger = LogConfig.GetLogger() - End Sub - - ''' - ''' Returns Information about the currently focused window - ''' - Public Function GetWindowInfo() As WindowInfo - Try - Dim hWnd As IntPtr = NativeMethods.GetForegroundWindow() - Return GetWindowInfo(hWnd) - Catch ex As Exception - _Logger.Debug("Error in GetWindowInfo/0") - _Logger.Error(ex) - Throw ex - End Try - End Function - - ''' - ''' Returns Information about the Window with `hWnd` - ''' - Public Function GetWindowInfo(ByVal hWnd As IntPtr) As WindowInfo - Try - Dim oPID As Integer = 0 - Dim oTitleLength As Int32 = NativeMethods.GetWindowTextLength(hWnd) - Dim oWindowTitle As String = StrDup(oTitleLength + 1, "*") - Dim oClassBuilder As New StringBuilder(64) - - NativeMethods.GetWindowText(hWnd, oWindowTitle, oTitleLength + 1) - NativeMethods.GetWindowThreadProcessId(hWnd, oPID) - - If oPID = 0 Then - Return Nothing - End If - - Dim oProcess As Process = Process.GetProcessById(oPID) - - If oProcess Is Nothing Then - Return Nothing - End If - - NativeMethods.GetClassName(hWnd, oClassBuilder, 64) - - Return New WindowInfo With { - .hWnd = hWnd, - .ClassName = oClassBuilder.ToString, - .ProcessId = oProcess.Id, - .ProcessName = oProcess.ProcessName, - .WindowTitle = oWindowTitle.Replace(vbNullChar, String.Empty) - } - Catch ex As Exception - _Logger.Debug("Error in GetWindowInfo/1") - _Logger.Error(ex) - Throw ex - End Try - End Function - - ''' - ''' Returns the currently focused control - ''' - ''' Current window handle; can be obtained from Me.Handle - Public Function GetFocusedControl(WindowHandle As IntPtr) As WindowInfo - Try - Dim oWindow = GetWindowInfo() - - If oWindow Is Nothing Then - _Logger.Debug("Could not get Window Info!") - Return Nothing - End If - - Dim oThreadId As IntPtr = NativeMethods.GetWindowThreadProcessId(oWindow.hWnd, 0) - Dim oMyThreadId As IntPtr = NativeMethods.GetWindowThreadProcessId(WindowHandle, 0) - - If NativeMethods.AttachThreadInput(oThreadId, oMyThreadId, True) Then - Try - Dim oControlhWnd = NativeMethods.GetFocus() - Dim oControl As WindowInfo = GetWindowInfo(oControlhWnd) - - If oControl Is Nothing Then - _Logger.Debug("Could not get Control Info!") - Return Nothing - End If - - Dim oName = Utils.GetWinFormsId(oControlhWnd) - oControl.ControlName = oName - - - Return oControl - Catch ex As Exception - _Logger.Error(ex) - Finally - NativeMethods.AttachThreadInput(oThreadId, oMyThreadId, False) - End Try - End If - - Return Nothing - Catch ex As Exception - _Logger.Debug("Error in GetFocusedControl/1") - _Logger.Error(ex) - Throw ex - End Try - End Function - - ''' - ''' Returns Bounds of `ControlHandle`. Relative to `WindowHandle` and `Anchor` value. - ''' - Public Function GetControlLocation(ControlHandle As IntPtr, WindowHandle As IntPtr, Optional Anchor As Anchor = Anchor.TopLeft) As RectangleInfo - Dim oWindowRect As New NativeMethods.RectangleAPI - Dim oControlRect As New NativeMethods.RectangleAPI - Dim oResult As New RectangleInfo - - _Logger.Debug("Getting Control Location") - - Try - _Logger.Debug("Trying to get Window Rectangle") - If NativeMethods.GetWindowRect(New HandleRef(Me, WindowHandle), oWindowRect) = False Then - Return Nothing - End If - - _Logger.Debug("Trying to get Control Rectangle") - If NativeMethods.GetWindowRect(New HandleRef(Me, ControlHandle), oControlRect) = False Then - Return Nothing - End If - - Dim oRect As New NativeMethods.RectangleAPI - - ' Calculate Coordinates relative to parent window - oRect = GetRelativeRectangle(oControlRect, oWindowRect, Anchor) - - _Logger.Debug("Control Location for Anchor {0}: {1}", Anchor, oRect) - - oResult.Left = oRect.Left - oResult.Right = oRect.Right - oResult.Top = oRect.Top - oResult.Bottom = oRect.Bottom - - Return oResult - Catch ex As Exception - _Logger.Debug("Error in GetControlLocation/3") - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetControlLocations(ControlHandle As IntPtr, WindowHandle As IntPtr) As Dictionary(Of String, RectangleInfo) - Dim oWindowRect As New NativeMethods.RectangleAPI - Dim oControlRect As New NativeMethods.RectangleAPI - Dim oResults As New Dictionary(Of String, RectangleInfo) - - _Logger.Debug("Getting Control Locations") - - Try - _Logger.Debug("Trying to get Window Rectangle") - If NativeMethods.GetWindowRect(New HandleRef(Me, WindowHandle), oWindowRect) = False Then - Return Nothing - End If - - _Logger.Debug("Trying to get Control Rectangle") - If NativeMethods.GetWindowRect(New HandleRef(Me, ControlHandle), oControlRect) = False Then - Return Nothing - End If - - - For Each oAnchor As Anchor In [Enum].GetValues(GetType(Anchor)) - Dim oRect As NativeMethods.RectangleAPI = GetRelativeRectangle(oControlRect, oWindowRect, oAnchor) - - _Logger.Debug("Control Location for Anchor {0}: {1}", oAnchor, oRect) - - oResults.Add(oAnchor.ToString, New RectangleInfo() With { - .Left = oRect.Left, - .Right = oRect.Right, - .Top = oRect.Top, - .Bottom = oRect.Bottom - }) - Next - - Return oResults - Catch ex As Exception - _Logger.Debug("Error in GetControlLocations/2") - _Logger.Error(ex) - Throw ex - End Try - End Function - - ''' - ''' Returns Bounds of the focused control. Relative to current form and `Anchor` value. - ''' - Public Function GetFocusedControlLocation(WindowHandle As IntPtr, Anchor As Anchor) As RectangleInfo - Dim oForegroundWindow As WindowInfo - Dim oFocusedControl As WindowInfo - - Try - oForegroundWindow = GetWindowInfo() - oFocusedControl = GetFocusedControl(WindowHandle) - - If IsNothing(oForegroundWindow) Then - _Logger.Debug("Foreground Window is nothing!") - End If - - If IsNothing(oFocusedControl) Then - _Logger.Debug("Focused Contol is nothing!") - End If - - _Logger.Debug("Control Handle: {0}", oFocusedControl.hWnd) - _Logger.Debug("Window Handle: {0}", oForegroundWindow.hWnd) - - Return GetControlLocation(oFocusedControl.hWnd, oForegroundWindow.hWnd, Anchor) - Catch ex As Exception - _Logger.Debug("Error in GetFocusedControlLocation/2") - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetFocusedControlLocation(WindowHandle As IntPtr) As Dictionary(Of String, RectangleInfo) - Dim oForegroundWindow As WindowInfo - Dim oFocusedControl As WindowInfo - - Try - oForegroundWindow = GetWindowInfo() - oFocusedControl = GetFocusedControl(WindowHandle) - - If oForegroundWindow Is Nothing Then - _Logger.Warn("Foreground Window is Nothing!") - End If - - If oFocusedControl Is Nothing Then - _Logger.Warn("Focused Control is Nothing!") - End If - - Dim oDict As Dictionary(Of String, RectangleInfo) = GetControlLocations(oFocusedControl.hWnd, oForegroundWindow.hWnd) - - Return oDict - Catch ex As Exception - _Logger.Debug("Error in GetFocusedControlLocation/1") - _Logger.Error(ex) - Throw ex - End Try - End Function - - ''' - ''' Returns Bounds of the control under the cursor. Relative to current form and `Anchor` value. - ''' - Public Function GetHoveredControlLocation(Optional Anchor As Anchor = Anchor.TopLeft) As RectangleInfo - Dim oPoint As New NativeMethods.PointAPI - Dim oWindowRect As New NativeMethods.RectangleAPI - Dim oControlRect As New NativeMethods.RectangleAPI - Dim oForegroundWindow As IntPtr - Dim oControlUnderCursor As IntPtr - Dim oResult As New RectangleInfo - - Try - If NativeMethods.GetCursorPos(oPoint) = False Then - Return Nothing - End If - - oForegroundWindow = NativeMethods.GetForegroundWindow() - oControlUnderCursor = NativeMethods.WindowFromPoint(oPoint) - - Return GetControlLocation(oControlUnderCursor, oForegroundWindow, Anchor) - Catch ex As Exception - _Logger.Debug("Error in GetHoveredControlLocation/1") - _Logger.Error(ex) - Throw ex - End Try - End Function - - Public Function GetWindowRect(Handle As IntPtr) - Try - Dim oWindowRect As New NativeMethods.RectangleAPI - - If NativeMethods.GetWindowRect(New HandleRef(Me, Handle), oWindowRect) = False Then - Return Nothing - End If - - Return oWindowRect - Catch ex As Exception - _Logger.Debug("Error in GetWindowRect/1") - _Logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetRelativeRectangle(ControlRect As NativeMethods.RectangleAPI, WindowRect As NativeMethods.RectangleAPI, Anchor As Anchor) As NativeMethods.RectangleAPI - Try - Dim oScreenRect As Rectangle = System.Windows.Forms.Screen.PrimaryScreen.Bounds - Dim oLeft, oBottom, oTop, oRight As Integer - - _Logger.Debug("Calculating Rectangle for Anchor {0}", Anchor.ToString) - - Select Case Anchor - Case Anchor.TopLeft - oLeft = ControlRect.Left - WindowRect.Left - oTop = ControlRect.Top - WindowRect.Top - Case Anchor.BottomLeft - oLeft = ControlRect.Left - WindowRect.Left - oBottom = ControlRect.Bottom - WindowRect.Bottom - Case Anchor.TopRight - oRight = ControlRect.Right - WindowRect.Right - oTop = ControlRect.Top - WindowRect.Top - Case Anchor.BottomRight - oRight = ControlRect.Right - WindowRect.Right - oBottom = ControlRect.Bottom - WindowRect.Bottom - End Select - - _Logger.Debug("Done Calculating Rectangle for Anchor {0}", Anchor.ToString) - - Return New NativeMethods.RectangleAPI() With { - .Top = oTop, - .Bottom = oBottom, - .Left = oLeft, - .Right = oRight - } - Catch ex As Exception - _Logger.Debug("Error in GetRelativeRectangle/3") - _Logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetRect(Rect As NativeMethods.RectangleAPI, ParentRect As NativeMethods.RectangleAPI) As Rectangle - Try - Dim oX, oY, oWidth, oHeight As Integer - - oWidth = Rect.Right - Rect.Left - oHeight = Rect.Bottom - Rect.Top - oX = Rect.Left - ParentRect.Left - oY = Rect.Top - ParentRect.Top - - Return New Rectangle(oX, oY, oWidth, oHeight) - Catch ex As Exception - _Logger.Debug("Error in GetRect/2") - _Logger.Error(ex) - Throw ex - End Try - End Function - - Private Function GetRect(Rect As NativeMethods.RectangleAPI, ParentRect As Rectangle) As Rectangle - Try - Dim oX, oY, oWidth, oHeight As Integer - - oWidth = Rect.Right - Rect.Left - oHeight = Rect.Bottom - Rect.Top - oX = Rect.Left - ParentRect.X - oY = Rect.Top - ParentRect.Y - - Return New Rectangle(oX, oY, oWidth, oHeight) - Catch ex As Exception - _Logger.Debug("Error in GetRect/2") - _Logger.Error(ex) - Throw ex - End Try - End Function - - - Public Structure WINDOWPOS - Public hwnd As IntPtr - Public hwndInsertAfter As IntPtr - Public x As Integer - Public y As Integer - Public cx As Integer - Public cy As Integer - Public flags As Integer - End Structure - - Public Shared Sub SnapToDesktopBorder(pForm As Form, pLParam As IntPtr, Optional pWidthAdjustment As Integer = 0) - If pForm Is Nothing Then - ' Satisfies rule: Validate parameters - Throw New ArgumentNullException("pForm") - End If - - ' Snap client to the top, left, bottom or right desktop border - ' as the form is moved near that border - Try - ' Marshal the LPARAM value which is a WINDOWPOS struct - Dim oNewPosition As New WINDOWPOS - oNewPosition = CType(Marshal.PtrToStructure(pLParam, GetType(WINDOWPOS)), WINDOWPOS) - - If oNewPosition.y = 0 OrElse oNewPosition.x = 0 Then - Return ' Nothing to do! - End If - - ' Adjust the client size for borders and caption bar - Dim oClientRect As Rectangle = pForm.RectangleToScreen(pForm.ClientRectangle) - oClientRect.Width += SystemInformation.FrameBorderSize.Width - pWidthAdjustment - oClientRect.Height += (SystemInformation.FrameBorderSize.Height + SystemInformation.CaptionHeight) - - ' Now get the screen working area (without taskbar) - Dim oWorkingRect As Rectangle = System.Windows.Forms.Screen.GetWorkingArea(pForm.ClientRectangle) - - ' Left border - If oNewPosition.x >= oWorkingRect.X - WINDOW_SNAP_OFFSET AndAlso - oNewPosition.x <= oWorkingRect.X + WINDOW_SNAP_OFFSET Then - oNewPosition.x = oWorkingRect.X - End If - - ' Get screen bounds and taskbar height - ' (when taskbar is horizontal) - Dim oScreenRect As Rectangle = System.Windows.Forms.Screen.GetBounds(System.Windows.Forms.Screen.PrimaryScreen.Bounds) - Dim oTaskbarHeight As Integer = oScreenRect.Height - oWorkingRect.Height - - ' Top border (check if taskbar is on top - ' or bottom via WorkingRect.Y) - If oNewPosition.y >= -WINDOW_SNAP_OFFSET AndAlso - (oWorkingRect.Y > 0 AndAlso oNewPosition.y <= - (oTaskbarHeight + WINDOW_SNAP_OFFSET)) OrElse - (oWorkingRect.Y <= 0 AndAlso oNewPosition.y <= - (WINDOW_SNAP_OFFSET)) Then - If oTaskbarHeight > 0 Then - oNewPosition.y = oWorkingRect.Y ' Horizontal Taskbar - Else - oNewPosition.y = 0 ' Vertical Taskbar - End If - End If - - ' Right border - If oNewPosition.x + oClientRect.Width <= - oWorkingRect.Right + WINDOW_SNAP_OFFSET AndAlso - oNewPosition.x + oClientRect.Width >= - oWorkingRect.Right - WINDOW_SNAP_OFFSET Then - oNewPosition.x = oWorkingRect.Right - (oClientRect.Width + - SystemInformation.FrameBorderSize.Width) - End If - - ' Bottom border - If oNewPosition.y + oClientRect.Height <= - oWorkingRect.Bottom + WINDOW_SNAP_OFFSET AndAlso - oNewPosition.y + oClientRect.Height >= - oWorkingRect.Bottom - WINDOW_SNAP_OFFSET Then - oNewPosition.y = oWorkingRect.Bottom - (oClientRect.Height + - SystemInformation.FrameBorderSize.Height) - End If - - ' Marshal it back - Marshal.StructureToPtr(oNewPosition, pLParam, True) - Catch ex As ArgumentException - End Try - End Sub - - Public Class Utils - Private Shared GetControlNameMessage As Integer = 0 - - Public Shared Function GetWinFormsId(ByVal hWnd As IntPtr) As String - GetControlNameMessage = NativeMethods.RegisterWindowMessage("WM_GETCONTROLNAME") - Return XProcGetControlName(hWnd, GetControlNameMessage) - End Function - - Protected Shared Function XProcGetControlName(ByVal hwnd As IntPtr, ByVal msg As Integer) As String - Dim bytearray As Byte() = New Byte(65535) {} - Dim bufferMem As IntPtr = IntPtr.Zero - Dim written As IntPtr = IntPtr.Zero - Dim retHandle As IntPtr = IntPtr.Zero - Dim retVal As Boolean - Dim processHandle As IntPtr = IntPtr.Zero - Dim fileHandle As IntPtr = IntPtr.Zero - - If Not (Environment.OSVersion.Platform = PlatformID.Win32Windows) Then - - Try - Dim size As UInteger - size = 65536 - processHandle = NativeMethods.OpenProcess(NativeMethods.PROCESS_VM_OPERATION Or NativeMethods.PROCESS_VM_READ Or NativeMethods.PROCESS_VM_WRITE, False, GetProcessIdFromHWnd(hwnd)) - - If processHandle.ToInt64() = 0 Then - Throw New Win32Exception() - End If - - bufferMem = NativeMethods.VirtualAllocEx(processHandle, IntPtr.Zero, New UIntPtr(size), NativeMethods.MEM_RESERVE Or NativeMethods.MEM_COMMIT, NativeMethods.PageProtection.ReadWrite) - - If bufferMem.ToInt64() = 0 Then - Throw New Win32Exception() - End If - - retHandle = NativeMethods.SendMessage(hwnd, msg, New IntPtr(size), bufferMem) - retVal = NativeMethods.ReadProcessMemory(processHandle, bufferMem, bytearray, New UIntPtr(size), written) - - If Not retVal Then - Throw New Win32Exception() - End If - - Finally - retVal = NativeMethods.VirtualFreeEx(processHandle, bufferMem, New UIntPtr(0), NativeMethods.MEM_RELEASE) - - If Not retVal Then - Throw New Win32Exception() - End If - - NativeMethods.CloseHandle(processHandle) - End Try - Else - - Try - Dim size2 As Integer - size2 = 65536 - fileHandle = NativeMethods.CreateFileMapping(New IntPtr(NativeMethods.INVALID_HANDLE_VALUE), IntPtr.Zero, NativeMethods.PageProtection.ReadWrite, 0, size2, Nothing) - - If fileHandle.ToInt64() = 0 Then - Throw New Win32Exception() - End If - - bufferMem = NativeMethods.MapViewOfFile(fileHandle, NativeMethods.FILE_MAP_ALL_ACCESS, 0, 0, New UIntPtr(0)) - - If bufferMem.ToInt64() = 0 Then - Throw New Win32Exception() - End If - - NativeMethods.MoveMemoryFromByte(bufferMem, bytearray(0), size2) - retHandle = NativeMethods.SendMessage(hwnd, msg, New IntPtr(size2), bufferMem) - NativeMethods.MoveMemoryToByte(bytearray(0), bufferMem, 1024) - Finally - NativeMethods.UnmapViewOfFile(bufferMem) - NativeMethods.CloseHandle(fileHandle) - End Try - End If - - Return ByteArrayToString(bytearray) - End Function - - Private Shared Function GetProcessIdFromHWnd(ByVal hwnd As IntPtr) As UInteger - Dim pid As UInteger - NativeMethods.GetWindowThreadProcessId(hwnd, pid) - Return pid - End Function - - Private Shared Function ByteArrayToString(ByVal bytes As Byte()) As String - If Environment.OSVersion.Platform = PlatformID.Win32Windows Then - Return Encoding.[Default].GetString(bytes).TrimEnd(vbNullChar) - Else - Return Encoding.Unicode.GetString(bytes).TrimEnd(vbNullChar) - End If - End Function - End Class -End Class diff --git a/Windows/Windows.vbproj b/Windows/Windows.vbproj deleted file mode 100644 index f7f619dd..00000000 --- a/Windows/Windows.vbproj +++ /dev/null @@ -1,178 +0,0 @@ - - - - - Debug - AnyCPU - {5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86} - Library - DigitalData.Modules.Windows - DigitalData.Modules.Windows - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.Modules.Windows.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.Modules.Windows.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmPopup.vb - - - Form - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - frmPopup.vb - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} - Base - - - {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} - Language - - - {903B2D7D-3B80-4BE9-8713-7447B704E1B0} - Logging - - - - - {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52} - 2 - 8 - 0 - primary - False - True - - - {00062FFF-0000-0000-C000-000000000046} - 9 - 6 - 0 - primary - False - True - - - {00020430-0000-0000-C000-000000000046} - 2 - 0 - 0 - primary - False - True - - - - \ No newline at end of file diff --git a/Windows/packages.config b/Windows/packages.config deleted file mode 100644 index 63f3075e..00000000 --- a/Windows/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file