Imports System.ComponentModel Imports DD_LIB_Standards Imports System.IO Public Class ClassInit Public _lizenzManager As clsLicenseManager Public Sub InitLogger() Try ' legt den Speicherort fest Dim f As New IO.DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Digital Data\Clipboard Searcher\Log")) If IO.Directory.Exists(f.ToString) = False Then IO.Directory.CreateDirectory(f.ToString) End If Dim logfilename As String = f.ToString & "\" & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt" LOGGER_FILEPATH = logfilename clsLogger.LOGFILE_PATH = LOGGER_FILEPATH Catch ex As Exception MsgBox("Unexpected Error while initializing Logger: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub Public Function InitDatabase() Dim dbResult As Boolean clsDatabase.GUI = True If MyConnectionString <> String.Empty Then dbResult = clsDatabase.Init(MyConnectionString) Else MsgBox("No Databaseconnection configured. (First Start or Appdata not accessible)" & vbNewLine & "Basic-Config will be loaded.", MsgBoxStyle.Information) ERROR_INIT = "NO DB-CONNECTION" frmConfig_Basic.ShowDialog() dbResult = clsDatabase.Init(MyConnectionString) InitBasics() End If If dbResult = False Then ERROR_INIT = "FAILED DBCONNECTION" MsgBox("Error in init database. (Connection failed) More information in the logfile.", MsgBoxStyle.Critical) Return False Else Return True End If End Function Public Function InitBasics() Dim configResult As Boolean configResult = LoadMyConfig() If configResult = False Then Throw New Exception("Unexpected error inm Initialisieren der Basis-Einstellungen. Weitere Informationen finden Sie in der Logdatei.") Else Return False End If End Function Public Shared Function InitUserLogin(Optional _User As String = "") Try If _User = "" Then USER_USERNAME = Environment.UserName Else USER_USERNAME = _User End If Dim sql = String.Format("SELECT * FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('{0}'))", USER_USERNAME) clsLogger.Add(">> Login Username: " & USER_USERNAME, False) clsLogger.Add(">> Login time: " & Now.ToString, False) Dim USER_DT As DataTable = clsDatabase.Return_Datatable(sql, True) If USER_DT.Rows.Count = 0 Then clsLogger.Add(" - User '" & USER_USERNAME & "' not listed in Useradministration!", False) 'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") 'Me.Close() Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.") MsgBox(msg, MsgBoxStyle.Exclamation) Return False Else USER_GUID = USER_DT.Rows(0).Item("GUID") USER_LANGUAGE = USER_DT.Rows(0).Item("LANGUAGE") DT_CLIENT_USER = clsDatabase.Return_Datatable("SELECT T.*, T1.CLIENT_NAME FROM TBDD_CLIENT_USER T,TBDD_CLIENT T1 WHERE T.CLIENT_ID = T1.GUID AND T.USER_ID = " & USER_GUID, True) Dim Access_right As Boolean = False sql = String.Format("SELECT COUNT(T.GUID) FROM TBDD_USER_MODULES T, TBDD_MODULES T1 WHERE T.MODULE_ID = T1.GUID AND UPPER(T1.NAME) = UPPER('Clipboard-Searcher') AND T.USER_ID = {0}", USER_GUID) Dim USER2MODULE = clsDatabase.Execute_Scalar(sql) If Not IsNothing(USER2MODULE) Then If USER2MODULE = 1 Then Access_right = True End If Else Access_right = USER_DT.Rows(0).Item("MODULE_DDCBSEARCHER") End If If Access_right = False Then clsLogger.Add(" - User: " & USER_USERNAME & " nicht für Modul freigegben!", False) 'MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") Dim msg = String.Format("Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!") If USER_LANGUAGE <> "de-DE" Then msg = String.Format("You are not authorized for using this module." & vbNewLine & "Please contact the admin.") End If MsgBox(msg, MsgBoxStyle.Exclamation, "Attention:") Return False Else If DT_CLIENT_USER.Rows.Count = 0 Then Dim msg = String.Format("Keine Client-Modul Verknüpfung für Ihren User definiert." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!") If USER_LANGUAGE <> "de-DE" Then msg = String.Format("Noc client-module link for Your user." & vbNewLine & "Please contact the admin.") End If MsgBox(msg, MsgBoxStyle.Exclamation, "Attention:") Return False End If 'Am System anmelden clsLicense.Refresh_Licence(DT_CLIENT_USER.Rows(0).Item("CLIENT_ID")) 'Am System anmelden ' sql = String.Format("UPDATE TBDD_USER SET LOGGED_IN = 1, LOGGED_WHERE = '{0}' WHERE GUID = {1}", Environment.MachineName, USER_GUID) 'clsDatabase.Execute_non_Query(sql) sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Clipboard-Searcher'" If clsDatabase.Execute_non_Query(sql, True) = True Then End If sql = String.Format("INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,CLIENT_ID,MODULE,VERSION_CLIENT,MACHINE_NAME) VALUES ({0},{1},'Clipboard-Searcher','{2}','{3}')", USER_GUID, 0, My.Application.Info.Version.ToString, Environment.MachineName) clsDatabase.Execute_non_Query(sql) USER_IS_ADMIN = USER_DT.Rows(0).Item("RECORD_ADMIN") If USER_IS_ADMIN = True Then If ESC_Hidden = True Then 'frmLoginUserSelect.ShowDialog() ESC_Hidden = False If USER_USERNAME <> "" Then InitUserLogin(USER_USERNAME) End If End If ' 'Admin ' pageAdmin.Visible = True End If WD_UNICODE = clsDatabase.Execute_Scalar("SELECT WD_UNICODE FROM TBCS_CONFIGURATION WHERE GUID = 1") sql = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Clipboard-Searcher') AND CLIENT_ID = {0}", 0) Dim anzahl = clsDatabase.Execute_Scalar(sql) USERS_LOGGED_IN = CInt(anzahl) If LogErrorsOnly = False Then clsLogger.Add(" >> Count Users logged in: " & anzahl.ToString, False) '#### If LICENSE_COUNT < USERS_LOGGED_IN And LICENSE_EXPIRED = False Then Dim msg = String.Format("Die Anzahl der aktuell angemeldeten User (" & USERS_LOGGED_IN.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!") If USER_LANGUAGE <> "de-DE" Then msg = String.Format("The number of logged Users (" & USERS_LOGGED_IN.ToString & ") exceeds the number of licenses." & vbNewLine & _ "Number of licenses: " & LICENSE_COUNT.ToString & vbNewLine & "Please contact Your admin!") End If MsgBox(msg, MsgBoxStyle.Exclamation) clsLogger.Add(" >> The number of logged Users (" & USERS_LOGGED_IN.ToString & ") exceeds the number of licenses (" & LICENSE_COUNT & ") ", False) If USER_IS_ADMIN = False Then 'Anmeldung wieder herausnehmen sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Clipboard-Searcher'" clsDatabase.Execute_non_Query(sql, True) clsLogger.Add(" - logged out the user", False) Return False End If End If Return True 'LabelLoggedIn.Caption = "Anzahl Angemeldete User: " & anzahl.ToString End If End If Catch ex As Exception clsLogger.Add("Unexpected Error in InitUserLogin: " & ex.Message, True) MsgBox("Unexpected Error in InitUserLogin: " & ex.Message, MsgBoxStyle.Critical) Return False End Try End Function End Class