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)
- Try
- _LogConfig = LogConfig
- _Logger = LogConfig.GetLogger()
+ MyBase.New(LogConfig)
- _Logger.Debug("Initializing Profile Filter")
- _Logger.Debug("Initializing Profile Data")
+ Try
+ LogConfig = LogConfig
+ Logger = LogConfig.GetLogger()
+
+ 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