From 59d36568ed6bef387393f5ae18f5fac78319f8d5 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 17 Dec 2021 10:25:39 +0100 Subject: [PATCH] Zooflow: Update clipboard watcher module for zooflow --- .../ClipboardWatcher.vbproj.bak | 211 -------------- .../My Project/licenses.licx | 1 + GUIs.ClipboardWatcher/frmMatch.resx.bak | 270 ----------------- GUIs.ClipboardWatcher/frmMatch.vb | 29 +- .../frmMatchLoading.resx.bak | 237 --------------- GUIs.ClipboardWatcher/frmTreeView.resx.bak | 275 ------------------ GUIs.Common/Common.vbproj | 1 + .../DataResultList/frmDataResultList.vb | 2 +- .../DocumentResultParams.vb | 6 +- .../frmDocumentResultList.vb | 135 ++++++--- GUIs.Common/Helpers.vb | 8 + GUIs.Common/IResultForm.vb | 9 +- GUIs.Common/My Project/licenses.licx | 3 + .../Globix/ClassEmailHeaderExtractor.vb | 112 ------- GUIs.ZooFlow/Globix/ClassFolderwatcher.vb | 57 ++-- GUIs.ZooFlow/ZooFlow.vbproj | 1 - 16 files changed, 159 insertions(+), 1198 deletions(-) delete mode 100644 GUIs.ClipboardWatcher/ClipboardWatcher.vbproj.bak delete mode 100644 GUIs.ClipboardWatcher/frmMatch.resx.bak delete mode 100644 GUIs.ClipboardWatcher/frmMatchLoading.resx.bak delete mode 100644 GUIs.ClipboardWatcher/frmTreeView.resx.bak create mode 100644 GUIs.Common/Helpers.vb delete mode 100644 GUIs.ZooFlow/Globix/ClassEmailHeaderExtractor.vb diff --git a/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj.bak b/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj.bak deleted file mode 100644 index 079ef485..00000000 --- a/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj.bak +++ /dev/null @@ -1,211 +0,0 @@ - - - - - Debug - AnyCPU - {B7D465A2-AE31-4CDF-A8B2-34B42D3EA84E} - Library - DigitalData.GUIs.ClipboardWatcher - DigitalData.GUIs.ClipboardWatcher - 512 - Windows - v4.6.1 - - - true - full - true - true - bin\Debug\ - DigitalData.GUIs.ClipboardWatcher.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - bin\Release\ - DigitalData.GUIs.ClipboardWatcher.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - - False - - - - False - - - - False - - - False - ..\Modules.EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll - - - - ..\packages\NLog.4.7.10\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frmMatch.vb - - - Form - - - frmTreeView.vb - - - Form - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - frmMatchLoading.vb - - - Form - - - - - frmMatch.vb - - - frmMatch.vb - - - frmMatch.vb - - - frmMatchLoading.vb - - - frmMatchLoading.vb - - - frmTreeView.vb - - - frmTreeView.vb - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - frmMatchLoading.vb - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049} - Common - - - {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.ClipboardWatcher/My Project/licenses.licx b/GUIs.ClipboardWatcher/My Project/licenses.licx index e69de29b..f44a7f5f 100644 --- a/GUIs.ClipboardWatcher/My Project/licenses.licx +++ b/GUIs.ClipboardWatcher/My Project/licenses.licx @@ -0,0 +1 @@ +DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ClipboardWatcher/frmMatch.resx.bak b/GUIs.ClipboardWatcher/frmMatch.resx.bak deleted file mode 100644 index 652f24a7..00000000 --- a/GUIs.ClipboardWatcher/frmMatch.resx.bak +++ /dev/null @@ -1,270 +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 - - - 2 - - - - 0 - - - - 6, 13 - - - $this - - - 0, 420 - - - Label1 - - - DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 800, 30 - - - SplashScreenManager1 - - - 800, 38 - - - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Segoe UI, 12pt - - - 0, 0 - - - TileControl1 - - - - Fill - - - Daten - - - Top - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0, 38 - - - 800, 450 - - - 5, 5, 5, 5 - - - $this - - - Label2 - - - DevExpress.XtraEditors.TileGroup, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Segoe UI, 9.75pt - - - Segoe UI Semibold, 12pt, style=Bold - - - TileGroupDocumentsData - - - Wie wurden die Profile gefunden? - - - frmMatch - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Es wurde(n) {0} in {1} für Ihre Suche nach '{2}' gefunden: - - - TileGroupDocuments - - - 3 - - - Dokumente - - - 800, 382 - - - $this - - - 5, 5, 5, 5 - - - TileControlMatch - - - 1 - - - 0 - - - TileGroupData - - - Kombiniert - - - DevExpress.XtraEditors.TileGroup, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 1 - - - Clipboard Watcher - Profile gefunden - - - Bottom - - - DevExpress.XtraEditors.TileGroup, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - \ No newline at end of file diff --git a/GUIs.ClipboardWatcher/frmMatch.vb b/GUIs.ClipboardWatcher/frmMatch.vb index ae1b6a73..6105a9b8 100644 --- a/GUIs.ClipboardWatcher/frmMatch.vb +++ b/GUIs.ClipboardWatcher/frmMatch.vb @@ -27,18 +27,18 @@ Imports System.Globalization ''' - Clipboard Content as String ''' Public Class frmMatch - Private _LogConfig As LogConfig - Private _Logger As Logger - Private _Environment As Environment - Private _Params As ClipboardWatcherParams - Private _Language As String - - Private PrimaryFont As New Font("Segoe UI", 12, FontStyle.Bold) - Private SecondaryFont As New Font("Segoe UI", 10) - Private TileForeColor As Color = Color.Black - Private TileBackColor As Color = Color.FromArgb(255, 214, 47) - - Private OpenForms As New List(Of IResultForm) + Private ReadOnly _LogConfig As LogConfig + Private ReadOnly _Logger As Logger + Private ReadOnly _Environment As Environment + Private ReadOnly _Params As ClipboardWatcherParams + Private ReadOnly _Language As String + + Private ReadOnly PrimaryFont As New Font("Segoe UI", 12, FontStyle.Bold) + Private ReadOnly SecondaryFont As New Font("Segoe UI", 10) + Private ReadOnly TileForeColor As Color = Color.Black + Private ReadOnly TileBackColor As Color = Color.FromArgb(255, 214, 47) + + Private ReadOnly OpenForms As New List(Of IResultForm) Private ShouldHideInitially As Boolean = False Private Const NO_COUNT_SQL As Integer = 99998 @@ -60,7 +60,7 @@ Public Class frmMatch _Environment = Environment _Params = Params - _Language = Language.Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US) + _Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US) Thread.CurrentThread.CurrentUICulture = New CultureInfo(_Language) End Sub @@ -144,13 +144,16 @@ Public Class frmMatch OpenDocumentResults(oProfile, oSearches) _Logger.Debug($"OpenDocumentResults finished") Hide() + ElseIf oProfile.CountDocs > 0 And oProfile.CountData > 0 Then _Logger.Debug($"Docs AND Data") + ElseIf oProfile.CountDocs = 0 And oProfile.CountData > 0 Then _Logger.Debug($"ONLY Data") Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync(oProfile.Guid) OpenDataResults(oProfile, oSearches) Hide() + End If End If Catch ex As Exception diff --git a/GUIs.ClipboardWatcher/frmMatchLoading.resx.bak b/GUIs.ClipboardWatcher/frmMatchLoading.resx.bak deleted file mode 100644 index fcdedd5f..00000000 --- a/GUIs.ClipboardWatcher/frmMatchLoading.resx.bak +++ /dev/null @@ -1,237 +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 - - - tableLayoutPanel1 - - - - 0, 14, 0, 14 - - - - True - - - GrowAndShrink - - - - 6, 13 - - - 246, 39 - - - progressPanel1 - - - Form1 - - - DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 246, 73 - - - frmMatchLoading - - - 1 - - - 0, 3, 0, 3 - - - Fill - - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="progressPanel1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> - - - $this - - - 246, 73 - - - Manual - - - 0, 17 - - - Bitte warten - - - 0, 0 - - - True - - - GrowAndShrink - - - progressPanel1 - - - 0 - - - 0 - - - 0 - - - Ergebnisse werden geladen... - - - DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Microsoft Sans Serif, 8.25pt - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - 1 - - - Microsoft Sans Serif, 12pt - - - tableLayoutPanel1 - - - True - - - fr-FR - - \ No newline at end of file diff --git a/GUIs.ClipboardWatcher/frmTreeView.resx.bak b/GUIs.ClipboardWatcher/frmTreeView.resx.bak deleted file mode 100644 index 84d515f4..00000000 --- a/GUIs.ClipboardWatcher/frmTreeView.resx.bak +++ /dev/null @@ -1,275 +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 - - - - 800, 450 - - - - 0 - - - $this - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 800, 450 - - - 0 - - - 6, 13 - - - ImageList1 - - - tvProfileMatch - - - Profilsuchen Algorithmus - - - 0 - - - 0 - - - 0, 0 - - - Segoe UI, 9.75pt - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+ - EgAAAk1TRnQBSQFMAgEBBgEAARABAAEUAQABEAEAARABAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAFA - AwABIAMAAQEBAAEgBgABIDYABP8DmQH/A+oF/wPMAf8DwAH/xAADhgH/A4YB/wOGAf8DhgH/A4YB/wOG - Af8DhgH/A4YF/wPXAf8D+AH/AcwBmQExAf8BzAGZATEB/wHMApkF/wOWAf8EAAOGAf8DhgH/A4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/hAADhgH/HAADhgX/AcwBmQFk - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExCf8QAAOGAf8YAAOGAf+QAAOGAf8cAAOyBf8B8AHKAaYB/wHM - AZkBMQ3/A8wB/xAAA4YB/xgAA4YB/5AAA4YB/yAAA5YF/wHwAcoBpgn/A8AB/wPqAf8EAAOGAf8DhgH/ - A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/hAADhgH/JAAD8QH/ - A5YB/wOGAf8DwAH/BAADmQH/EAADhgH/GAADhgH/kAADhgH/OAADhgH/EAADhgH/GAADhgH/kAADhgH/ - OAADhgH/BAADhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/ - A4YB/4QAA4YB/zgAA4YB/xAAA4YB/xgAA4YB/5AAA4YB/zgAA4YB/xAAA4YB/xgAA4YB/5AAAcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wQAA4YB/wQAA4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+EAAHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8EAAOGAf8EAAPXAf8D1wH/ - A9cB/wOGAf8D1wH/A9cB/wPXAf8D1wH/A9cB/wPXAf8DhgH/A9cB/wPXAf8D1wH/hAABzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/BAADhgH/BAAD1wH/A9cB/wPX - Af8DhgH/A9cB/wPXAf8D1wH/A9cB/wPXAf8D1wH/A4YB/wPXAf8D1wH/A9cB/4wAAcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wQAA4YB/wOGAf8DhgH/A4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+MAAHMAZkBMQH/AcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf/IAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf//AF0AA4Yh/xwAAcwBmQFkAf8BzAGZATEB/wPqAf8kAAOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/ZAADhiH/HAABzAGZATEB/wHM - AZkBMQH/AcwBmQExAf9MAAOGAf8QAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM - AZkBMQH/EAABMQHMAv8BZAHMAv8BZAHMAv8BZAHMAv8DhiH/CAAE/wHMAZkBMQH/AcwBmQExBf8D3QH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQX/AswBmQH/AcwBmQExAf8CzAGZAf8gAAOGAf8DhgH/A4YB/wOG - Af8DhgH/CAADhgH/EAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/xAA - ATEBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4Yh/wgAAcwBmQFkAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM - AZkBMQH/IAABZAHMAv8BZAHMAv8BZAHMAv8BZAHMAv8DhgH/CAADhgH/EAABzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/xAAATEBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4Yh/wgA - BP8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wLMAZkB/yAAAWQBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4YB/wgA - A4YB/xAAAcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFk - AcwC/wFkAcwC/wFkAcwC/wOGIf8MAAHMAZkBZAH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/A/EF/wLM - AZkB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEF/yAAAWQBzAL/AWQBzAL/AWQBzAL/AWQBzAL/A4YB/wgA - A4YB/xAAAcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFk - AcwC/wFkAcwC/wFkAcwC/wOGIf8EAAHMAZkBZAH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8QAALMAZkB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/A+oB/wQAA+MB/wOGBf8kAAOG - Af8DhgH/DAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/CAABzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFkAcwC/wFkAcwC/wFk - AcwC/wOGIf8EAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAT/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wQABP8DhgH/A4YF/xwAA8AB/wOGAf8DzAH/ - DAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/CAABzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAExAcwC/wFkAcwC/wFkAcwC/wFkAcwC/wOG - If8EAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8QAAPxAf8BzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBZAH/CAAE/wOGAf8DhgX/FAADwAH/A4YB/wPMAf8QAAHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/EAABMQHMAv8BZAHMAv8BZAHM - Av8BZAHMAv8DhiH/DAABzAGZATEB/wHMAZkBMQH/AcwBmQExAf8D1wH/DAABzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8D3QH/FAAE/wOGAf8DhgX/DAADwAH/A4YB/wPMAf8UAAHMAZkBMQH/AcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/EAABMQHMAv8BZAHMAv8BZAHMAv8BZAHMAv8DhgH/A4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8MAAHMApkB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHM - AZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEF/xgABP8DhgH/A4YF/wQA - A8AB/wOGAf8DzAH/AcwBmQFkAf8UAAHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQEx - Af8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wPq - Af8QAAExAcwC/yAAAWQBzAL/FAAB8AHKAaYB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/ - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8cAAT/ - A4YB/wOGAf8DwAH/A4YB/wPMAf8BzAGZAWQB/wHMAZkBMQH/IAABzAGZATEB/xAAAcwBmQExAf8gAAEx - AcwC/wQAA4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wFkAcwC/xQAA8wB/wHMAZkBMQH/AcwBmQEx - Af8BzAKZAf8BzAGZATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBZAH/AcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/IAAE/wOGAf8DhgH/A8wB/wQAAcwBmQExAf8BzAGZATEB/yAAAcwBmQExAf8BzAGZ - ATEB/wHMAZkBMQH/AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/MAADhgH/BAADhgH/JAADzAH/A8wB/wgA - AcwBmQExAf8BzAGZATEB/wHMAZkBMQH/BAAE/wHMAZkBZAX/JAAE/wPMAf+4AAHMAZkBMQH/AcwBmQEx - Af8BzAGZAWQB//8AGQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAf8BgQL/ - BgABgAEBBAABfwEAAfcB7wQAAX8BAAH3Ae8EAAF/AoABAQQAAX8BwgH3Ae8EAAF/Af4B9wHvBAABfwH+ - AYABAQQAAX8B/gH3Ae8EAAF/Af4B9wHvBQABAgGAAQEFAAECAYABAQUAAQIBgAEBBAABwAEAAYABAQQA - AcABAAL/BAABwAEAAv8EAAT/Af4BAAH+AT8B4AEDAv8B/gEAAf4BPwH/AfsBwAEBAeABAAHAAQMB/AEb - AcABAQHgAQABwAEDAfwBGwHAAQEB4AEAAcABAwH8ARsBwAEBAeABAAHgAQMB/AEbAcABAQHgAQABgwHA - AY8B+QHBAYEB4AEAAYMBwAGHAfEBwQGBAeABAAGDAcABwwHjAcABAQHgAQAB4QHDAeEBxwHAAQEB4AEA - AeABAwHwAYcBwAEBAe8B9wHAAQMB+AEHAfsB3wHoAQcBwAEDAfwBJwH4AR8B/gG/AeYBIwH+AX8E/wH+ - AT8I/xYACw== - - - - - Fill - - - System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - frmTreeView - - - fr-FR - - - True - - - 17, 17 - - \ No newline at end of file diff --git a/GUIs.Common/Common.vbproj b/GUIs.Common/Common.vbproj index e4ccd8e6..2c711bad 100644 --- a/GUIs.Common/Common.vbproj +++ b/GUIs.Common/Common.vbproj @@ -118,6 +118,7 @@ + diff --git a/GUIs.Common/DataResultList/frmDataResultList.vb b/GUIs.Common/DataResultList/frmDataResultList.vb index 1f5ecdc0..a1a54684 100644 --- a/GUIs.Common/DataResultList/frmDataResultList.vb +++ b/GUIs.Common/DataResultList/frmDataResultList.vb @@ -30,7 +30,7 @@ Public Class frmDataResultList Public Property ShouldReturnToPreviousForm As Boolean Implements IResultForm.ShouldReturnToPreviousForm - Private Property OperationMode As IResultForm.Mode Implements IResultForm.OperationMode + Private Property OperationMode As Helpers.OperationMode Implements IResultForm.OperationMode Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As DataResultParams) ' Dieser Aufruf ist für den Designer erforderlich. diff --git a/GUIs.Common/DocumentResultList/DocumentResultParams.vb b/GUIs.Common/DocumentResultList/DocumentResultParams.vb index b383c86c..5d1e5679 100644 --- a/GUIs.Common/DocumentResultList/DocumentResultParams.vb +++ b/GUIs.Common/DocumentResultList/DocumentResultParams.vb @@ -1,4 +1,6 @@ -Public Class DocumentResultParams +Imports DigitalData.GUIs.Common.Helpers + +Public Class DocumentResultParams ''' ''' WindowGuid is used to save layout data ''' @@ -6,6 +8,7 @@ Public WindowTitle As String = "" Public Results As New List(Of DocumentResult) Public ColumnNames As New ColumnNames + Public OperationModeOverride As OperationMode = OperationMode.None End Class Public Class DocumentResult @@ -16,4 +19,5 @@ Public Class ColumnNames Public ObjectIdColumn As String = "DocId" Public FullPathColumn As String = "FULL_FILENAME" Public FilenameColumn As String = "Name" + Public IconColumn As String = "ICON" End Class diff --git a/GUIs.Common/DocumentResultList/frmDocumentResultList.vb b/GUIs.Common/DocumentResultList/frmDocumentResultList.vb index 85b7c3dc..2e61de82 100644 --- a/GUIs.Common/DocumentResultList/frmDocumentResultList.vb +++ b/GUIs.Common/DocumentResultList/frmDocumentResultList.vb @@ -7,7 +7,6 @@ Imports DevExpress.XtraBars Imports DevExpress.XtraEditors Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Columns -Imports DevExpress.XtraGrid.Menu Imports DevExpress.XtraGrid.Views.BandedGrid Imports DevExpress.XtraGrid.Views.Base Imports DevExpress.XtraGrid.Views.Grid @@ -16,21 +15,20 @@ Imports DevExpress.XtraPrinting Imports DigitalData.Modules.Config Imports DigitalData.Modules.EDMI.API Imports DigitalData.Modules.EDMI.API.Client +Imports DigitalData.Modules.EDMI.API.EDMIServiceReference Imports DigitalData.Modules.Language Imports DigitalData.Modules.Logging Imports DigitalData.Modules.ZooFlow -Imports DigitalData.Modules.Windows -Imports DigitalData.Modules.Filesystem Public Class frmDocumentResultList Implements IResultForm ' These are NOT constants, only defaults ' Can be changed when calling frmDocumentResultList - Private COLUMN_FILEPATH As String = "FULL_FILENAME" - Private COLUMN_FILENAME As String = "Filename" - Private COLUMN_DOCID As String = "DocID" - Private COLUMN_ICON As String = "ICON" + Private ReadOnly COLUMN_FILEPATH As String = "FULL_FILENAME" + Private ReadOnly COLUMN_FILENAME As String = "Filename" + Private ReadOnly COLUMN_DOCID As String = "DocID" + Private ReadOnly COLUMN_ICON As String = "ICON" ' Constants Private Const OPEN_FILE As String = "Datei öffnen" @@ -43,16 +41,17 @@ Public Class frmDocumentResultList ' Helper Classes Private _IDBClient As Client - Private _LogConfig As LogConfig - Private _Logger As Logger - Private _Config As ConfigManager(Of DocumentResultConfig) - Private _Environment As Environment - Private _Params As DocumentResultParams - Private _ResultLists As List(Of DocumentResult) - Private _Helpers As DocumentResultList - Private _Filesystem As Modules.Filesystem.File - Private _GridBuilder As GridBuilder - Private _File As Modules.Windows.File + Private ReadOnly _LogConfig As LogConfig + Private ReadOnly _Logger As Logger + Private ReadOnly _Config As ConfigManager(Of DocumentResultConfig) + Private ReadOnly _Environment As Environment + Private ReadOnly _Params As DocumentResultParams + Private ReadOnly _ResultLists As List(Of DocumentResult) + Private ReadOnly _Helpers As DocumentResultList + Private ReadOnly _Filesystem As Modules.Filesystem.File + Private ReadOnly _GridBuilder As GridBuilder + Private ReadOnly _File As Modules.Windows.File + Private ReadOnly _OpenDocuments As New DocumentResultCache(50000000) ' Runtime variables Private _IsLoading As Boolean = True @@ -63,13 +62,13 @@ Public Class frmDocumentResultList 'Private _HashOriginalFile As String = Nothing 'Private _HashOpenedFile As String = Nothing - Private WithEvents _FileOpenTimer As New Timer - Private _OpenDocuments As New DocumentResultCache(50000000) Private _CurrentDocument As DocumentResultInfo = Nothing Private _CurrentDocumentId As Long = Nothing - Private _Language As String + Private ReadOnly _Language As String + + Private WithEvents _FileOpenTimer As New Timer - Private Property OperationMode As IResultForm.Mode Implements IResultForm.OperationMode + Private Property OperationMode As Helpers.OperationMode Implements IResultForm.OperationMode Public Property ShouldReturnToPreviousForm As Boolean = False Implements IResultForm.ShouldReturnToPreviousForm @@ -83,6 +82,7 @@ Public Class frmDocumentResultList COLUMN_DOCID = Params.ColumnNames.ObjectIdColumn COLUMN_FILENAME = Params.ColumnNames.FilenameColumn COLUMN_FILEPATH = Params.ColumnNames.FullPathColumn + COLUMN_ICON = Params.ColumnNames.IconColumn _LogConfig = LogConfig _Logger = LogConfig.GetLogger() @@ -97,15 +97,28 @@ Public Class frmDocumentResultList _Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US) End Sub + Private Function GetOperationMode() As Helpers.OperationMode + Dim oOperationMode = OperationMode.None + + If _Environment.Service.IsActive AndAlso _Environment.Service.Address <> String.Empty Then + oOperationMode = Helpers.OperationMode.WithAppServer + Else + oOperationMode = Helpers.OperationMode.NoAppServer + End If + + If _Params.OperationModeOverride <> Helpers.OperationMode.None Then + oOperationMode = _Params.OperationModeOverride + End If + + Return oOperationMode + End Function + Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try - If _Environment.Service.IsActive AndAlso _Environment.Service.Address <> String.Empty Then - OperationMode = IResultForm.Mode.WithAppServer - Else - OperationMode = IResultForm.Mode.NoAppServer - End If - - If OperationMode = IResultForm.Mode.WithAppServer Then + ' Operation mode is either guessed from service settings + ' or explictly set from OperationModeOverride in Params + OperationMode = GetOperationMode() + If OperationMode = Helpers.OperationMode.WithAppServer Then InitAppServer() End If @@ -125,7 +138,7 @@ Public Class frmDocumentResultList SplitContainerControl2.SplitterPosition = _Config.Config.SplitContainer2Distance SwitchDetailContainerHorizontal.Checked = _Config.Config.SplitContainer2Horizontal - If OperationMode <> IResultForm.Mode.NoAppServer Then + If OperationMode <> Helpers.OperationMode.NoAppServer Then ' Location and size will be managed by the ZooFlow Search Window If Utils.IsVisibleOnAnyScreen(_Config.Config.WindowLocation) Then If Utils.LocationIsVisible(_Config.Config.WindowLocation) Then @@ -136,8 +149,8 @@ Public Class frmDocumentResultList End If End If - SwitchMainContainerHorizontal.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - SwitchDetailContainerHorizontal.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + SwitchMainContainerHorizontal.Visibility = BarItemVisibility.Never + SwitchDetailContainerHorizontal.Visibility = BarItemVisibility.Never End If _GridBuilder. @@ -171,11 +184,33 @@ Public Class frmDocumentResultList DocumentViewer1.CloseDocument() - If OperationMode = IResultForm.Mode.NoAppServer Then - oDocumentInfo = LoadFile_Legacy(oRow) - ElseIf OperationMode = IResultForm.Mode.WithAppServer Then - oDocumentInfo = LoadFile_IDB(oRow) - End If + Select Case OperationMode + Case Helpers.OperationMode.NoAppServer + oDocumentInfo = LoadFile_Legacy(oRow) + + If oDocumentInfo.Contents IsNot Nothing Then + Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath) + DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents)) + Else + DocumentViewer1.LoadFile(oDocumentInfo.FullPath) + End If + + Case Helpers.OperationMode.WithAppServer + oDocumentInfo = LoadFile_IDB(oRow) + + If oDocumentInfo.Contents IsNot Nothing Then + Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath) + DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents)) + Else + DocumentViewer1.LoadFile(oDocumentInfo.FullPath) + End If + + + Case Helpers.OperationMode.ZooFlow + oDocumentInfo = LoadFile_ZooFlow(oRow) + + + End Select If IsNothing(oDocumentInfo) Then Show_Warning("File could not be loaded!") @@ -191,7 +226,6 @@ Public Class frmDocumentResultList If oDocumentInfo.Contents IsNot Nothing Then Dim oFileInfo As New FileInfo(oDocumentInfo.FullPath) - DocumentViewer1.LoadFile(oFileInfo.Name, New MemoryStream(oDocumentInfo.Contents)) Else DocumentViewer1.LoadFile(oDocumentInfo.FullPath) @@ -281,6 +315,27 @@ Public Class frmDocumentResultList End Try End Function + Private Function LoadFile_ZooFlow(GridRow As DataRow) + Try + Dim oObjectId = GridRow.Item(COLUMN_DOCID) + _Logger.Debug("Loading FileObject for ObjectId: [{0}]", oObjectId) + + ' This needs to be Sync bc otherwise the PopupMenuShowing event will fire before this method loaded the FileObject + Dim oFileObject As FileObject = _IDBClient.GetFileObject(oObjectId) + Dim oResultDocumentInfo As New DocumentResultInfo() With { + .AccessRight = "", + .FullPath = "", + .Contents = oFileObject._FileContents + } + _Logger.Debug("Successfully loaded Information for ObjectId: [{0}]", oObjectId) + + Catch ex As Exception + _Logger.Error(ex) + Return Nothing + + End Try + End Function + Private Function LoadFile_AsByteArray(DocumentInfo As DocumentResultInfo) As DocumentResultInfo Try _Logger.Debug("Loading File [{0}]", DocumentInfo.FullPath) @@ -380,7 +435,7 @@ Public Class frmDocumentResultList Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}] for search {Result.Title}!") End If - If OperationMode = IResultForm.Mode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then + If OperationMode = Helpers.OperationMode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!") End If @@ -516,7 +571,7 @@ Public Class frmDocumentResultList oFilePathColumn.Visible = False ' Hide Fullpath column completely in AppServer-Mode - If OperationMode = IResultForm.Mode.WithAppServer Then + If OperationMode = Helpers.OperationMode.WithAppServer Then oFilePathColumn.OptionsColumn.ShowInCustomizationForm = False End If End If @@ -877,7 +932,7 @@ Public Class frmDocumentResultList _CurrentDocumentId = oObjectId - If OperationMode = IResultForm.Mode.WithAppServer Then + If OperationMode = Helpers.OperationMode.WithAppServer Then If oRight = Rights.AccessRight.FULL Or oRight = Rights.AccessRight.VIEW_EXPORT Then MenuFullAccess_IDB.ShowPopup(oPoint) Else diff --git a/GUIs.Common/Helpers.vb b/GUIs.Common/Helpers.vb new file mode 100644 index 00000000..41ccd0a9 --- /dev/null +++ b/GUIs.Common/Helpers.vb @@ -0,0 +1,8 @@ +Public Class Helpers + Public Enum OperationMode + WithAppServer + NoAppServer + ZooFlow + None + End Enum +End Class diff --git a/GUIs.Common/IResultForm.vb b/GUIs.Common/IResultForm.vb index 896ff0d4..1614fd56 100644 --- a/GUIs.Common/IResultForm.vb +++ b/GUIs.Common/IResultForm.vb @@ -1,10 +1,7 @@ -Public Interface IResultForm - Enum Mode - WithAppServer - NoAppServer - End Enum +Imports DigitalData.GUIs.Common.Helpers - Property OperationMode As Mode +Public Interface IResultForm + Property OperationMode As OperationMode Property ShouldReturnToPreviousForm As Boolean Function RefreshResults(pResults As IEnumerable(Of BaseResult)) As Boolean diff --git a/GUIs.Common/My Project/licenses.licx b/GUIs.Common/My Project/licenses.licx index e69de29b..a42d698e 100644 --- a/GUIs.Common/My Project/licenses.licx +++ b/GUIs.Common/My Project/licenses.licx @@ -0,0 +1,3 @@ +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.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.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ZooFlow/Globix/ClassEmailHeaderExtractor.vb b/GUIs.ZooFlow/Globix/ClassEmailHeaderExtractor.vb deleted file mode 100644 index 40199418..00000000 --- a/GUIs.ZooFlow/Globix/ClassEmailHeaderExtractor.vb +++ /dev/null @@ -1,112 +0,0 @@ -Imports Independentsoft -Imports System.Text.RegularExpressions - -Public Class ClassEmailHeaderExtractor - ''' - ''' Extrahiert die Headerinformationen aus einer .msg Datei mithilfe der MSG.NET Klasse - ''' - ''' Der Pfad einer .msg Datei - ''' Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist. - Public Shared Function getMessageHeaders(path As String) As String - Try - Dim msg As New Msg.Message(path) - Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ") - Return headers - Catch ex As Exception - Return Nothing - End Try - End Function - - ''' - ''' Extrahiert die Headerinformationen aus einem msg Objekt mithilfe der MSG.NET Klasse - ''' - ''' Eine Email vom Typ Msg.Message - ''' Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist. - Public Shared Function getMessageHeaders(msg As Msg.Message) As String - Try - Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ") - Return headers - Catch ex As Exception - Return Nothing - End Try - End Function - - ''' - ''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Absenderadresse. - ''' - ''' Headerinformationen die von getMessageHeaders erzeugt wurden. - ''' Eine Liste von Regular Expressions - ''' Die Ergebnisgruppe, die die Adresse enthält - ''' Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte. - Public Shared Function extractFromAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1) As String - If IsNothing(messageHeaders) Then - Return Nothing - End If - - For Each rx In RegexList - Dim match As Match = rx.Match(messageHeaders) - Dim email As String = match.Groups(RegexGroup).Value - - If Not String.IsNullOrWhiteSpace(email) Then - Return email - End If - Next - - Return Nothing - End Function - Public Shared Function extractFromHeader(messageHeaders As String, Regex As String) As String - Try - Dim result As String = "" - Dim i As Integer = 0 - If IsNothing(messageHeaders) Then - Return Nothing - End If - ' einen Regulären Ausdruck laden - Dim strRegex As String = Regex - Dim myRegex As New Regex(strRegex, RegexOptions.IgnorePatternWhitespace) - Dim strTargetString As String = messageHeaders.Trim - ' die Vorkommen im String auslesen - For Each myMatch As Match In myRegex.Matches(strTargetString) - If myMatch.Success Then - If myMatch.Value <> "" Then - If i = 0 Then - result = myMatch.Value.ToString - Else - result = result & ";" & myMatch.Value.ToString - End If - i += 1 - End If - End If - Next - Return result - Catch ex As Exception - MsgBox("Unexpected Error in extractFromHeader: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) - Return Nothing - End Try - - End Function - - ''' - ''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Empfängeradresse. - ''' - ''' Headerinformationen die von getMessageHeaders erzeugt wurden. - ''' Eine Liste von Regular Expressions - ''' Die Ergebnisgruppe, die die Adresse enthält - ''' Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte. - Public Shared Function extractToAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1) As String - If IsNothing(messageHeaders) Then - Return Nothing - End If - - For Each rx In RegexList - Dim match As Match = rx.Match(messageHeaders) - Dim email As String = match.Groups(RegexGroup).Value - - If Not String.IsNullOrWhiteSpace(email) Then - Return email - End If - Next - - Return Nothing - End Function -End Class diff --git a/GUIs.ZooFlow/Globix/ClassFolderwatcher.vb b/GUIs.ZooFlow/Globix/ClassFolderwatcher.vb index a11d5b3b..80a49e3c 100644 --- a/GUIs.ZooFlow/Globix/ClassFolderwatcher.vb +++ b/GUIs.ZooFlow/Globix/ClassFolderwatcher.vb @@ -20,14 +20,9 @@ Public Class ClassFolderwatcher 'Gestartet also Stoppen FWFolderWatcher.EnableRaisingEvents = False My.Application.Globix.Folderwatchstarted = False - 'FolderWatch neu instanzieren - FWFolderWatcher = New FileSystemWatcher(My.Application.Globix.CurrentFolderWatchPath, "*.*") - Logger.Info(" >> FolderWatch neu instanziert") - FWFolderWatcher.IncludeSubdirectories = False - FWFolderWatcher.EnableRaisingEvents = True - AddHandler FWFolderWatcher.Created, AddressOf OnCreated + + FWFolderWatcher = StartFolderwatcherForPath(My.Application.Globix.CurrentFolderWatchPath) My.Application.Globix.Folderwatchstarted = True - 'SaveConfigValue("my.Application.Globix.Folderwatchstarted", "True") My.UIConfig.Globix.FolderWatchStarted = True My.UIConfigManager.Save() End If @@ -43,13 +38,10 @@ Public Class ClassFolderwatcher If FWScan.EnableRaisingEvents = True Then 'Gestartet also Stoppen FWScan.EnableRaisingEvents = False + 'FolderWatch neu instanzieren - FWScan = New System.IO.FileSystemWatcher(My.Application.Globix.CURRENT_SCAN_FOLDERWATCH, "*.*") - Logger.Info(" >> FolderWatchScan neu instanziert") - FWScan.IncludeSubdirectories = False - FWScan.EnableRaisingEvents = True - AddHandler FWScan.Created, AddressOf OnCreated - 'SaveConfigValue("FWSCAN_started", "True") + FWScan = StartFolderwatcherForPath(My.Application.Globix.CURRENT_SCAN_FOLDERWATCH) + My.UIConfig.Globix.FolderWatchScanStarted = True My.UIConfigManager.Save() End If @@ -60,28 +52,16 @@ Public Class ClassFolderwatcher End Sub Public Sub StartStop_FolderWatch() Try - If FWFolderWatcher Is Nothing Then - FWFolderWatcher = New System.IO.FileSystemWatcher(My.Application.Globix.CurrentFolderWatchPath, "*.*") - Logger.Info(" >> FolderWatch Gestartet") - FWFolderWatcher.IncludeSubdirectories = False - FWFolderWatcher.EnableRaisingEvents = True - AddHandler FWFolderWatcher.Created, AddressOf OnCreated + If FWFolderWatcher Is Nothing OrElse FWFolderWatcher.EnableRaisingEvents = False Then + ' Folderwatch neu instanzieren + FWFolderWatcher = StartFolderwatcherForPath(My.Application.Globix.CurrentFolderWatchPath) My.Application.Globix.Folderwatchstarted = True My.UIConfig.Globix.FolderWatchStarted = True My.UIConfigManager.Save() + End If - If FWFolderWatcher.EnableRaisingEvents = False Then - ' Dim watcher As New FileSystemWatcher() - ' watcher.Path = CURRENT_FOLDERWATCH - FWFolderWatcher = New System.IO.FileSystemWatcher(My.Application.Globix.CurrentFolderWatchPath, "*.*") - Logger.Info(" >> FolderWatch Gestartet") - FWFolderWatcher.IncludeSubdirectories = False - FWFolderWatcher.EnableRaisingEvents = True - AddHandler FWFolderWatcher.Created, AddressOf OnCreated - My.Application.Globix.Folderwatchstarted = True - My.UIConfig.Globix.FolderWatchStarted = True - My.UIConfigManager.Save() - Else + + If FWFolderWatcher.EnableRaisingEvents = True Then 'Gestartet also Stoppen FWFolderWatcher.EnableRaisingEvents = False My.Application.Globix.Folderwatchstarted = False @@ -161,6 +141,21 @@ Public Class ClassFolderwatcher Return False End If End Function + + Private Function StartFolderwatcherForPath(pPath As String) As FileSystemWatcher + Dim oWatcher = New FileSystemWatcher(pPath, "*.*") With { + .IncludeSubdirectories = False, + .EnableRaisingEvents = True + } + AddHandler oWatcher.Created, AddressOf OnCreated + Logger.Debug("Folder Watcher started for Path [{0}]", pPath) + + My.UIConfig.Globix.FolderWatchScanStarted = True + My.UIConfigManager.Save() + + Return oWatcher + End Function + Private Sub OnCreated(source As Object, e As FileSystemEventArgs) Try If Not IsNothing(My.Application.Globix.DTEXCLUDE_FILES) Then diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index 16880422..3a51fc62 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -275,7 +275,6 @@ True MyDataset.xsd - frmGlobixBasicConfig.vb