From 77597f0ef286b19e5407d01177e116d5a5fbfb21 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 18 Feb 2022 15:02:51 +0100 Subject: [PATCH] ZooFlow: Clean up, faster search --- GUIs.ClipboardWatcher/ClipboardWatcher.vbproj | 4 + GUIs.ClipboardWatcher/ProfileFilter.vb | 145 +++++----- GUIs.ClipboardWatcher/ProfileSearches.vb | 67 +++-- GUIs.ClipboardWatcher/frmMatch.vb | 27 +- .../frmMatchLoading.Designer.vb | 1 - GUIs.ClipboardWatcher/frmMatchLoading.resx | 13 +- GUIs.ClipboardWatcher/frmTreeView.fr-FR.resx | 142 ++++----- GUIs.ClipboardWatcher/frmTreeView.resx | 37 ++- GUIs.ZooFlow/ClassConstants.vb | 3 + GUIs.ZooFlow/ClassEnvironment.vb | 15 - GUIs.ZooFlow/ClassStrings.vb | 4 - .../ClipboardWatcher/ClassProfileLoader.vb | 0 .../{ => Modules}/ClipboardWatcher/State.vb | 0 .../{ => Modules}/ClipboardWatcher/Watcher.vb | 0 .../{ => Modules}/Globix/ClassExclusions.vb | 0 .../{ => Modules}/Globix/ClassFilehandle.vb | 0 .../Globix/ClassFolderwatcher.vb | 0 .../{ => Modules}/Globix/ClassUserFiles.vb | 0 .../{ => Modules}/Globix/ClassValidator.vb | 2 +- .../Globix/GlobixDataset.Designer.vb | 0 .../{ => Modules}/Globix/GlobixDataset.xsc | 0 .../{ => Modules}/Globix/GlobixDataset.xsd | 0 .../{ => Modules}/Globix/GlobixDataset.xss | 0 .../Globix/Models/DocumentType.vb | 0 .../Globix/Models/ManualIndex.vb | 0 .../{ => Modules}/Globix/Models/WorkFile.vb | 0 GUIs.ZooFlow/{ => Modules}/Globix/State.vb | 0 .../Globix/frmGlobixAdministration.resx | 0 .../Globix/frmGlobixBasicConfig.Designer.vb | 0 .../Globix/frmGlobixBasicConfig.resx | 0 .../Globix/frmGlobixBasicConfig.vb | 0 .../Globix/frmGlobixMissingInput.Designer.vb | 0 .../Globix/frmGlobixMissingInput.resx | 0 .../Globix/frmGlobixMissingInput.vb | 0 .../frmGlobixNameconvention.Designer.vb | 0 .../Globix/frmGlobixNameconvention.resx | 0 .../Globix/frmGlobixNameconvention.resx.bak | 0 .../Globix/frmGlobixNameconvention.vb | 0 .../Globix/frmGlobix_Index.Designer.vb | 0 .../{ => Modules}/Globix/frmGlobix_Index.resx | 0 .../Globix/frmGlobix_Index.resx.bak | 0 .../{ => Modules}/Globix/frmGlobix_Index.vb | 0 .../frmGlobix_IndexFileList.Designer.vb | 0 .../Globix/frmGlobix_IndexFileList.resx | 0 .../Globix/frmGlobix_IndexFileList.resx.bak | 0 .../Globix/frmGlobix_IndexFileList.vb | 0 GUIs.ZooFlow/ZooFlow.vbproj | 77 +++-- .../{ZOO_FLOW_ sysicon_48.ico => Zooflow.ico} | Bin GUIs.ZooFlow/frmConfigDatabase.Designer.vb | 272 ------------------ GUIs.ZooFlow/frmConfigDatabase.resx | 120 -------- GUIs.ZooFlow/frmConfigDatabase.vb | 118 -------- GUIs.ZooFlow/frmFlowForm.vb | 94 +++--- GUIs.ZooFlow/modCurrent.vb | 1 - 53 files changed, 325 insertions(+), 817 deletions(-) delete mode 100644 GUIs.ZooFlow/ClassEnvironment.vb delete mode 100644 GUIs.ZooFlow/ClassStrings.vb rename GUIs.ZooFlow/{ => Modules}/ClipboardWatcher/ClassProfileLoader.vb (100%) rename GUIs.ZooFlow/{ => Modules}/ClipboardWatcher/State.vb (100%) rename GUIs.ZooFlow/{ => Modules}/ClipboardWatcher/Watcher.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/ClassExclusions.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/ClassFilehandle.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/ClassFolderwatcher.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/ClassUserFiles.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/ClassValidator.vb (98%) rename GUIs.ZooFlow/{ => Modules}/Globix/GlobixDataset.Designer.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/GlobixDataset.xsc (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/GlobixDataset.xsd (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/GlobixDataset.xss (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/Models/DocumentType.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/Models/ManualIndex.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/Models/WorkFile.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/State.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixAdministration.resx (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixBasicConfig.Designer.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixBasicConfig.resx (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixBasicConfig.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixMissingInput.Designer.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixMissingInput.resx (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixMissingInput.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixNameconvention.Designer.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixNameconvention.resx (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixNameconvention.resx.bak (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobixNameconvention.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_Index.Designer.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_Index.resx (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_Index.resx.bak (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_Index.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_IndexFileList.Designer.vb (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_IndexFileList.resx (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_IndexFileList.resx.bak (100%) rename GUIs.ZooFlow/{ => Modules}/Globix/frmGlobix_IndexFileList.vb (100%) rename GUIs.ZooFlow/{ZOO_FLOW_ sysicon_48.ico => Zooflow.ico} (100%) delete mode 100644 GUIs.ZooFlow/frmConfigDatabase.Designer.vb delete mode 100644 GUIs.ZooFlow/frmConfigDatabase.resx delete mode 100644 GUIs.ZooFlow/frmConfigDatabase.vb diff --git a/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj b/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj index c61b3f2b..bf8f84b4 100644 --- a/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj +++ b/GUIs.ClipboardWatcher/ClipboardWatcher.vbproj @@ -181,6 +181,10 @@ {D20A6BF2-C7C6-4A7A-B34D-FA27D775A049} Common + + {6ea0c51f-c2b1-4462-8198-3de0b32b74f8} + Base + {EAF0EA75-5FA7-485D-89C7-B2D843B03A96} Database diff --git a/GUIs.ClipboardWatcher/ProfileFilter.vb b/GUIs.ClipboardWatcher/ProfileFilter.vb index bca7cc37..434412d9 100644 --- a/GUIs.ClipboardWatcher/ProfileFilter.vb +++ b/GUIs.ClipboardWatcher/ProfileFilter.vb @@ -7,17 +7,18 @@ Imports DigitalData.Modules.Windows Imports DigitalData.Modules.ZooFlow.Params Imports DigitalData.Modules.ZooFlow.State Imports DigitalData.Modules.Patterns +Imports DigitalData.Modules.Base Public Class ProfileFilter - Private _ProfileMatch As ProfileMatch - Private _ProfileTable As DataTable - Private _ProcessTable As DataTable - Private _WindowTable As DataTable - Private _ControlTable As DataTable - Private _Profiles As List(Of ProfileData) - Private _TreeView As TreeView - Private _LogConfig As LogConfig - Private _Logger As Logger + Inherits BaseClass + + Private ReadOnly _ProfileMatch As ProfileMatch + Private ReadOnly _ProfileTable As DataTable + Private ReadOnly _ProcessTable As DataTable + Private ReadOnly _WindowTable As DataTable + Private ReadOnly _ControlTable As DataTable + Private ReadOnly _Profiles As List(Of ProfileData) + Private ReadOnly _TreeView As TreeView Public Enum ImageIndex Root @@ -44,25 +45,27 @@ Public Class ProfileFilter End Property Public Sub New(LogConfig As LogConfig, ProfileDatatable As DataTable, ProcessTable As DataTable, WindowDatatable As DataTable, ControlDatatable As DataTable, TreeView As TreeView) + MyBase.New(LogConfig) + Try - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() + LogConfig = LogConfig + Logger = LogConfig.GetLogger() - _Logger.Debug("Initializing Profile Filter") - _Logger.Debug("Initializing Profile Data") + Logger.Debug("Initializing Profile Filter") + Logger.Debug("Initializing Profile Data") _ProfileTable = ProfileDatatable _ProcessTable = ProcessTable _WindowTable = WindowDatatable _ControlTable = ControlDatatable - _Logger.Debug("Initializing Profile Debugging") + Logger.Debug("Initializing Profile Debugging") _TreeView = TreeView _ProfileMatch = New ProfileMatch(LogConfig) - _Logger.Debug("Transforming Profiles") + Logger.Debug("Transforming Profiles") _Profiles = TransformProfiles() Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Throw ex End Try End Sub @@ -72,7 +75,7 @@ Public Class ProfileFilter End Function Public Function LogRemainingProfiles(Profiles As List(Of ProfileData), StepDescription As String) As List(Of ProfileData) - _Logger.Debug("Profiles remaining after Step {0}: {1}", StepDescription, Profiles.Count) + Logger.Debug("Profiles remaining after Step {0}: {1}", StepDescription, Profiles.Count) Return Profiles End Function @@ -88,7 +91,7 @@ Public Class ProfileFilter _TreeView.Nodes.Add(oRootNode) For Each oProfile In Profiles - _Logger.Debug("Current Profile: {0}", oProfile.Name) + Logger.Debug("Current Profile: {0}", oProfile.Name) Dim oNode = _ProfileMatch.NewProfileNode(oProfile) oRootNode.Nodes.Add(oNode) @@ -97,8 +100,8 @@ Public Class ProfileFilter Dim oRegex As New Regex(oProfile.Regex) Dim oMatch = oRegex.Match(ClipboardContents) If oMatch.Success Then - _Logger.Debug("FilterProfilesByClipboardRegex: Clipboard Regex Matched: {0}", ClipboardContents) - _Logger.Info("FilterProfilesByClipboardRegex: Profile {0} matched!", oProfile.Name) + Logger.Debug("FilterProfilesByClipboardRegex: Clipboard Regex Matched: {0}", ClipboardContents) + Logger.Info("FilterProfilesByClipboardRegex: Profile {0} matched!", oProfile.Name) oFilteredProfiles.Add(oProfile) oProfile.IsMatched = True @@ -106,8 +109,8 @@ Public Class ProfileFilter oNode.Nodes.Add(oSubnode) End If Catch ex As Exception - _Logger.Warn("Regex '{0}' could not be processed for input '{1}'", oProfile.Regex, ClipboardContents) - _Logger.Error(ex) + Logger.Warn("Regex '{0}' could not be processed for input '{1}'", oProfile.Regex, ClipboardContents) + Logger.Error(ex) End Try Next @@ -140,12 +143,12 @@ Public Class ProfileFilter oParent.Nodes.Add(oNode) End If - _Logger.Debug($"FilterProfilesByProcess: Checking Profile: {oProfile.Name}") + Logger.Debug($"FilterProfilesByProcess: Checking Profile: {oProfile.Name}") If oIsMatch Then - _Logger.Debug($"Processname Matched: {oProcess.ProcessName}") + Logger.Debug($"Processname Matched: {oProcess.ProcessName}") oFilteredProfiles.Add(oProfile) - _Logger.Info("FilterProfilesByProcess: Profile {0} matched!", oProfile.Name) + Logger.Info("FilterProfilesByProcess: Profile {0} matched!", oProfile.Name) ' Set Process matched oProcess.IsMatched = True @@ -168,8 +171,8 @@ Public Class ProfileFilter Return oFilteredProfiles Catch ex As Exception - _Logger.Warn("Unexpected error in FilterProfilesByProcess...") - _Logger.Error(ex) + Logger.Warn("Unexpected error in FilterProfilesByProcess...") + Logger.Error(ex) Return Profiles End Try End Function @@ -177,7 +180,7 @@ Public Class ProfileFilter Dim oProfiles As New List(Of ProfileData) For Each oProfile As ProfileData In Profiles - _Logger.Debug("Checking WindowDefinition for profile: {0}...", oProfile.Name) + Logger.Debug("Checking WindowDefinition for profile: {0}...", oProfile.Name) Dim oFilteredWindows As New List(Of WindowData) @@ -190,7 +193,7 @@ Public Class ProfileFilter ' If Profile has no windows at all, it automatically matches If oFilteredWindows.Count = 0 Then - _Logger.Debug("Profile has no Windows assigned, automatic MATCH") + Logger.Debug("Profile has no Windows assigned, automatic MATCH") oProfile.IsMatched = True oProfiles.Add(oProfile) @@ -214,12 +217,12 @@ Public Class ProfileFilter Dim oMatch = oRegex.Match(WindowTitle) If oMatch.Success Then - _Logger.Debug("MATCH on WindowTitle: {0}", WindowTitle) + Logger.Debug("MATCH on WindowTitle: {0}", WindowTitle) oProfile.MatchedWindowID = oWindowDef.Guid oWindowDef.IsMatched = True oWindows.Add(oWindowDef) Else - _Logger.Debug("NO MATCH on WindowTitle: {0} - REGEX: {2}", WindowTitle, oWindowDef.Regex) + Logger.Debug("NO MATCH on WindowTitle: {0} - REGEX: {2}", WindowTitle, oWindowDef.Regex) End If Dim oParent = _ProfileMatch.FindNodeByTag(_TreeView.Nodes, oWindowDef.WindowProcessID & "-PROCESS") @@ -229,8 +232,8 @@ Public Class ProfileFilter End If Catch ex As Exception - _Logger.Warn("Regex '{0}' could not be processed for input '{1}'", oWindowDef.Regex, WindowTitle) - _Logger.Error(ex) + Logger.Warn("Regex '{0}' could not be processed for input '{1}'", oWindowDef.Regex, WindowTitle) + Logger.Error(ex) End Try Next @@ -240,14 +243,14 @@ Public Class ProfileFilter oProfile.IsMatched = True oProfiles.Add(oProfile) - _Logger.Info("FilterWindowsByWindowTitleRegex: Profile {0} matched!", oProfile.Name) + Logger.Info("FilterWindowsByWindowTitleRegex: Profile {0} matched!", oProfile.Name) End If If oProfile.IsCatchAll Then oProfile.IsMatched = True oProfiles.Add(oProfile) - _Logger.Info("FilterWindowsByWindowTitleRegex: Profile {0} is marked catchall!", oProfile.Name) + Logger.Info("FilterWindowsByWindowTitleRegex: Profile {0} is marked catchall!", oProfile.Name) End If Next @@ -259,7 +262,7 @@ Public Class ProfileFilter Public Function FilterProfilesByFocusedControl(Profiles As List(Of ProfileData), ClipboardContents As String, WindowHandle As IntPtr) As List(Of ProfileData) Dim oProfiles As New List(Of ProfileData) - Dim oWindow As New Window(_LogConfig) + Dim oWindow As New Window(LogConfig) Dim oFocusedWindow As Window.WindowInfo Try @@ -268,7 +271,7 @@ Public Class ProfileFilter Throw New ApplicationException("Window Information is Empty") End If Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Return Profiles End Try @@ -284,7 +287,7 @@ Public Class ProfileFilter ' If Profile has no controls at all, it automatically matches If oFilteredControls.Count = 0 Then - _Logger.Debug("Profile has no Controls assigned, automatic MATCH") + Logger.Debug("Profile has no Controls assigned, automatic MATCH") oProfiles.Add(oProfile) Continue For End If @@ -322,8 +325,8 @@ Public Class ProfileFilter End Select Next Catch ex As Exception - _Logger.Warn("Error while getting focused control location") - _Logger.Error(ex) + Logger.Warn("Error while getting focused control location") + Logger.Error(ex) End Try Else Dim oControlName As String = oControl.ControlName @@ -335,13 +338,13 @@ Public Class ProfileFilter oFound = True End If Catch ex As Exception - _Logger.Warn("Error while getting focused control name") - _Logger.Error(ex) + Logger.Warn("Error while getting focused control name") + Logger.Error(ex) End Try End If If oFound Then - _Logger.Debug("Control {0} has MATCH", oControl.ControlName) + Logger.Debug("Control {0} has MATCH", oControl.ControlName) oMatchingControls.Add(oControl) End If @@ -354,11 +357,11 @@ Public Class ProfileFilter ' If Profile has controls that matched, the profile matches If oMatchingControls.Count > 0 Then - _Logger.Debug("Profile has {0} MATCHING Controls", oMatchingControls.Count) + Logger.Debug("Profile has {0} MATCHING Controls", oMatchingControls.Count) oProfile.Controls = oMatchingControls oProfiles.Add(oProfile) - _Logger.Info("FilterProfilesByFocusedControl: Profile {0} matched!", oProfile.Name) + Logger.Info("FilterProfilesByFocusedControl: Profile {0} matched!", oProfile.Name) End If Next @@ -372,11 +375,11 @@ Public Class ProfileFilter Dim oProfiles As New List(Of ProfileData) For Each oProfile In Profiles - _Logger.Debug($"Checking SearchResults on ProfileID: {oProfile.Guid}") + Logger.Debug($"Checking SearchResults on ProfileID: {oProfile.Guid}") Dim oResultDocs As Integer = 0 Dim oResultData As Integer = 0 - Dim oPatterns As New ClassPatterns(_LogConfig) + Dim oPatterns As New ClassPatterns(LogConfig) Dim oDTDataSearches As DataTable Dim oDTDocSearches As DataTable @@ -385,7 +388,7 @@ Public Class ProfileFilter oDTDataSearches = Database.GetDatatable($"SELECT COUNT_COMMAND, CONN_ID FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID = {oProfile.Guid}") Catch ex As Exception oProfile.ErrorMessage = ERROR_LOADING_COUNT_SQL_FOR_DATA_SEARCH - _Logger.Error(ex) + Logger.Error(ex) Continue For End Try @@ -393,7 +396,7 @@ Public Class ProfileFilter oDTDocSearches = Database.GetDatatable($"SELECT COUNT_COMMAND, CONN_ID FROM TBCW_PROF_DOC_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID = {oProfile.Guid}") Catch ex As Exception oProfile.ErrorMessage = ERROR_LOADING_COUNT_SQL_FOR_DOC_SEARCH - _Logger.Error(ex) + Logger.Error(ex) Continue For End Try @@ -406,25 +409,25 @@ Public Class ProfileFilter oCountConnectionId = NotNull(oRow.Item("CONN_ID"), 0) If oCountCommand = String.Empty Then - _Logger.Debug("Data SQL Query is empty. Skipping.") + Logger.Debug("Data SQL Query is empty. Skipping.") Continue For End If - _Logger.Debug("Count-Command DATA BEFORE Replace: [{0}]", oCountCommand) + Logger.Debug("Count-Command DATA BEFORE Replace: [{0}]", oCountCommand) oCountCommand = oPatterns.ReplaceInternalValues(oCountCommand) oCountCommand = oPatterns.ReplaceUserValues(oCountCommand, User) oCountCommand = oPatterns.ReplaceClipboardContents(oCountCommand, ClipboardContents) - _Logger.Debug("Count-Command DATA before execute: [{0}]", oCountCommand) + Logger.Debug("Count-Command DATA before execute: [{0}]", oCountCommand) Dim oConnectionString = ProfileUtils.GetConnectionString(Database, oCountConnectionId) oResultData += NotNull(Of Integer)(Database.GetScalarValueWithConnection(oCountCommand, oConnectionString), 0) - _Logger.Debug("Datarows returned from search: [{0}]", oResultData) + Logger.Debug("Datarows returned from search: [{0}]", oResultData) Catch ex As Exception oProfile.ErrorMessage = ERROR_EXECUTING_COUNT_SQL_FOR_DATA_SEARCH - _Logger.Error(ex) - _Logger.Warn("Invalid SQL Query for Counting Data in Profile [{0}]: [{1}]", oProfile.Guid, oCountCommand) + Logger.Error(ex) + Logger.Warn("Invalid SQL Query for Counting Data in Profile [{0}]: [{1}]", oProfile.Guid, oCountCommand) End Try Next @@ -437,25 +440,25 @@ Public Class ProfileFilter oCountConnectionId = NotNull(oRow.Item("CONN_ID"), 0) If oCountCommand = String.Empty Then - _Logger.Debug("Document SQL Query is empty. Skipping.") + Logger.Debug("Document SQL Query is empty. Skipping.") Continue For End If - _Logger.Debug("Count-Command for Documents BEFORE Replace: [{0}]", oCountCommand) + Logger.Debug("Count-Command for Documents BEFORE Replace: [{0}]", oCountCommand) oCountCommand = oPatterns.ReplaceInternalValues(oCountCommand) oCountCommand = oPatterns.ReplaceUserValues(oCountCommand, User) oCountCommand = oPatterns.ReplaceClipboardContents(oCountCommand, ClipboardContents) - _Logger.Debug("Count-Command for Documents BEFORE execute: [{0}]", oCountCommand) + Logger.Debug("Count-Command for Documents BEFORE execute: [{0}]", oCountCommand) Dim oConnectionString = ProfileUtils.GetConnectionString(Database, oCountConnectionId) oResultDocs += NotNull(Of Integer)(Database.GetScalarValueWithConnection(oCountCommand, oConnectionString), 0) - _Logger.Debug("Documents returned from search: [{0}]", oResultDocs) + Logger.Debug("Documents returned from search: [{0}]", oResultDocs) Catch ex As Exception oProfile.ErrorMessage = ERROR_EXECUTING_COUNT_SQL_FOR_DOC_SEARCH - _Logger.Error(ex) - _Logger.Warn("Invalid SQL Query for Counting Data in Profile [{0}]: [{1}]", oProfile.Guid, oCountCommand) + Logger.Error(ex) + Logger.Warn("Invalid SQL Query for Counting Data in Profile [{0}]: [{1}]", oProfile.Guid, oCountCommand) End Try Next @@ -473,7 +476,7 @@ Public Class ProfileFilter If oProfile.CountData > 0 Or oProfile.CountDocs > 0 Then oProfiles.Add(oProfile) - _Logger.Info("Profile [{0}] matched in FilterProfilesBySearchResults!", oProfile.Name) + Logger.Info("Profile [{0}] matched in FilterProfilesBySearchResults!", oProfile.Name) End If Next @@ -484,7 +487,7 @@ Public Class ProfileFilter Dim oProfiles As New List(Of ProfileData) For Each oProfile As ProfileData In Profiles - _Logger.Debug("Current Profile: {0}", oProfile.Name) + Logger.Debug("Current Profile: {0}", oProfile.Name) Dim oWindows As New List(Of WindowData) @@ -498,7 +501,7 @@ Public Class ProfileFilter Dim oMatch = oRegex.Match(ClipboardContents) If oMatch.Success Then - _Logger.Debug("Window Clipboard Regex Matched: {0}", ClipboardContents) + Logger.Debug("Window Clipboard Regex Matched: {0}", ClipboardContents) oWindows.Add(w) End If @@ -510,8 +513,8 @@ Public Class ProfileFilter oResult.Nodes.Add(oNode) End If Catch ex As Exception - _Logger.Warn("Regex '{0}' could not be processed for input '{1}'", w.Regex, ClipboardContents) - _Logger.Error(ex) + Logger.Warn("Regex '{0}' could not be processed for input '{1}'", w.Regex, ClipboardContents) + Logger.Error(ex) End Try Next @@ -519,7 +522,7 @@ Public Class ProfileFilter oProfile.Windows = oWindows oProfiles.Add(oProfile) - _Logger.Info("FilterWindowsByWindowClipboardRegex: Profile {0} matched!", oProfile.Name) + Logger.Info("FilterWindowsByWindowClipboardRegex: Profile {0} matched!", oProfile.Name) End If Next @@ -589,7 +592,7 @@ Public Class ProfileFilter Return oList Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Throw ex End Try End Function @@ -636,7 +639,7 @@ Public Class ProfileFilter Return oControlList Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Throw ex End Try End Function @@ -660,7 +663,7 @@ Public Class ProfileFilter Return oProcessList Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Throw ex End Try End Function @@ -682,7 +685,7 @@ Public Class ProfileFilter Return oWindowList Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Throw ex End Try End Function diff --git a/GUIs.ClipboardWatcher/ProfileSearches.vb b/GUIs.ClipboardWatcher/ProfileSearches.vb index 3fc900c8..6cae5c8e 100644 --- a/GUIs.ClipboardWatcher/ProfileSearches.vb +++ b/GUIs.ClipboardWatcher/ProfileSearches.vb @@ -1,13 +1,17 @@ Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging Imports DigitalData.Modules.ZooFlow +Imports DigitalData.Modules.Language.Utils Imports DigitalData.Modules.Patterns Imports DigitalData.Modules.EDMI.API Imports DigitalData.Modules.EDMI.API.EDMIServiceReference +Imports DigitalData.Modules.Base +Imports DigitalData.GUIs.Common +Imports DigitalData.Modules.ZooFlow.Params Public Class ProfileSearches - Private _LogConfig As LogConfig - Private _Logger As Logger + Inherits BaseClass + Private _Environment As Environment Private _Client As Client @@ -22,10 +26,10 @@ Public Class ProfileSearches Public SQLCommand As String End Class - Public Sub New(LogConfig As LogConfig, Environment As Environment, pClipboardContents As String) - _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() - _Environment = Environment + Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment, pClipboardContents As String) + MyBase.New(pLogConfig) + + _Environment = pEnvironment _ClipboardContents = pClipboardContents Try If _Environment.Service.IsActive = True Then @@ -36,22 +40,47 @@ Public Class ProfileSearches If oSplit.Length = 2 Then oAppServerPort = oSplit(1) End If - _Client = New Client(LogConfig, oAppServerAddress, oAppServerPort) + _Client = New Client(pLogConfig, oAppServerAddress, oAppServerPort) If Not IsNothing(_Client) Then If _Client.Connect() Then - _Logger.Debug("ProfileSearches: Appserver connected successfully!") + Logger.Debug("ProfileSearches: Appserver connected successfully!") End If End If Catch ex As Exception - _Logger.Warn($"Could not initialize the AppServer: {ex.Message}") - _Logger.Error(ex) + Logger.Warn($"Could not initialize the AppServer: {ex.Message}") + Logger.Error(ex) End Try End If Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) End Try End Sub + Public Async Function GetDocResultForm(pProfile As ProfileData, pFormTitle As String, pOperationMode As Modules.ZooFlow.Constants.OperationMode) As Task(Of frmDocumentResultList) + ' For now we assume these are document results instead of data results + Dim oSearches = Await LoadDocumentSearchesAsync(pProfile.Guid) + + Dim oNameSlug = ConvertTextToSlug(pProfile.Name) + Dim oSearchGuids = oSearches.Select(Function(s) s.Guid).ToArray + Dim oWindowGuid = $"{pProfile.Guid}-{oNameSlug}-{String.Join("-", oSearchGuids)}" + Dim oParams = New DocumentResultList.Params() With { + .WindowGuid = oWindowGuid, + .WindowTitle = pFormTitle, + .OperationModeOverride = pOperationMode, + .ProfileGuid = pProfile.Guid + } + + For Each oSearch In oSearches + oParams.Results.Add(New DocumentResultList.DocumentResult() With { + .Title = oSearch.TabCaption, + .Datatable = oSearch.DataTable + }) + Next + + Dim oForm As New frmDocumentResultList(LogConfig, _Environment, oParams) + Return oForm + End Function + Public Async Function LoadDocumentSearchesAsync(ProfileId As Integer) As Task(Of List(Of Search)) Return Await Task.Run(Function() Return DoLoadDocumentSearches(ProfileId) @@ -65,7 +94,7 @@ Public Class ProfileSearches Dim oTableResult As TableResult = _Client.GetDatatableByName("TBCW_PROF_DOC_SEARCH", $"PROFILE_ID = {ProfileId} AND ACTIVE = 1", "TAB_INDEX") oSearchesDataTable = oTableResult.Table If oSearchesDataTable Is Nothing Then - _Logger.Warn("TBCW_PROF_DOC_SEARCH from AppServer is nothing: Failover started...") + Logger.Warn("TBCW_PROF_DOC_SEARCH from AppServer is nothing: Failover started...") oSearchesDataTable = _Environment.Database.GetDatatable(oSQL) End If Else @@ -74,7 +103,7 @@ Public Class ProfileSearches Dim oDocSearches As New List(Of Search) If Not IsNothing(oSearchesDataTable) Then Dim oCounter As Integer = 0 - Dim oPatterns As New ClassPatterns(_LogConfig) + Dim oPatterns As New ClassPatterns(LogConfig) For Each oRow As DataRow In oSearchesDataTable.Rows Dim oProfileId As Integer = oRow.Item("PROFILE_ID") @@ -92,7 +121,7 @@ Public Class ProfileSearches Dim oDatatable As DataTable = _Environment.Database.GetDatatableWithConnection(oSQL, oConnectionString) If oDatatable Is Nothing Then - _Logger.Warn("Error in SQL-Query '{0}'", oSQL) + Logger.Warn("Error in SQL-Query '{0}'", oSQL) Continue For End If @@ -132,7 +161,7 @@ Public Class ProfileSearches Dim oTableResult As TableResult = _Client.GetDatatableByName("TBCW_PROF_DATA_SEARCH", $"PROFILE_ID = {ProfileId} AND ACTIVE = 1", "TAB_INDEX") oSearchesDataTable = oTableResult.Table If oSearchesDataTable Is Nothing Then - _Logger.Warn("TBCW_PROF_DATA_SEARCH from AppServer is nothing: Failover started...") + Logger.Warn("TBCW_PROF_DATA_SEARCH from AppServer is nothing: Failover started...") oSearchesDataTable = _Environment.Database.GetDatatable(oSQL) End If Else @@ -140,7 +169,7 @@ Public Class ProfileSearches End If Dim oCounter As Integer = 0 - Dim oPatterns As New ClassPatterns(_LogConfig) + Dim oPatterns As New ClassPatterns(LogConfig) For Each oRow As DataRow In oSearchesDataTable.Rows Try @@ -158,7 +187,7 @@ Public Class ProfileSearches Dim oDatatable As DataTable = _Environment.Database.GetDatatableWithConnection(oSQL, oConnectionString) If oDatatable Is Nothing Then - _Logger.Warn("Error in SQL-Query '{0}'", oSQL) + Logger.Warn("Error in SQL-Query '{0}'", oSQL) Continue For End If @@ -172,7 +201,7 @@ Public Class ProfileSearches oCounter += 1 Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) End Try Next @@ -180,7 +209,7 @@ Public Class ProfileSearches Where(Function(s) Not IsNothing(s.DataTable)). ToList() Catch ex As Exception - _Logger.Error(ex) + Logger.Error(ex) Return oDataSearches End Try End Function diff --git a/GUIs.ClipboardWatcher/frmMatch.vb b/GUIs.ClipboardWatcher/frmMatch.vb index 4ac1964d..8bd18203 100644 --- a/GUIs.ClipboardWatcher/frmMatch.vb +++ b/GUIs.ClipboardWatcher/frmMatch.vb @@ -31,6 +31,7 @@ Public Class frmMatch Private ReadOnly _Environment As Environment Private ReadOnly _Params As ClipboardWatcherParams Private ReadOnly _Language As String + Private ReadOnly _ProfileSearch As ProfileSearches Private ReadOnly PrimaryFont As New Font("Segoe UI", 12, FontStyle.Bold) Private ReadOnly SecondaryFont As New Font("Segoe UI", 10) @@ -61,6 +62,7 @@ Public Class frmMatch _Logger = LogConfig.GetLogger() _Environment = Environment _Params = Params + _ProfileSearch = New ProfileSearches(_LogConfig, _Environment, _Params.ClipboardContents) _Language = Utils.NotNull(_Environment.User.Language, State.UserState.LANG_EN_US) Thread.CurrentThread.CurrentUICulture = New CultureInfo(_Language) @@ -324,7 +326,7 @@ Public Class frmMatch Case TileGroupDocuments.Name Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync(oProfileId) - OpenDocumentResults(oProfile, oSearches) + Await OpenDocumentResults(oProfile, oSearches) Case Else ' TODO: Load combined results @@ -341,32 +343,17 @@ Public Class frmMatch End Try End Sub - Private Sub OpenDocumentResults(Profile As ProfileData, Searches As List(Of ProfileSearches.Search)) - Dim oNameSlug = Utils.ConvertTextToSlug(Profile.Name) - Dim oSearchGuids = Searches.Select(Function(s) s.Guid).ToArray - Dim oWindowGuid = $"{Profile.Guid}-{oNameSlug}-{String.Join("-", oSearchGuids)}" - Dim oParams = New DocumentResultList.Params() With { - .WindowGuid = oWindowGuid, - .WindowTitle = GetResultWindowString(_Params.ClipboardContents), - .OperationModeOverride = _Params.OperationModeOverride, - .ProfileGuid = Profile.Guid - } + Private Async Function OpenDocumentResults(Profile As ProfileData, Searches As List(Of ProfileSearches.Search)) As Task + Dim oFormTitle = GetResultWindowString(_Params.ClipboardContents) + Dim oForm As frmDocumentResultList = Await _ProfileSearch.GetDocResultForm(Profile, oFormTitle, _Params.OperationModeOverride) - For Each oSearch In Searches - oParams.Results.Add(New DocumentResultList.DocumentResult() With { - .Title = oSearch.TabCaption, - .Datatable = oSearch.DataTable - }) - Next - - Dim oForm As New frmDocumentResultList(_LogConfig, _Environment, oParams) AddHandler oForm.FormClosed, AddressOf ProfileResultForm_Closed AddHandler oForm.NeedsRefresh, AddressOf ProfileResultForm_NeedsRefresh OpenForms.Add(oForm) oForm.Show() - End Sub + End Function Private Sub OpenDataResults(Profile As ProfileData, Searches As List(Of ProfileSearches.Search)) Dim oNameSlug = Utils.ConvertTextToSlug(Profile.Name) diff --git a/GUIs.ClipboardWatcher/frmMatchLoading.Designer.vb b/GUIs.ClipboardWatcher/frmMatchLoading.Designer.vb index 670e901b..0b29820a 100644 --- a/GUIs.ClipboardWatcher/frmMatchLoading.Designer.vb +++ b/GUIs.ClipboardWatcher/frmMatchLoading.Designer.vb @@ -39,7 +39,6 @@ Partial Class frmMatchLoading Me.progressPanel1.AppearanceCaption.Options.UseFont = True Me.progressPanel1.AppearanceDescription.Font = CType(resources.GetObject("resource.Font1"), System.Drawing.Font) Me.progressPanel1.AppearanceDescription.Options.UseFont = True - Me.progressPanel1.BarAnimationElementThickness = 2 Me.progressPanel1.ImageHorzOffset = 20 Me.progressPanel1.Name = "progressPanel1" ' diff --git a/GUIs.ClipboardWatcher/frmMatchLoading.resx b/GUIs.ClipboardWatcher/frmMatchLoading.resx index 9066056f..4010560f 100644 --- a/GUIs.ClipboardWatcher/frmMatchLoading.resx +++ b/GUIs.ClipboardWatcher/frmMatchLoading.resx @@ -141,9 +141,6 @@ progressPanel1 - - Form1 - DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -210,14 +207,17 @@ DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + Fill + Microsoft Sans Serif, 8.25pt System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Fill + + Form1 1 @@ -231,7 +231,4 @@ True - - fr-FR - \ No newline at end of file diff --git a/GUIs.ClipboardWatcher/frmTreeView.fr-FR.resx b/GUIs.ClipboardWatcher/frmTreeView.fr-FR.resx index 1fbfdec4..2ac6b619 100644 --- a/GUIs.ClipboardWatcher/frmTreeView.fr-FR.resx +++ b/GUIs.ClipboardWatcher/frmTreeView.fr-FR.resx @@ -122,81 +122,81 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD8 - EgAAAk1TRnQBSQFMAgEBBgEAARgBAAEYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + EgAAAk1TRnQBSQFMAgEBBgEAASABAAEgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABIAMAAQEBAAEgBgABIDYABP8DmQH/A+oF/wPMAf8DwAH/xAADhgH/A4YB/wOGAf8DhgH/A4YB/wOG - Af8DhgH/A4YF/wPXAf8D+AH/AcwBmQEwAf8BzAGZATAB/wHMApkF/wOWAf8EAAOGAf8DhgH/A4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/hAADhgH/HAADhgX/AcwBmQFj - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwCf8QAAOGAf8YAAOGAf+QAAOGAf8cAAOyBf8B8AHKAaYB/wHM - AZkBMA3/A8wB/xAAA4YB/xgAA4YB/5AAA4YB/yAAA5YF/wHwAcoBpgn/A8AB/wPqAf8EAAOGAf8DhgH/ + Af8DhgH/A4YF/wPXAf8D+AH/AcwBmQEvAf8BzAGZAS8B/wHMApkF/wOWAf8EAAOGAf8DhgH/A4YB/wOG + Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/hAADhgH/HAADhgX/AcwBmQFi + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvCf8QAAOGAf8YAAOGAf+QAAOGAf8cAAOyBf8B8AHKAaYB/wHM + AZkBLw3/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/5AAAcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wQAA4YB/wQAA4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+EAAHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8EAAOGAf8EAAPXAf8D1wH/ - A9cB/wOGAf8D1wH/A9cB/wPXAf8D1wH/A9cB/wPXAf8DhgH/A9cB/wPXAf8D1wH/hAABzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/BAADhgH/BAAD1wH/A9cB/wPX - Af8DhgH/A9cB/wPXAf8D1wH/A9cB/wPXAf8D1wH/A4YB/wPXAf8D1wH/A9cB/4wAAcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wQAA4YB/wOGAf8DhgH/A4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+MAAHMAZkBMAH/AcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf/IAAHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf//AF0AA4Yh/xwAAcwBmQFjAf8BzAGZATAB/wPqAf8kAAOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/ZAADhiH/HAABzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf9MAAOGAf8QAAHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHM - AZkBMAH/EAABMAHMAv8BYwHMAv8BYwHMAv8BYwHMAv8DhiH/CAAE/wHMAZkBMAH/AcwBmQEwBf8D3QH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAX/AswBmQH/AcwBmQEwAf8CzAGZAf8gAAOGAf8DhgH/A4YB/wOG - Af8DhgH/CAADhgH/EAABzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/xAA - ATABzAL/AWMBzAL/AWMBzAL/AWMBzAL/A4Yh/wgAAcwBmQFjAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHM - AZkBMAH/IAABYwHMAv8BYwHMAv8BYwHMAv8BYwHMAv8DhgH/CAADhgH/EAABzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/xAAATABzAL/AWMBzAL/AWMBzAL/AWMBzAL/A4Yh/wgA - BP8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wLMAZkB/yAAAWMBzAL/AWMBzAL/AWMBzAL/AWMBzAL/A4YB/wgA - A4YB/xAAAcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8QAAEwAcwC/wFj - AcwC/wFjAcwC/wFjAcwC/wOGIf8MAAHMAZkBYwH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/A/EF/wLM - AZkB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAF/yAAAWMBzAL/AWMBzAL/AWMBzAL/AWMBzAL/A4YB/wgA - A4YB/xAAAcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8QAAEwAcwC/wFj - AcwC/wFjAcwC/wFjAcwC/wOGIf8EAAHMAZkBYwH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8QAALMAZkB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/A+oB/wQAA+MB/wOGBf8kAAOG - Af8DhgH/DAABzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/CAABzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8QAAEwAcwC/wFjAcwC/wFjAcwC/wFj - AcwC/wOGIf8EAAHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8QAAT/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wQABP8DhgH/A4YF/xwAA8AB/wOGAf8DzAH/ - DAABzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/CAABzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8QAAEwAcwC/wFjAcwC/wFjAcwC/wFjAcwC/wOG - If8EAAHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8QAAPxAf8BzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBYwH/CAAE/wOGAf8DhgX/FAADwAH/A4YB/wPMAf8QAAHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/EAABMAHMAv8BYwHMAv8BYwHM - Av8BYwHMAv8DhiH/DAABzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8D1wH/DAABzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8D3QH/FAAE/wOGAf8DhgX/DAADwAH/A4YB/wPMAf8UAAHMAZkBMAH/AcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/EAABMAHMAv8BYwHMAv8BYwHMAv8BYwHMAv8DhgH/A4YB/wOG - Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8MAAHMApkB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHM - AZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAF/xgABP8DhgH/A4YF/wQA - A8AB/wOGAf8DzAH/AcwBmQFjAf8UAAHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEw - Af8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wPq - Af8QAAEwAcwC/yAAAWMBzAL/FAAB8AHKAaYB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/ - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8cAAT/ - A4YB/wOGAf8DwAH/A4YB/wPMAf8BzAGZAWMB/wHMAZkBMAH/IAABzAGZATAB/xAAAcwBmQEwAf8gAAEw - AcwC/wQAA4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wFjAcwC/xQAA8wB/wHMAZkBMAH/AcwBmQEw - Af8BzAKZAf8BzAGZATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBYwH/AcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/IAAE/wOGAf8DhgH/A8wB/wQAAcwBmQEwAf8BzAGZATAB/yAAAcwBmQEwAf8BzAGZ - ATAB/wHMAZkBMAH/AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/MAADhgH/BAADhgH/JAADzAH/A8wB/wgA - AcwBmQEwAf8BzAGZATAB/wHMAZkBMAH/BAAE/wHMAZkBYwX/JAAE/wPMAf+4AAHMAZkBMAH/AcwBmQEw - Af8BzAGZAWMB//8AGQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAf8BgQL/ + A4YB/4QAA4YB/zgAA4YB/xAAA4YB/xgAA4YB/5AAA4YB/zgAA4YB/xAAA4YB/xgAA4YB/5AAAcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wQAA4YB/wQAA4YB/wOG + Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+EAAHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8EAAOGAf8EAAPXAf8D1wH/ + A9cB/wOGAf8D1wH/A9cB/wPXAf8D1wH/A9cB/wPXAf8DhgH/A9cB/wPXAf8D1wH/hAABzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/BAADhgH/BAAD1wH/A9cB/wPX + Af8DhgH/A9cB/wPXAf8D1wH/A9cB/wPXAf8D1wH/A4YB/wPXAf8D1wH/A9cB/4wAAcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wQAA4YB/wOGAf8DhgH/A4YB/wOG + Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf+MAAHMAZkBLwH/AcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf/IAAHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf//AF0AA4Yh/xwAAcwBmQFiAf8BzAGZAS8B/wPqAf8kAAOG + Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/ZAADhiH/HAABzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf9MAAOGAf8QAAHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHM + AZkBLwH/EAABLwHMAv8BYgHMAv8BYgHMAv8BYgHMAv8DhiH/CAAE/wHMAZkBLwH/AcwBmQEvBf8D3QH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwX/AswBmQH/AcwBmQEvAf8CzAGZAf8gAAOGAf8DhgH/A4YB/wOG + Af8DhgH/CAADhgH/EAABzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/xAA + AS8BzAL/AWIBzAL/AWIBzAL/AWIBzAL/A4Yh/wgAAcwBmQFiAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHM + AZkBLwH/IAABYgHMAv8BYgHMAv8BYgHMAv8BYgHMAv8DhgH/CAADhgH/EAABzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/xAAAS8BzAL/AWIBzAL/AWIBzAL/AWIBzAL/A4Yh/wgA + BP8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wLMAZkB/yAAAWIBzAL/AWIBzAL/AWIBzAL/AWIBzAL/A4YB/wgA + A4YB/xAAAcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8QAAEvAcwC/wFi + AcwC/wFiAcwC/wFiAcwC/wOGIf8MAAHMAZkBYgH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/A/EF/wLM + AZkB/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8F/yAAAWIBzAL/AWIBzAL/AWIBzAL/AWIBzAL/A4YB/wgA + A4YB/xAAAcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8QAAEvAcwC/wFi + AcwC/wFiAcwC/wFiAcwC/wOGIf8EAAHMAZkBYgH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8QAALMAZkB/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/A+oB/wQAA+MB/wOGBf8kAAOG + Af8DhgH/DAABzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/CAABzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8QAAEvAcwC/wFiAcwC/wFiAcwC/wFi + AcwC/wOGIf8EAAHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8QAAT/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wQABP8DhgH/A4YF/xwAA8AB/wOGAf8DzAH/ + DAABzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/CAABzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8QAAEvAcwC/wFiAcwC/wFiAcwC/wFiAcwC/wOG + If8EAAHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8QAAPxAf8BzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBYgH/CAAE/wOGAf8DhgX/FAADwAH/A4YB/wPMAf8QAAHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/EAABLwHMAv8BYgHMAv8BYgHM + Av8BYgHMAv8DhiH/DAABzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8D1wH/DAABzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8D3QH/FAAE/wOGAf8DhgX/DAADwAH/A4YB/wPMAf8UAAHMAZkBLwH/AcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/EAABLwHMAv8BYgHMAv8BYgHMAv8BYgHMAv8DhgH/A4YB/wOG + Af8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8MAAHMApkB/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHM + AZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8F/xgABP8DhgH/A4YF/wQA + A8AB/wOGAf8DzAH/AcwBmQFiAf8UAAHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEv + Af8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wPq + Af8QAAEvAcwC/yAAAWIBzAL/FAAB8AHKAaYB/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/ + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8cAAT/ + A4YB/wOGAf8DwAH/A4YB/wPMAf8BzAGZAWIB/wHMAZkBLwH/IAABzAGZAS8B/xAAAcwBmQEvAf8gAAEv + AcwC/wQAA4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wFiAcwC/xQAA8wB/wHMAZkBLwH/AcwBmQEv + Af8BzAKZAf8BzAGZAS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBYgH/AcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/IAAE/wOGAf8DhgH/A8wB/wQAAcwBmQEvAf8BzAGZAS8B/yAAAcwBmQEvAf8BzAGZ + AS8B/wHMAZkBLwH/AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/MAADhgH/BAADhgH/JAADzAH/A8wB/wgA + AcwBmQEvAf8BzAGZAS8B/wHMAZkBLwH/BAAE/wHMAZkBYgX/JAAE/wPMAf+4AAHMAZkBLwH/AcwBmQEv + Af8BzAGZAWIB//8AGQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAf8BgQL/ BgABgAEBBAABfwEAAfcB7wQAAX8BAAH3Ae8EAAF/AoABAQQAAX8BwgH3Ae8EAAF/Af4B9wHvBAABfwH+ AYABAQQAAX8B/gH3Ae8EAAF/Af4B9wHvBQABAgGAAQEFAAECAYABAQUAAQIBgAEBBAABwAEAAYABAQQA AcABAAL/BAABwAEAAv8EAAT/Af4BAAH+AT8B4AEDAv8B/gEAAf4BPwH/AfsBwAEBAeABAAHAAQMB/AEb diff --git a/GUIs.ClipboardWatcher/frmTreeView.resx b/GUIs.ClipboardWatcher/frmTreeView.resx index 2e15dcd0..f4977ea5 100644 --- a/GUIs.ClipboardWatcher/frmTreeView.resx +++ b/GUIs.ClipboardWatcher/frmTreeView.resx @@ -117,6 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + 800, 450 @@ -134,26 +138,17 @@ DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - 800, 450 - 0 - - 6, 13 - - - ImageList1 + + 800, 450 tvProfileMatch - - Profilsuchen Algorithmus - - - 0 + + ImageList1 0 @@ -161,6 +156,9 @@ 0, 0 + + 6, 13 + Segoe UI, 9.75pt @@ -169,7 +167,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+ - EgAAAk1TRnQBSQFMAgEBBgEAARABAAEUAQABEAEAARABAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAFA + EgAAAk1TRnQBSQFMAgEBBgEAARABAAEYAQABEAEAARABAAT/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 @@ -253,19 +251,18 @@ AT8I/xYACw== - - - Fill + + Profilsuchen Algorithmus System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 + frmTreeView - - fr-FR - True diff --git a/GUIs.ZooFlow/ClassConstants.vb b/GUIs.ZooFlow/ClassConstants.vb index 079d49c8..1f53d983 100644 --- a/GUIs.ZooFlow/ClassConstants.vb +++ b/GUIs.ZooFlow/ClassConstants.vb @@ -44,6 +44,9 @@ Public Const WM_WINDOWPOSCHANGING As Integer = &H46 + Public Const TEXT_MISSING_INPUT = "Bitte vervollständigen Sie die Eingaben!" + Public Const TITLE_MISSING_INPUT = "Fehlende Eingaben" + Class DropType Public Const DROP_TYPE_FILESYSTEM = "|DROPFROMFSYSTEM|" Public Const DROP_TYPE_MESSAGE = "|OUTLOOK_MESSAGE|" diff --git a/GUIs.ZooFlow/ClassEnvironment.vb b/GUIs.ZooFlow/ClassEnvironment.vb deleted file mode 100644 index f3df777f..00000000 --- a/GUIs.ZooFlow/ClassEnvironment.vb +++ /dev/null @@ -1,15 +0,0 @@ -Imports DigitalData.Modules.ZooFlow - -Public Class ClassEnvironment - Public Shared Function GetEnvironment() As Environment - Dim oEnvironment As New Environment() With { - .DatabaseIDB = My.DatabaseIDB, - .Database = My.DatabaseECM, - .Modules = My.Application.Modules, - .Service = My.Application.Service, - .Settings = My.Application.Settings, - .User = My.Application.User - } - Return oEnvironment - End Function -End Class diff --git a/GUIs.ZooFlow/ClassStrings.vb b/GUIs.ZooFlow/ClassStrings.vb deleted file mode 100644 index a64e92fc..00000000 --- a/GUIs.ZooFlow/ClassStrings.vb +++ /dev/null @@ -1,4 +0,0 @@ -Public Class ClassStrings - Public Const TEXT_MISSING_INPUT = "Bitte vervollständigen Sie die Eingaben!" - Public Const TITLE_MISSING_INPUT = "Fehlende Eingaben" -End Class diff --git a/GUIs.ZooFlow/ClipboardWatcher/ClassProfileLoader.vb b/GUIs.ZooFlow/Modules/ClipboardWatcher/ClassProfileLoader.vb similarity index 100% rename from GUIs.ZooFlow/ClipboardWatcher/ClassProfileLoader.vb rename to GUIs.ZooFlow/Modules/ClipboardWatcher/ClassProfileLoader.vb diff --git a/GUIs.ZooFlow/ClipboardWatcher/State.vb b/GUIs.ZooFlow/Modules/ClipboardWatcher/State.vb similarity index 100% rename from GUIs.ZooFlow/ClipboardWatcher/State.vb rename to GUIs.ZooFlow/Modules/ClipboardWatcher/State.vb diff --git a/GUIs.ZooFlow/ClipboardWatcher/Watcher.vb b/GUIs.ZooFlow/Modules/ClipboardWatcher/Watcher.vb similarity index 100% rename from GUIs.ZooFlow/ClipboardWatcher/Watcher.vb rename to GUIs.ZooFlow/Modules/ClipboardWatcher/Watcher.vb diff --git a/GUIs.ZooFlow/Globix/ClassExclusions.vb b/GUIs.ZooFlow/Modules/Globix/ClassExclusions.vb similarity index 100% rename from GUIs.ZooFlow/Globix/ClassExclusions.vb rename to GUIs.ZooFlow/Modules/Globix/ClassExclusions.vb diff --git a/GUIs.ZooFlow/Globix/ClassFilehandle.vb b/GUIs.ZooFlow/Modules/Globix/ClassFilehandle.vb similarity index 100% rename from GUIs.ZooFlow/Globix/ClassFilehandle.vb rename to GUIs.ZooFlow/Modules/Globix/ClassFilehandle.vb diff --git a/GUIs.ZooFlow/Globix/ClassFolderwatcher.vb b/GUIs.ZooFlow/Modules/Globix/ClassFolderwatcher.vb similarity index 100% rename from GUIs.ZooFlow/Globix/ClassFolderwatcher.vb rename to GUIs.ZooFlow/Modules/Globix/ClassFolderwatcher.vb diff --git a/GUIs.ZooFlow/Globix/ClassUserFiles.vb b/GUIs.ZooFlow/Modules/Globix/ClassUserFiles.vb similarity index 100% rename from GUIs.ZooFlow/Globix/ClassUserFiles.vb rename to GUIs.ZooFlow/Modules/Globix/ClassUserFiles.vb diff --git a/GUIs.ZooFlow/Globix/ClassValidator.vb b/GUIs.ZooFlow/Modules/Globix/ClassValidator.vb similarity index 98% rename from GUIs.ZooFlow/Globix/ClassValidator.vb rename to GUIs.ZooFlow/Modules/Globix/ClassValidator.vb index eee7d18d..2339c1b6 100644 --- a/GUIs.ZooFlow/Globix/ClassValidator.vb +++ b/GUIs.ZooFlow/Modules/Globix/ClassValidator.vb @@ -259,6 +259,6 @@ Public Class ClassValidator End Function Private Sub ShowValidationMessage() - MsgBox(ClassStrings.TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, ClassStrings.TITLE_MISSING_INPUT) + MsgBox(ClassConstants.TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, ClassConstants.TITLE_MISSING_INPUT) End Sub End Class diff --git a/GUIs.ZooFlow/Globix/GlobixDataset.Designer.vb b/GUIs.ZooFlow/Modules/Globix/GlobixDataset.Designer.vb similarity index 100% rename from GUIs.ZooFlow/Globix/GlobixDataset.Designer.vb rename to GUIs.ZooFlow/Modules/Globix/GlobixDataset.Designer.vb diff --git a/GUIs.ZooFlow/Globix/GlobixDataset.xsc b/GUIs.ZooFlow/Modules/Globix/GlobixDataset.xsc similarity index 100% rename from GUIs.ZooFlow/Globix/GlobixDataset.xsc rename to GUIs.ZooFlow/Modules/Globix/GlobixDataset.xsc diff --git a/GUIs.ZooFlow/Globix/GlobixDataset.xsd b/GUIs.ZooFlow/Modules/Globix/GlobixDataset.xsd similarity index 100% rename from GUIs.ZooFlow/Globix/GlobixDataset.xsd rename to GUIs.ZooFlow/Modules/Globix/GlobixDataset.xsd diff --git a/GUIs.ZooFlow/Globix/GlobixDataset.xss b/GUIs.ZooFlow/Modules/Globix/GlobixDataset.xss similarity index 100% rename from GUIs.ZooFlow/Globix/GlobixDataset.xss rename to GUIs.ZooFlow/Modules/Globix/GlobixDataset.xss diff --git a/GUIs.ZooFlow/Globix/Models/DocumentType.vb b/GUIs.ZooFlow/Modules/Globix/Models/DocumentType.vb similarity index 100% rename from GUIs.ZooFlow/Globix/Models/DocumentType.vb rename to GUIs.ZooFlow/Modules/Globix/Models/DocumentType.vb diff --git a/GUIs.ZooFlow/Globix/Models/ManualIndex.vb b/GUIs.ZooFlow/Modules/Globix/Models/ManualIndex.vb similarity index 100% rename from GUIs.ZooFlow/Globix/Models/ManualIndex.vb rename to GUIs.ZooFlow/Modules/Globix/Models/ManualIndex.vb diff --git a/GUIs.ZooFlow/Globix/Models/WorkFile.vb b/GUIs.ZooFlow/Modules/Globix/Models/WorkFile.vb similarity index 100% rename from GUIs.ZooFlow/Globix/Models/WorkFile.vb rename to GUIs.ZooFlow/Modules/Globix/Models/WorkFile.vb diff --git a/GUIs.ZooFlow/Globix/State.vb b/GUIs.ZooFlow/Modules/Globix/State.vb similarity index 100% rename from GUIs.ZooFlow/Globix/State.vb rename to GUIs.ZooFlow/Modules/Globix/State.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobixAdministration.resx b/GUIs.ZooFlow/Modules/Globix/frmGlobixAdministration.resx similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixAdministration.resx rename to GUIs.ZooFlow/Modules/Globix/frmGlobixAdministration.resx diff --git a/GUIs.ZooFlow/Globix/frmGlobixBasicConfig.Designer.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobixBasicConfig.Designer.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixBasicConfig.Designer.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobixBasicConfig.Designer.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobixBasicConfig.resx b/GUIs.ZooFlow/Modules/Globix/frmGlobixBasicConfig.resx similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixBasicConfig.resx rename to GUIs.ZooFlow/Modules/Globix/frmGlobixBasicConfig.resx diff --git a/GUIs.ZooFlow/Globix/frmGlobixBasicConfig.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobixBasicConfig.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixBasicConfig.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobixBasicConfig.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobixMissingInput.Designer.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobixMissingInput.Designer.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixMissingInput.Designer.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobixMissingInput.Designer.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobixMissingInput.resx b/GUIs.ZooFlow/Modules/Globix/frmGlobixMissingInput.resx similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixMissingInput.resx rename to GUIs.ZooFlow/Modules/Globix/frmGlobixMissingInput.resx diff --git a/GUIs.ZooFlow/Globix/frmGlobixMissingInput.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobixMissingInput.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixMissingInput.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobixMissingInput.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobixNameconvention.Designer.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.Designer.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixNameconvention.Designer.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.Designer.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobixNameconvention.resx b/GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.resx similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixNameconvention.resx rename to GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.resx diff --git a/GUIs.ZooFlow/Globix/frmGlobixNameconvention.resx.bak b/GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.resx.bak similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixNameconvention.resx.bak rename to GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.resx.bak diff --git a/GUIs.ZooFlow/Globix/frmGlobixNameconvention.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobixNameconvention.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobixNameconvention.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.Designer.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.Designer.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.resx b/GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.resx similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_Index.resx rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.resx diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.resx.bak b/GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.resx.bak similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_Index.resx.bak rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.resx.bak diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_Index.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_Index.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.Designer.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.Designer.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.Designer.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.Designer.vb diff --git a/GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.resx b/GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.resx similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.resx rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.resx diff --git a/GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.resx.bak b/GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.resx.bak similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.resx.bak rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.resx.bak diff --git a/GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.vb b/GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.vb similarity index 100% rename from GUIs.ZooFlow/Globix/frmGlobix_IndexFileList.vb rename to GUIs.ZooFlow/Modules/Globix/frmGlobix_IndexFileList.vb diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index f9204c1e..8f36aa58 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -64,7 +64,7 @@ DigitalData.GUIs.ZooFlow.My.MyApplication - ZOO_FLOW_ sysicon_48.ico + Zooflow.ico @@ -217,9 +217,8 @@ - - - + + @@ -256,44 +255,44 @@ Form - - - + + + frmGlobixNameconvention.vb - + Form - - - + + + frmWaitForm.vb Form - + True True MyDataset.xsd - - + + frmGlobixBasicConfig.vb - + Form - + frmGlobixMissingInput.vb - + Form - + True True GlobixDataset.xsd @@ -309,10 +308,10 @@ Form - + - + True True @@ -332,16 +331,16 @@ Form - + frmGlobix_IndexFileList.vb - + Form - + frmGlobix_Index.vb - + Form @@ -368,7 +367,7 @@ Form - + True True @@ -378,15 +377,8 @@ - - - frmConfigDatabase.vb - - - Form - frmSettings.vb @@ -451,13 +443,13 @@ frmTest.vb - + frmGlobixBasicConfig.vb - + frmGlobixMissingInput.vb - + frmGlobixNameconvention.vb @@ -469,16 +461,13 @@ frmAdmin_Start.vb - - frmConfigDatabase.vb - frmFlowForm.vb - + frmGlobix_IndexFileList.vb - + frmGlobix_Index.vb @@ -551,15 +540,15 @@ DSIDB_Stammdaten.xsd - + GlobixDataset.xsd - + Designer MSDataSetGenerator GlobixDataset.Designer.vb - + GlobixDataset.xsd @@ -999,7 +988,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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.ZooFlow/frmConfigDatabase.vb b/GUIs.ZooFlow/frmConfigDatabase.vb deleted file mode 100644 index be021c6b..00000000 --- a/GUIs.ZooFlow/frmConfigDatabase.vb +++ /dev/null @@ -1,118 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Encryption -Imports DigitalData.Modules.Filesystem -Imports DigitalData.Modules.Logging - -Public Class frmConfigDatabase - Private Const STRING_CONNECTION_SUCCESSFUL = "Die Verbindung wurde erfolgreich aufgebaut!" & vbNewLine & "Möchten Sie diese Verbindung nun in der Anwendung speichern?" - - Private Logger As Logger = My.LogConfig.GetLogger() - - Private Sub frmConfigDatabase_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Dim oConnectionString = My.SystemConfig.ConnectionString - - If Not oConnectionString = String.Empty Then - Dim oBuilder = My.SystemConfig.GetConnectionStringBuilder(oConnectionString) - - If oBuilder Is Nothing Then - MsgBox("Connection String ist ungültig!", MsgBoxStyle.Critical) - Exit Sub - End If - - If oConnectionString.Contains("Trusted") Then - chkWinAuth.Checked = True - txtConnectionString.Text = oConnectionString - Else - chkWinAuth.Checked = False - txtConnectionString.Text = oConnectionString.Replace(oBuilder.Password, "XXXXXX") - txtUserName.Text = oBuilder.UserID - End If - - txtServerName.Text = oBuilder.DataSource - cmbDatabase.Text = oBuilder.InitialCatalog - End If - End Sub - - Private Sub chkWinAuth_CheckedChanged(sender As Object, e As EventArgs) Handles chkWinAuth.CheckedChanged - txtPassword.Enabled = Not chkWinAuth.Checked - txtUserName.Enabled = Not chkWinAuth.Checked - End Sub - - Private Sub cmbDatabase_Click(sender As Object, e As EventArgs) Handles cmbDatabase.Click - Cursor = Cursors.WaitCursor - - Dim oConnectionString As String = GetConnectionString(False) - Dim oDatabase As New MSSQLServer(My.LogConfig, oConnectionString) - - If oDatabase.DBInitialized = False Then - MsgBox("Verbindung fehlgeschlagen!", MsgBoxStyle.Critical, Text) - Exit Sub - End If - - Try - Using oConnection = New SqlClient.SqlConnection(oConnectionString) - oConnection.Open() - Using oCommand As New SqlClient.SqlCommand("sp_databases", oConnection) - Using oReader As SqlClient.SqlDataReader = oCommand.ExecuteReader - If oReader.HasRows Then - cmbDatabase.Properties.Items.Clear() - - Do While oReader.Read - cmbDatabase.Properties.Items.Add(oReader("Database_Name")) - Loop - cmbDatabase.ShowPopup() - Else - MsgBox("The standard-databases could not be retrieved. The default database will be set!" & vbNewLine & "Check rights in sql-server for user: " & Me.txtUserName.Text, MsgBoxStyle.Exclamation) - End If - End Using - End Using - End Using - - Catch ex As Exception - Logger.Error(ex) - End Try - - Cursor = Cursors.Default - End Sub - - Private Function GetConnectionString(WithDatabase As Boolean) As String - Dim oConnectionString As String - - If chkWinAuth.Checked Then - oConnectionString = $"Data Source={txtServerName.Text};Trusted_Connection=True;" - Else - oConnectionString = $"Server={txtServerName.Text};User Id={txtUserName.Text};Password={txtPassword.Text};" - End If - - If WithDatabase Then - oConnectionString &= $"Database={cmbDatabase.Text};" - End If - - Return oConnectionString - End Function - - Private Sub btnTestConnection_Click(sender As Object, e As EventArgs) Handles btnTestConnection.Click - Try - Dim oConnectionString = GetConnectionString(True) - - Using oConnection As New SqlClient.SqlConnection(oConnectionString) - oConnection.Open() - oConnection.Close() - End Using - - Dim oResult = MessageBox.Show(STRING_CONNECTION_SUCCESSFUL, Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) - - If oResult = DialogResult.Yes Then - Dim oCrypt As New EncryptionLegacy() - Dim oEncryptedPassword = oCrypt.EncryptData(txtPassword.Text) - Dim oEncryptedConnectionString = $"Server={txtServerName.Text};Database={cmbDatabase.Text};User Id={txtUserName.Text};Password={oEncryptedPassword};" - - My.SystemConfig.ConnectionString = oEncryptedConnectionString - My.SystemConfigManager.Save() - End If - Catch ex As Exception - Logger.Error(ex) - MsgBox("Error while connecting to Database", MsgBoxStyle.Critical, Text) - End Try - End Sub -End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb index faf178fc..c4e2053f 100644 --- a/GUIs.ZooFlow/frmFlowForm.vb +++ b/GUIs.ZooFlow/frmFlowForm.vb @@ -163,7 +163,7 @@ Public Class frmFlowForm Private ClassWindow As Window Private ProfileFilter As ProfileFilter Private ProfileLoader As ClassProfileLoader - Private _Environment As Environment + Private Property _Environment As Environment ' Runtime Flags Private ApplicationLoading As Boolean = True @@ -187,7 +187,6 @@ Public Class frmFlowForm Init = New ClassInit(My.LogConfig, Me) AddHandler Init.Completed, AddressOf Init_Completed Init.InitializeApplication() - _Environment = My.Application.GetEnvironment ' === Register Sidebar === RegisterBar(ABEdge.ABE_RIGHT) @@ -204,6 +203,8 @@ Public Class frmFlowForm ApplicationLoading = False SplashScreenManager.CloseForm(False) + _Environment = My.Application.GetEnvironment() + ' === Initialize Error Handler === Logger = My.LogConfig.GetLogger() ErrorHandler = New BaseErrorHandler(My.LogConfig, Logger, Me) @@ -911,40 +912,40 @@ Public Class frmFlowForm oState.CurrentClipboardContents = ClipboardContents - If oState.MonitoringActive = False Then - Dim oMessage As String = "Clipboard Watcher is not active!" - Logger.Warn(oMessage) + 'If oState.MonitoringActive = False Then + ' Dim oMessage As String = "Clipboard Watcher is not active!" + ' Logger.Warn(oMessage) - Exit Sub - End If + ' Exit Sub + 'End If - If oState.UserProfiles Is Nothing Then - Dim oMessage As String = "User Profiles are empty!" - Logger.Warn(oMessage) + 'If oState.UserProfiles Is Nothing Then + ' Dim oMessage As String = "User Profiles are empty!" + ' Logger.Warn(oMessage) - Exit Sub - End If + ' Exit Sub + 'End If - If oState.ProfileProcesses Is Nothing OrElse oState.ProfileProcesses.Rows.Count = 0 Then - Dim oMessage As String = "Profile Processes are empty!" - Logger.Warn(oMessage) + 'If oState.ProfileProcesses Is Nothing OrElse oState.ProfileProcesses.Rows.Count = 0 Then + ' Dim oMessage As String = "Profile Processes are empty!" + ' Logger.Warn(oMessage) - Exit Sub - End If + ' Exit Sub + 'End If - If oState.ProfileWindows Is Nothing OrElse oState.ProfileWindows.Rows.Count = 0 Then - Dim oMessage As String = "Profile Windows are empty!" - Logger.Warn(oMessage) + 'If oState.ProfileWindows Is Nothing OrElse oState.ProfileWindows.Rows.Count = 0 Then + ' Dim oMessage As String = "Profile Windows are empty!" + ' Logger.Warn(oMessage) - Exit Sub - End If + ' Exit Sub + 'End If - If oState.ProfileControls Is Nothing OrElse oState.ProfileControls.Rows.Count = 0 Then - Dim oMessage As String = "Profile Processes are empty!" - Logger.Warn(oMessage) + 'If oState.ProfileControls Is Nothing OrElse oState.ProfileControls.Rows.Count = 0 Then + ' Dim oMessage As String = "Profile Processes are empty!" + ' Logger.Warn(oMessage) - Exit Sub - End If + ' Exit Sub + 'End If Dim oWindowInfo = ClassWindow.GetWindowInfo() @@ -961,7 +962,7 @@ Public Class frmFlowForm Try Dim oProfiles = ProfileFilter.Profiles - Dim oEnvironment = ClassEnvironment.GetEnvironment() + Dim oEnvironment = My.Application.GetEnvironment() ' Filter by Clipboard Contents oProfiles = ProfileFilter.FilterProfilesByClipboardRegex(oProfiles, ClipboardContents) @@ -995,13 +996,11 @@ Public Class frmFlowForm End Try End Sub - Private Sub HotkeyClass_HotKeyPressed(HotKeyID As String) + Private Async Sub HotkeyClass_HotKeyPressed(HotKeyID As String) Dim oState = My.Application.ClipboardWatcher Select Case HotKeyID Case HOTKEY_TRIGGER_WATCHER - 'Animator.Highlight(Cursor.Position) - If oState.CurrentClipboardContents = String.Empty Then Logger.Info("Current Clipboard Contents is empty. Exiting.") Exit Sub @@ -1021,10 +1020,21 @@ Public Class frmFlowForm ElseIf oState.CurrentProfilesWithResults.Count = 0 Then NotifyIcon.ShowBalloonTip(NOTIFICATION_DELAY, "ClipboardWatcher", "Es wurden weder Dokumente noch Daten gefunden!", ToolTipIcon.Warning) + ElseIf oState.CurrentProfilesWithResults.Count = 1 Then + Dim oProfile = oState.CurrentProfilesWithResults.First() + Dim oProfileSearches As New ProfileSearches(My.LogConfig, My.Application.GetEnvironment(), oState.CurrentClipboardContents) + Dim oFormTitle = GetResultWindowString(oState.CurrentClipboardContents) + + ' For now we assume these are document results instead of data results + Dim oForm = Await oProfileSearches.GetDocResultForm(oProfile, oFormTitle, Modules.ZooFlow.Constants.OperationMode.ZooFlow) + AddHandler oForm.NeedsRefresh, AddressOf ProfileResultForm_NeedsRefresh + oForm.Show() + Else + Dim oProfiles = oState.CurrentProfilesWithResults Dim oEnvironment = My.Application.GetEnvironment() - Dim oParams As New DigitalData.Modules.ZooFlow.ClipboardWatcherParams With { + Dim oParams As New ClipboardWatcherParams With { .ClipboardContents = oState.CurrentClipboardContents, .MatchingProfiles = oProfiles, .MatchTreeView = oState.MatchTreeView, @@ -1050,6 +1060,26 @@ Public Class frmFlowForm End Select End Sub + Private Async Sub ProfileResultForm_NeedsRefresh(sender As Object, e As Integer) + Dim oThisForm As IResultForm = sender + Dim oState = My.Application.ClipboardWatcher + Dim oProfileSearch As New ProfileSearches(My.LogConfig, _Environment, oState.CurrentClipboardContents) + + If TypeOf sender Is frmDocumentResultList Then + Dim oProfileId = e + Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync(oProfileId) + Dim oResults = oSearches.Select(Function(search) + Return New DocumentResultList.DocumentResult() With { + .Title = search.TabCaption, + .Datatable = search.DataTable + } + End Function).ToList() + + 'RaiseEvent ResultsRefreshed(Me, Nothing) + oThisForm.RefreshResults(oResults) + End If + End Sub + Private Sub PictureBoxPM1_Click(sender As Object, e As EventArgs) Handles PictureBoxPM1.Click ToastNotificationsManager1.ShowNotification(ToastNotificationsManager1.Notifications(1)) End Sub diff --git a/GUIs.ZooFlow/modCurrent.vb b/GUIs.ZooFlow/modCurrent.vb index 037d71ec..a2849bfd 100644 --- a/GUIs.ZooFlow/modCurrent.vb +++ b/GUIs.ZooFlow/modCurrent.vb @@ -3,7 +3,6 @@ Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Config Module modCurrent - Public Property LOGGER As Logger Public Property CURR_MISSING_PATTERN_NAME = "Email To" Public Property CURR_MISSING_SEARCH_STRING = String.Empty Public Property CURR_MISSING_MANUAL_VALUE = String.Empty