From 1d976b6ab35117388acfad64c419ef0fe6d95121 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Wed, 28 Oct 2020 15:47:20 +0100 Subject: [PATCH] improve init, clean up code --- GUIs.ZooFlow/ClassConstants.vb | 2 + GUIs.ZooFlow/ClassInit.vb | 59 +++++++++----- GUIs.ZooFlow/ClassInitLoader.vb | 8 +- GUIs.ZooFlow/frmFlowForm.Designer.vb | 12 +-- GUIs.ZooFlow/frmFlowForm.vb | 14 ++-- GUIs.ZooFlow/frmSearchStart.Designer.vb | 11 +-- GUIs.ZooFlow/frmSearchStart.resx | 102 ++++++++++-------------- GUIs.ZooFlow/frmSearchStart.vb | 36 +++++---- 8 files changed, 125 insertions(+), 119 deletions(-) diff --git a/GUIs.ZooFlow/ClassConstants.vb b/GUIs.ZooFlow/ClassConstants.vb index 881d7cbc..d1099ec7 100644 --- a/GUIs.ZooFlow/ClassConstants.vb +++ b/GUIs.ZooFlow/ClassConstants.vb @@ -1,4 +1,6 @@ Public Class ClassConstants + Public Const CRYPTO_LEGACY_ENCRYPTION_KEY = "!35452didalog=" + Public Const SERVICE_MAX_MESSAGE_SIZE = 2147483647 Public Const SERVICE_MAX_BUFFER_SIZE = 2147483647 Public Const SERVICE_MAX_ARRAY_LENGTH = 2147483647 diff --git a/GUIs.ZooFlow/ClassInit.vb b/GUIs.ZooFlow/ClassInit.vb index 3ea7f806..379ecc1c 100644 --- a/GUIs.ZooFlow/ClassInit.vb +++ b/GUIs.ZooFlow/ClassInit.vb @@ -23,6 +23,7 @@ Public Class ClassInit ' - Database / Service / Application Server ' (Init Licensing) ' Init User + ' Init IDB ' Zeile -> Objekt / NameValue List If Not SetupDatabase() Then @@ -34,7 +35,9 @@ Public Class ClassInit ' === Init Schritte definieren oInit.AddStep("Checking connectivity..", AddressOf CheckConnectivity, True) oInit.AddStep("Initializing User..", AddressOf InitializeUser, True) + oInit.AddStep("Initializing IDB..", AddressOf InitializeIDB, True) oInit.AddStep("Loading 3rd-party licenses", AddressOf Initialize3rdParty, False) + ' === Init Schritte definieren AddHandler oInit.ProgressChanged, AddressOf ProgressChanged @@ -44,8 +47,6 @@ Public Class ClassInit End If End Sub - - Private Function SetupDatabase() As Boolean If My.SystemConfig.ConnectionString = String.Empty Then Dim oResult = frmConfigDatabase.ShowDialog() @@ -76,29 +77,13 @@ Public Class ClassInit My.Application.User = oMyApplication.User My.Application.Modules = oMyApplication.Modules My.Application.ModulesActive = oMyApplication.ModulesActive - If My.Application.ModulesActive.Contains(ClassConstants.MODULE_ZOOFLOW) Then - If My.Database.DBInitialized Then - Dim oSQl = "SELECT * FROM TBDD_CONNECTION WHERE BEZEICHNUNG = 'IDB'" - Dim oDTCONN_IDB As DataTable = My.Database.GetDatatable(oSQl) - If oDTCONN_IDB.Rows.Count = 1 Then - Dim oConString = My.Database.GetConnectionString(oDTCONN_IDB.Rows(0).Item("SERVER"), oDTCONN_IDB.Rows(0).Item("DATENBANK"), oDTCONN_IDB.Rows(0).Item("USERNAME"), oDTCONN_IDB.Rows(0).Item("PASSWORD")) - My.Database_IDB = New MSSQLServer(My.LogConfig, oConString) - If My.Database.DBInitialized = False Then - _Logger.Warn("Could not initialize IDB-Database!") - Throw New InitException("Could not initialize IDB-Database!") - End If - End If - - End If - - End If RaiseEvent Completed(sender, Nothing) End If End Sub Private Sub CheckConnectivity(MyApplication As My.MyApplication) - Dim oCrypt As New EncryptionLegacy("!35452didalog=") + Dim oCrypt As New EncryptionLegacy(CRYPTO_LEGACY_ENCRYPTION_KEY) Dim oBuilder = My.SystemConfig.GetConnectionStringBuilder(My.SystemConfig.ConnectionString) oBuilder.Password = oCrypt.DecryptData(oBuilder.Password) Dim oDecryptedConnectionString = oBuilder.ToString @@ -129,11 +114,44 @@ Public Class ClassInit End Try End Sub + Private Sub InitializeIDB(MyApplication As My.MyApplication) + If MyApplication.ModulesActive.Contains(MODULE_ZOOFLOW) Then + If My.Database.DBInitialized Then + Dim oSQl = "SELECT * FROM TBDD_CONNECTION WHERE BEZEICHNUNG = 'IDB'" + Dim oDatatable As DataTable = My.Database.GetDatatable(oSQl) + + If IsNothing(oDatatable) OrElse oDatatable.Rows.Count = 0 Then + _Logger.Warn("No IDB connection entries in TBDD_CONNECTION found!") + Throw New InitException("Fehler beim Laden der IDB Verbindungsdaten!") + End If + + If oDatatable.Rows.Count > 1 Then + _Logger.Warn("Multiple IDB connection entries in TBDD_CONNECTION found!") + Throw New InitException("Fehler beim Laden der IDB Verbindungsdaten!") + End If + + Dim oConString = My.Database.GetConnectionString(oDatatable.Rows(0).Item("SERVER"), oDatatable.Rows(0).Item("DATENBANK"), oDatatable.Rows(0).Item("USERNAME"), oDatatable.Rows(0).Item("PASSWORD")) + My.Database_IDB = New MSSQLServer(My.LogConfig, oConString) + If My.Database_IDB.DBInitialized = False Then + _Logger.Warn("Could not initialize IDB-Database!") + Throw New InitException("Could not initialize IDB-Database!") + End If + End If + Else + _Logger.Warn("ZooFlow missing from Active Modules!") + Throw New InitException("ZooFlow Modult ist nicht aktiv oder nicht lizensiert!") + End If + End Sub + Private Sub InitializeUser(MyApplication As My.MyApplication) Try Dim oSql As String = My.Queries.Common.FNDD_MODULE_INIT(Environment.UserName) Dim oDatatable As DataTable = My.Database.GetDatatable(oSql) + If oDatatable Is Nothing Then + Throw New InitException("Benutzer konnte nicht geladen werden!") + End If + If oDatatable.Rows.Count <= 1 Then Throw New InitException("Benutzer konnte nicht gefunden werden!") End If @@ -147,7 +165,6 @@ Public Class ClassInit Case MODULE_CLIPBOARDWATCHER HandleModuleInfo(MyApplication, oType, oRow) - Case MODULE_GLOBAL_INDEXER HandleModuleInfo(MyApplication, oType, oRow) Case MODULE_ZOOFLOW @@ -157,7 +174,7 @@ Public Class ClassInit Catch ex As Exception _Logger.Error(ex) - Throw New InitException("Fehler beim Laden des Benutzers!") + Throw ex End Try End Sub diff --git a/GUIs.ZooFlow/ClassInitLoader.vb b/GUIs.ZooFlow/ClassInitLoader.vb index a765d941..b0c7cc73 100644 --- a/GUIs.ZooFlow/ClassInitLoader.vb +++ b/GUIs.ZooFlow/ClassInitLoader.vb @@ -96,8 +96,12 @@ Public Class ClassInitLoader Public Class InitException Inherits ApplicationException - Public Sub New(message As String) - MyBase.New(message) + Public Sub New(Message As String, InnerException As Exception) + MyBase.New(Message, InnerException) + End Sub + + Public Sub New(Message As String) + MyBase.New(Message) End Sub End Class End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/frmFlowForm.Designer.vb b/GUIs.ZooFlow/frmFlowForm.Designer.vb index e70fc3f8..728535b8 100644 --- a/GUIs.ZooFlow/frmFlowForm.Designer.vb +++ b/GUIs.ZooFlow/frmFlowForm.Designer.vb @@ -85,7 +85,7 @@ Partial Class frmFlowForm ' Me.PictureBoxConversation.BackColor = System.Drawing.Color.Transparent Me.PictureBoxConversation.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_Conversations - Me.PictureBoxConversation.Location = New System.Drawing.Point(100, 163) + Me.PictureBoxConversation.Location = New System.Drawing.Point(109, 161) Me.PictureBoxConversation.Name = "PictureBoxConversation" Me.PictureBoxConversation.Size = New System.Drawing.Size(20, 25) Me.PictureBoxConversation.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom @@ -96,7 +96,7 @@ Partial Class frmFlowForm ' Me.PictureBoxPMTask.BackColor = System.Drawing.Color.Transparent Me.PictureBoxPMTask.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_PM - Me.PictureBoxPMTask.Location = New System.Drawing.Point(100, 138) + Me.PictureBoxPMTask.Location = New System.Drawing.Point(109, 136) Me.PictureBoxPMTask.Name = "PictureBoxPMTask" Me.PictureBoxPMTask.Size = New System.Drawing.Size(20, 25) Me.PictureBoxPMTask.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom @@ -107,7 +107,7 @@ Partial Class frmFlowForm ' Me.PictureBoxSearchAbo.BackColor = System.Drawing.Color.Transparent Me.PictureBoxSearchAbo.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_Abo - Me.PictureBoxSearchAbo.Location = New System.Drawing.Point(100, 34) + Me.PictureBoxSearchAbo.Location = New System.Drawing.Point(109, 34) Me.PictureBoxSearchAbo.Name = "PictureBoxSearchAbo" Me.PictureBoxSearchAbo.Size = New System.Drawing.Size(20, 28) Me.PictureBoxSearchAbo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom @@ -118,7 +118,7 @@ Partial Class frmFlowForm ' Me.PictureBoxCWFound.BackColor = System.Drawing.Color.Transparent Me.PictureBoxCWFound.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_CW - Me.PictureBoxCWFound.Location = New System.Drawing.Point(100, 12) + Me.PictureBoxCWFound.Location = New System.Drawing.Point(109, 12) Me.PictureBoxCWFound.Name = "PictureBoxCWFound" Me.PictureBoxCWFound.Size = New System.Drawing.Size(20, 25) Me.PictureBoxCWFound.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom @@ -129,7 +129,7 @@ Partial Class frmFlowForm ' Me.PictureBoxPM.BackColor = System.Drawing.Color.Transparent Me.PictureBoxPM.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._1_ZOO_FLOW_User - Me.PictureBoxPM.Location = New System.Drawing.Point(126, 138) + Me.PictureBoxPM.Location = New System.Drawing.Point(135, 136) Me.PictureBoxPM.Name = "PictureBoxPM" Me.PictureBoxPM.Size = New System.Drawing.Size(50, 50) Me.PictureBoxPM.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom @@ -140,7 +140,7 @@ Partial Class frmFlowForm ' Me.PictureBoxSearch.BackColor = System.Drawing.Color.Transparent Me.PictureBoxSearch.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._1_ZOO_FLOW_Suche - Me.PictureBoxSearch.Location = New System.Drawing.Point(126, 12) + Me.PictureBoxSearch.Location = New System.Drawing.Point(135, 12) Me.PictureBoxSearch.Name = "PictureBoxSearch" Me.PictureBoxSearch.Size = New System.Drawing.Size(50, 50) Me.PictureBoxSearch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb index 69dd352c..1c2f049a 100644 --- a/GUIs.ZooFlow/frmFlowForm.vb +++ b/GUIs.ZooFlow/frmFlowForm.vb @@ -34,20 +34,16 @@ Public Class frmFlowForm Next Dim oSQL = $"SELECT * FROM [dbo].[FNIDB_GET_SEARCH_PROFILES] ({My.Application.User.UserId},'{My.Application.User.Language}')" - Dim oDT As DataTable = My.Database_IDB.GetDatatable(oSQL) + Dim oDatatable As DataTable = My.Database_IDB.GetDatatable(oSQL) PictureBoxSearch.Visible = False - If Not IsNothing(oDT) Then - If oDT.Rows.Count > 0 Then - IDBSearchActive = True - DTIDB_SEARCHES = oDT - PictureBoxSearch.Visible = True - End If + If Not IsNothing(oDatatable) OrElse oDatatable.Rows.Count > 0 Then + IDBSearchActive = True + DTIDB_SEARCHES = oDatatable + PictureBoxSearch.Visible = True End If My.DTAttributes = My.Database_IDB.GetDatatable("SELECT * FROM TBIDB_ATTRIBUTE") - - End Sub Public Sub SetFormLocation() diff --git a/GUIs.ZooFlow/frmSearchStart.Designer.vb b/GUIs.ZooFlow/frmSearchStart.Designer.vb index af85eb93..f1c2f04a 100644 --- a/GUIs.ZooFlow/frmSearchStart.Designer.vb +++ b/GUIs.ZooFlow/frmSearchStart.Designer.vb @@ -97,16 +97,14 @@ Partial Class frmSearchStart ' Me.BarButtonItemNewSearch.Caption = "Neue Suche" Me.BarButtonItemNewSearch.Id = 1 - Me.BarButtonItemNewSearch.ImageOptions.Image = CType(resources.GetObject("BarButtonItemNewSearch.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItemNewSearch.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItemNewSearch.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItemNewSearch.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItemNewSearch.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonItemNewSearch.Name = "BarButtonItemNewSearch" ' 'BarButtonItem2 ' Me.BarButtonItem2.Caption = "Suche speichern" Me.BarButtonItem2.Id = 2 - Me.BarButtonItem2.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonItem2.Name = "BarButtonItem2" ' 'BarHeaderItem1 @@ -130,8 +128,7 @@ Partial Class frmSearchStart ' Me.BarButtonItem1.Caption = "Suche leeren" Me.BarButtonItem1.Id = 5 - Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonItem1.Name = "BarButtonItem1" ' 'BarButtonItem3 @@ -171,7 +168,7 @@ Partial Class frmSearchStart Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemNewSearch) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "Such-Aktionen" ' 'RibbonPageGroup2 ' diff --git a/GUIs.ZooFlow/frmSearchStart.resx b/GUIs.ZooFlow/frmSearchStart.resx index b10081f9..9ecf8de5 100644 --- a/GUIs.ZooFlow/frmSearchStart.resx +++ b/GUIs.ZooFlow/frmSearchStart.resx @@ -117,73 +117,58 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u - O5UGMy8AAACYSURBVDhPpZPRDYAgDEQZxUH4ZjqZwmFYh8QBtI/YBEzBmH68RHvXwwKGGOObJGShCPWB - Z2pog79/2YRdOIVrAhoevEMAhUOwmizwthANINUyrqCnBTDX7LN1AUujJyGyOZYBVgGQEdlhS4SvgILI - MfVFbZrReysFd4B7BPcmuo8RXBcJ3FdZQ0idjQNoeFoz9AHKj985hhsZRV9cJDh5ygAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u - O5UGMy8AAAFASURBVFhHzZexEcIwDEWZgIpxUtDRMQMDMEi2oaVkCzo6Vkhr9DjsI+Gb2AEiinfnC9L3 - x5blZBFCcEU+nJM0aJpmjKWxNVrjaFyM7gFjnvEbMcQqjUSNgZWxN05GKIRYcshVmsUGNsbBUJOUQC4a - L9olBnbG2VDCNaCBVk9/zAAJV0MJTgGtnol3Bliyb/zzIWim7cgZoGhK93xtxDzGKmYI2vfCzBmgclWi - IuZEVIyCOaQBzm7NUZtqgDmWygANRCXkmGoAtsoAXUwF5/jEQKsM0EpVcI5PDByVAfq5Cn6u9lpyp+Oi - DHCpqOChaC1Ks/tLA+5b4F6E7sfQvRG5t2JwvYzA/ToG1xeSiOsrWYSEb6wEGr3JocQAsGSlNaEgNy37 - M6UGgKKhcmuOKLHk3AtOUWMg8ttPMy/kw/kIixsQHeuLUpLJLQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAFNhdmUgQXM7U2F2ZZVZ6PsAAAB0 - SURBVDhPzYxRDoAgDEO9ERfYvf3ibLgSqtsUxA8SSR5rm62biGSlAH3wVVtCnuGJOwiLp3/KydoCw3wB - UO1m0+8Fs6wpsCHQrBLzyHQB9wwJ+acCqxtpWBC8jksTZ3rEAoIM387FHlzmIUHmghH/KLgj5QBN+0Aj - rFmxMgAAAABJRU5ErkJggg== - - - + + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAFNhdmUgQXM7U2F2ZZVZ6PsAAAFN - SURBVFhHzZdBjsIwDEU5WCUkVpyq9+MeI3GMjB3lW78ZG4dmaFk8RbW/ny12XEopp+IWj8QtHsnmY1mW - q/AQCuB+y1gvw8mr+8q+Xv6kcIX7LbPpvyLIP9mXyrkfZRraA7UW5eFSUjn3o0wDyy0T5eFSUjn3o0wD - yy0T5eFSUjn3o0wDyy0T5eFSUjn3o0wDyy0T5eFSUjn3o0xElIdLSeXcjzIRUR4uJZVzfw+ZMw1/At55 - 2gHynnsAeHXAjXsjyEzETXjvAK5/ks3Hfx3AHoeVs+Eg10eROby80GMVarYXWIjro0BKnlojzC/UX6IX - WIDro8gcXniwGJi/sfYCa3J9FJnDCw8WA/ODXmANro8ic3jhwWKPLz9AuHNvBJnBCweWedRML8DgbmYP - +EFjL7MH3IU//w3eYeqAWVTc3nMOAJCP4Apm8Rb5LOUXGwfo+ilQ1NwAAAAASUVORK5CYII= + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0 + QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0 + LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N + Cjwvc3ZnPgs= - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENsZWFyO0VyYXNlO1JlbW92ZTtC - YXJzO1JpYmJvbjuHgINzAAAApUlEQVQ4T6XMwQ3CMAxA0c6EOGYADmzAHa5MgITEiQ0YgAlYg53MdxRX - iWNCgcOrWtffk4j8JRx6KaWtiv51A6/Et6I70nx4Lja7eqcJaixG8R2Ck+11oWJhFJt85NdYnbsDDFc4 - YlHcHGCo8b6wI8N4PsCwjs0VwzgfYBjFFzzxwNvYDqwRxUaPhLHKDxbsiI/VwUe1+YXFjQs/xiocfiMc - LifTC6uQRtbCdJzDAAAAAElFTkSuQmCC + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4BAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iU2F2ZSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg + MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cjwvc3R5 + bGU+DQogIDxwYXRoIGQ9Ik0yNyw0aC0zdjEwSDhWNEg1QzQuNCw0LDQsNC40LDQsNXYyMmMwLDAuNiww + LjQsMSwxLDFoMjJjMC42LDAsMS0wLjQsMS0xVjVDMjgsNC40LDI3LjYsNCwyNyw0eiBNMjQsMjRIOHYt + NiAgaDE2VjI0eiBNMTAsNHY4aDEwVjRIMTB6IE0xNCwxMGgtMlY2aDJWMTB6IiBjbGFzcz0iQmxhY2si + IC8+DQo8L3N2Zz4L - + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENsZWFyO0VyYXNlO1JlbW92ZTtC - YXJzO1JpYmJvbjuHgINzAAABP0lEQVRYR8WOwU0DMRREU0fKQLllDxRAHeFKBUhInOggBVABbaQnZwbt - j+zv8WJ7d83hReuJ/rw5hBD+FRmORIYjkeEapml6Ieo/hQx7meXXmaoRMuzByatHyLAVipw4ZnGEDFug - wAkVxREyrIXFTlTiG7yrjiyoBYUt8jCTjUgetaCoRy5HJMU1oGCN3Hi2vkywBA63kH/EnYlgCRxuLifJ - owQOz0DJPE1ykgUeHD6BC3gDSmo0y4kMDRya3CiN6JITGRIcenlpRLecyBCHJblhI1bJSRbg8C+58QWU - mFTJSfLAYa38E9zAD+iWk8cHDlvlRjyiSU5+f3B4BErm8fJ4RLOcPD5QcAJKapTk5DUubSF5oKg0Yhc5 - yQIU+hG7yYkMUWwjdpUTGRIIOEKJySZyIsORyHAkMhyJDMcRDndsJLA2GBzXxAAAAABJRU5ErkJggg== + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAEACAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iQ2xlYXIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMy + IDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5CbHVl + e2ZpbGw6IzExNzdENzt9Cjwvc3R5bGU+DQogIDxwYXRoIGQ9Ik0xNi4xLDIzLjFsLTQuNCw0LjRjLTAu + NywwLjctMS45LDAuNy0yLjYsMGwtNi42LTYuNmMtMC43LTAuNy0wLjctMS45LDAtMi42TDYuOSwxNEwx + Ni4xLDIzLjF6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPHBhdGggZD0iTTI3LjUsMTEuOGwtMTAsMTBsLTku + Mi05LjJsMTAtMTBjMC43LTAuNywxLjktMC43LDIuNiwwbDYuNiw2LjZDMjguMiw5LjksMjguMiwxMSwy + Ny41LDExLjh6IiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw== - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z @@ -233,6 +218,7 @@ 174 + AAABAAYAAAAAAAEAIABNFwAAZgAAAICAAAABACAAKAgBALMXAABAQAAAAQAgAChCAADbHwEAMDAAAAEA diff --git a/GUIs.ZooFlow/frmSearchStart.vb b/GUIs.ZooFlow/frmSearchStart.vb index 3cbc4af5..49d34c72 100644 --- a/GUIs.ZooFlow/frmSearchStart.vb +++ b/GUIs.ZooFlow/frmSearchStart.vb @@ -1,4 +1,6 @@ -Imports DigitalData.Modules.Logging +Option Explicit On + +Imports DigitalData.Modules.Logging Imports DevExpress.XtraTab Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Grid @@ -44,24 +46,24 @@ Public Class frmSearchStart End Sub - Public Sub AddSearchAttribute(pAttrID As String, pAttrTitle As String, pSearchTerm As String, Optional pCriteria As String = "=") + Public Sub AddSearchAttribute(pAttributeId As String, pAttributeTitle As String, pSearchTerm As String, Optional pCriteria As String = "=") GridControlSerchTerms.DataSource = Nothing Dim oMultiselect As Boolean = False - For Each oROW As DataRow In oDTAttributes.Rows - If oROW.Item("ATTRIBUTE_ID") = pAttrID Then - oMultiselect = CBool(oROW.Item("MULTISELECT")) + For Each oRow As DataRow In oDTAttributes.Rows + If oRow.Item("ATTRIBUTE_ID") = pAttributeId Then + oMultiselect = CBool(oRow.Item("MULTISELECT")) Exit For End If Next If oMultiselect = False Then For Each oSearchTerm As DataRow In DTSearchTerms.Rows - If oSearchTerm.Item("AttrID") = pAttrID Then 'And oSearchTerm.Item("Criteria") = pCriteria And oSearchTerm.Item("SearchTerm") = pSearchTerm + If oSearchTerm.Item("AttrID") = pAttributeId Then 'And oSearchTerm.Item("Criteria") = pCriteria And oSearchTerm.Item("SearchTerm") = pSearchTerm oSearchTerm.Delete() End If Next End If - DTSearchTerms.Rows.Add("", pAttrID, pAttrTitle, pCriteria, pSearchTerm, "", "and") + DTSearchTerms.Rows.Add("", pAttributeId, pAttributeTitle, pCriteria, pSearchTerm, "", "and") RenewBinding_DTSearchTerms() If SplitContainerControlSearch.Collapsed = True Then @@ -630,7 +632,7 @@ Public Class frmSearchStart End Sub Private Sub KlammerRechtsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KlammerRechtsToolStripMenuItem.Click - Dim rowView As DataRowView = GridViewSearchTerms.GetFocusedRow() + Dim rowView As DataRowView = CType(GridViewSearchTerms.GetFocusedRow(), DataRowView) If IsNothing(rowView) = False Then Dim oAttrID As String = rowView.Item("AttrID") Dim oSearchTerm As String = rowView.Item("SearchTerm") @@ -679,7 +681,7 @@ Public Class frmSearchStart '"BracketRight" '"Operator" oOperator = oRow.Item("Operator").ToString - Dim oSearchTerm = GetSearchTerm_for_Type(oRow.Item("AttrID"), oRow.Item("AttrTitle").ToString, oRow.Item("Criteria").ToString, oRow.Item("SearchTerm").ToString) + Dim oSearchTerm = GetSearchTermForType(oRow.Item("AttrID"), oRow.Item("AttrTitle").ToString, oRow.Item("Criteria").ToString, oRow.Item("SearchTerm").ToString) oSEARCH_SQL &= IIf(oCount = 0, " ", "") + $"{oRow.Item("BracketLeft").ToString}{oSearchTerm}{oRow.Item("BracketLeft").ToString}" If DTSearchTerms.Rows.Count > oCount Then @@ -699,12 +701,14 @@ Public Class frmSearchStart Dim oShortGuid = Guid.NewGuid() Dim oWindowGuid = $"{PSEARCH_ID.ToString}-{My.User.Name}" '{String.Join("-", oShortGuid.ToString)}" Dim oParams = New DocumentResultParams() With { - .WindowGuid = oWindowGuid - } - oParams.Results.Add(New DocumentResult() With { - .Title = TabSelected.Text, - .Datatable = oDTSearchResult - }) + .WindowGuid = oWindowGuid, + .Results = New List(Of DocumentResult) From { + New DocumentResult() With { + .Title = TabSelected.Text, + .Datatable = oDTSearchResult + } + } + } Dim oForm As New frmDocumentResultList(My.LogConfig, oEnvironment, oParams) @@ -722,7 +726,7 @@ Public Class frmSearchStart End Sub - Private Function GetSearchTerm_for_Type(pAttrID As Int16, pAttrTitle As String, pCriteria As String, pTERM As String) As String + Private Function GetSearchTermForType(pAttrID As Int16, pAttrTitle As String, pCriteria As String, pTERM As String) As String Dim oRETURN As String = "" Dim oFilter As String = $"GUID = {pAttrID}"