diff --git a/app/DD_Clipboard_Searcher/App.config b/app/DD_Clipboard_Searcher/App.config index 8351848..ac3f765 100644 --- a/app/DD_Clipboard_Searcher/App.config +++ b/app/DD_Clipboard_Searcher/App.config @@ -12,7 +12,7 @@ - False + True @@ -84,7 +84,9 @@ - + diff --git a/app/DD_Clipboard_Searcher/ClassInit.vb b/app/DD_Clipboard_Searcher/ClassInit.vb index e6f07f4..9e83ed2 100644 --- a/app/DD_Clipboard_Searcher/ClassInit.vb +++ b/app/DD_Clipboard_Searcher/ClassInit.vb @@ -4,6 +4,7 @@ Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Config Imports DigitalData.Modules.Database Imports DigitalData.Modules.EDMI.API +Imports DigitalData.Modules.EDMI.API.EDMIServiceReference Public Class ClassInit Public _lizenzManager As clsLicenseManager @@ -69,6 +70,21 @@ Public Class ClassInit Return False End Try End Function + Public Function InitAppDatabase() As Boolean + + Try + DatabaseAppServ = New MSSQLServer(LogConfig, MyConStringAppserv) + If DatabaseAppServ.DBInitialized = True Then + Return True + Else + Return False + End If + + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function Public Function InitBasics() Dim UserAppDataPath = Application.UserAppDataPath @@ -84,14 +100,17 @@ Public Class ClassInit With ConfigManager.Config MyConnectionString = DecryptConnectionString(.ConnectionString) LogErrorsOnly = .LogErrorsOnly - HotkeyFunctionKey = .HotkeyFunctionKey HotkeySearchKey = .HotkeySearchKey - LogConfig.Debug = Not .LogErrorsOnly End With + If HotkeySearchKey_via_Server = False Then + HotkeyFunctionKey = ConfigManager.Config.HotkeyFunctionKey + End If If ConfigManager.Config.ConnectionStringAppServer <> String.Empty Then - Logger.Debug("ConnectionStringAppServer will be used") - CONNECTION_STRING_APP_SERVER = DecryptConnectionString(ConfigManager.Config.ConnectionStringAppServer) + MyConStringAppserv = DecryptConnectionString(ConfigManager.Config.ConnectionStringAppServer) + If InitAppDatabase() Then + Logger.Debug("ConnectionStringAppServer will be used") + End If End If If ConfigManager.Config.AppServerConfig <> String.Empty Then @@ -187,7 +206,14 @@ Public Class ClassInit Catch ex As Exception NOMATCH_INFO = False End Try - + ElseIf oMode.StartsWith("HotkeySearchKey") Then + Try + Dim oResult = oMode.Replace("HotkeySearchKeyO=", "") + HotkeySearchKey = oResult + HotkeySearchKey_via_Server = True + Catch ex As Exception + NOMATCH_INFO = "d" + End Try Else Logger.Info($"Wrong oMode: {oMode}") @@ -208,7 +234,7 @@ Public Class ClassInit End Try End Function - Public Shared Function InitUserLogin(Optional _User As String = "") + Public Async Function InitUserLogin(Optional _User As String = "") As Task(Of Boolean) Try If _User = "" Then USER_USERNAME = Environment.UserName @@ -216,25 +242,41 @@ Public Class ClassInit USER_USERNAME = _User End If Try - DT_CLIENT_USER = Database.GetDatatable(String.Format("SELECT * FROM VWDD_USER_CLIENT WHERE UPPER(USERNAME) = UPPER('{0}')", Environment.UserName)) - If DT_CLIENT_USER.Rows.Count > 1 Then - frmClientLogin.ShowDialog() - ElseIf DT_CLIENT_USER.Rows.Count = 1 Then - CLIENT_SELECTED = DT_CLIENT_USER.Rows(0).Item("CLIENT_ID") + If CheckModuleData() = False Then + Return False + End If + If APPSERVER_ACTIVE = True Then + Dim oTableResult As TableResult = Await _Client.GetDatatableByNameAsync("VWDD_USER_CLIENT", $"USER_ID = {USER_ID}") + + DT_CLIENT_USER = oTableResult.Table + Else + DT_CLIENT_USER = Database.GetDatatable(String.Format("SELECT * FROM VWDD_USER_CLIENT WHERE UPPER(USERNAME) = UPPER('{0}')", Environment.UserName)) + End If + If Not IsNothing(DT_CLIENT_USER) Then + + If DT_CLIENT_USER.Rows.Count > 1 Then + frmClientLogin.ShowDialog() + ElseIf DT_CLIENT_USER.Rows.Count = 1 Then + CLIENT_SELECTED = DT_CLIENT_USER.Rows(0).Item("CLIENT_ID") + Else + Logger.Info("User '" & USER_USERNAME & "' not related to a client", True) + ERROR_INIT = "NO CLIENT" + 'ERROR_STATE = "NO CLIENT" + Return False + End If Else Logger.Info("User '" & USER_USERNAME & "' not related to a client", True) ERROR_INIT = "NO CLIENT" 'ERROR_STATE = "NO CLIENT" Return False End If + Catch ex As Exception Logger.Info("Unexpected error in checking CLIENT: " & ex.Message) CLIENT_SELECTED = 1 End Try - If CheckModuleData() = False Then - Return False - End If + If USER_IN_MODULE = False Then diff --git a/app/DD_Clipboard_Searcher/My Project/Settings.Designer.vb b/app/DD_Clipboard_Searcher/My Project/Settings.Designer.vb index c473a47..111595c 100644 --- a/app/DD_Clipboard_Searcher/My Project/Settings.Designer.vb +++ b/app/DD_Clipboard_Searcher/My Project/Settings.Designer.vb @@ -76,7 +76,7 @@ Namespace My _ + Global.System.Configuration.DefaultSettingValueAttribute("True")> _ Public ReadOnly Property UseAppConfigConString() As Boolean Get Return CType(Me("UseAppConfigConString"),Boolean) diff --git a/app/DD_Clipboard_Searcher/My Project/Settings.settings b/app/DD_Clipboard_Searcher/My Project/Settings.settings index ac75691..9167628 100644 --- a/app/DD_Clipboard_Searcher/My Project/Settings.settings +++ b/app/DD_Clipboard_Searcher/My Project/Settings.settings @@ -14,7 +14,7 @@ - False + True \ No newline at end of file diff --git a/app/DD_Clipboard_Searcher/frmSplash.vb b/app/DD_Clipboard_Searcher/frmSplash.vb index 887384e..340d85b 100644 --- a/app/DD_Clipboard_Searcher/frmSplash.vb +++ b/app/DD_Clipboard_Searcher/frmSplash.vb @@ -32,7 +32,7 @@ Public NotInheritable Class frmSplash Return _step * (100 / InitSteps) End Function - Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) + Private Async Function bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) As Task Try Dim Init = New ClassInit() Worker.ReportProgress(CalcProgress(1), "Initializing Logger") @@ -48,7 +48,7 @@ Public NotInheritable Class frmSplash Thread.Sleep(200) Worker.ReportProgress(CalcProgress(4), "Initializing User-Configuration") - If ClassInit.InitUserLogin = False Then + If Await Init.InitUserLogin = False Then If ERROR_INIT = "" Then ERROR_INIT = "INVALID USER" End If @@ -63,7 +63,7 @@ Public NotInheritable Class frmSplash Catch ex As Exception MsgBox("Unexpected Error in bw_DoWork: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try - End Sub + End Function Private Sub bw_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) pbStatus.Value = e.ProgressPercentage diff --git a/app/DD_Clipboard_Searcher/modCurrent.vb b/app/DD_Clipboard_Searcher/modCurrent.vb index f141f6d..a94bb3c 100644 --- a/app/DD_Clipboard_Searcher/modCurrent.vb +++ b/app/DD_Clipboard_Searcher/modCurrent.vb @@ -8,15 +8,17 @@ Module modCurrent Public LogConfig As LogConfig Public Logger As Logger Public Database As MSSQLServer + Public DatabaseAppServ As MSSQLServer Public Automation As ClassAutomation Public ConfigManager As ConfigManager(Of ClassConfig) Public MyConnectionString As String = "" - Public CONNECTION_STRING_APP_SERVER As String = "" + Public MyConStringAppserv As String = "" Public HotkeyFunctionKey As String = ClassConstants.HOTKEY_CTRL Public HotkeySearchKey As String = "d" + Public HotkeySearchKey_via_Server As Boolean = False Public LogErrorsOnly As Boolean = True Public CURRENT_WINDOW_NAME As String