163 lines
8.9 KiB
VB.net
163 lines
8.9 KiB
VB.net
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
|
|
'Am System anmelden
|
|
clsLicense.Refresh_Licence(0)
|
|
'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
|