Imports System.ComponentModel Imports System.Globalization Imports DLLLicenseManager Public Class ClassInit Public _lizenzManager As ClassLicenseManager Public Sub New() End Sub Public Sub InitLogger() ClassLogger.Init("", Environment.UserName) ClassLogger.Add("## ProcessManager für Windream gestartet - " & Now, False) If LogErrorsOnly = False Then 'Setzt DetailLog zurück LogErrorsOnly = False = False My.Settings.Save() End If 'Throw New Exception("Dummy Fehler!") End Sub Public Sub InitUserConfig() Settings_Load() End Sub Public Function InitDatabase() Dim dbResult As Boolean If MyConnectionString <> String.Empty Then dbResult = ClassDatabase.Init() Else MsgBox("No Databaseconnection configured. (First Start or Appdata not accessible)" & vbNewLine & "Basic-Config will be loaded.", MsgBoxStyle.Information) ERROR_STATE = "NO DB-CONNECTION" frmKonfig.ShowDialog() dbResult = ClassDatabase.Init() End If If dbResult = False Then ERROR_STATE = "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 InitWindream() ' Try ' ' Windream instanziieren ' _windreamPM = New ClassPMWindream() ' 'Windream initialisieren (Connection, Session, ... aufbauen) ' Return _windreamPM.Init() ' Catch ex As Exception ' MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") ' Return False ' End Try 'End Function Sub Refresh_Licence() Try Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "") Dim lic As String = CURRENT_DT_CONFIG.Rows(0).Item("LIZENZEN") ' ClassDatabase.Execute_Scalar("SELECT LIZENZEN FROM TBPM_KONFIGURATION WHERE (GUID = 1)", MyConnectionString) Dim licString = Me._lizenzManager.DecodeLicenseKey(lic) Dim split() = licString.ToString.Split("#") If lic <> "" Then LICENSE_COUNT = split(0) Else LICENSE_COUNT = 0 End If If LICENSE_VALID = False Then MsgBox("Your license has expired!" & vbNewLine & "Last valid date: " & split(1) & vbNewLine & "Please contact Your sysadmin", MsgBoxStyle.Exclamation) LICENSE_EXPIRED = True LICENSE_COUNT = 0 End If If LogErrorsOnly = False Then ClassLogger.Add(" >> license initialized....", False) LICENSE_PROFILES = split(2) Catch ex As Exception ClassLogger.Add("Unexpected error in Refresh license: " & ex.Message, True) MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler bei Licensemanager:") End Try End Sub Public Sub InitUserLogin() Try USER_USERNAME = Environment.UserName Try DT_CLIENT_USER = ClassDatabase.Return_Datatable(String.Format("SELECT * FROM VWDD_USER_CLIENT WHERE UPPER(USERNAME) = UPPER('{0}')", Environment.UserName), False) 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 'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") 'Me.Close() ERROR_STATE = "NO CLIENT" ' Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!") MsgBox("You are not related to a client!" & vbNewLine & "Please contact the system administrator!", MsgBoxStyle.Exclamation) Exit Sub End If Catch ex As Exception ClassLogger.Add("Unexpected error in checking CLIENT: " & ex.Message) CLIENT_SELECTED = 1 End Try ClassLogger.Add(">> Username: " & USER_USERNAME, False) Dim sql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','PM',{1})", Environment.UserName, CLIENT_SELECTED) Dim DT_CHECKUSER_MODULE As DataTable = ClassDatabase.Return_Datatable(sql) If DT_CHECKUSER_MODULE.Rows.Count = 0 Then ClassLogger.Add("DT_CHECKUSER_MODULE.Rows.Count = 0", True) ERROR_STATE = "NO USER" MsgBox("Sorry - Something went wrong in getting Your rights." & vbNewLine & "Please contact the system administrator!", MsgBoxStyle.Exclamation) Exit Sub End If If DT_CHECKUSER_MODULE.Rows.Count = 1 Then If DT_CHECKUSER_MODULE.Rows(0).Item("USER_ID") <> 0 Then USER_EXISTS = True Else USER_EXISTS = False End If USER_ID = DT_CHECKUSER_MODULE.Rows(0).Item("USER_ID") USER_SURNAME = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_SURNAME")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_SURNAME")) USER_PRENAME = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_PRENAME")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_PRENAME")) USER_SHORTNAME = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_SHORTNAME")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_SHORTNAME")) USER_EMAIL = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")) USER_LANGUAGE = DT_CHECKUSER_MODULE.Rows(0).Item("USER_LANGUAGE") USER_IN_MODULE = DT_CHECKUSER_MODULE.Rows(0).Item("MODULE_ACCESS") USER_IS_ADMIN = DT_CHECKUSER_MODULE.Rows(0).Item("IS_ADMIN") USER_RIGHT_FILE_DELETE = DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL") USERCOUNT_LOGGED_IN = DT_CHECKUSER_MODULE.Rows(0).Item("USERCOUNT_LOGGED_IN") If LogErrorsOnly = False Then ClassLogger.Add(" >> User exists....", False) 'Am System anmelden Refresh_Licence() 'Check_User_Exists_in_PMGroups() ClassAllgemeineFunktionen.LoginOut("LOGIN") 'sql = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Process-Manager') AND CLIENT_ID = {0}", 1) ' USERCOUNT_LOGGED_IN = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True) sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_ID & " AND MODULE = 'Process-Manager'" ClassDatabase.Execute_non_Query(sql, True) If LogErrorsOnly = False Then ClassLogger.Add(" >> Count Users logged in: " & USERCOUNT_LOGGED_IN.ToString, False) If LICENSE_COUNT < USERCOUNT_LOGGED_IN And LICENSE_EXPIRED = False Then MsgBox("Die Anzahl der aktuell angemeldeten User (" & USERCOUNT_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!", MsgBoxStyle.Critical, "Achtung:") ClassLogger.Add(" >> Die Anzahl der aktuell angemeldeten User (" & USERCOUNT_LOGGED_IN.ToString & ") überschreitet die Anzahl der Lizenzen (" & LICENSE_COUNT & ") für Process Manager!", False) If USER_IS_ADMIN = False Then ClassAllgemeineFunktionen.LoginOut("LOGOUT") ClassLogger.Add(" - Wieder abgemeldet - START INCOMPLETE", False) ERROR_STATE = "START INCOMPLETE" End If End If 'Alles OK bis hierhin...nun die FolderwatchKonfig laden If LogErrorsOnly = False Then ClassLogger.Add(" >> Init Userlogin successfull completed....", False) End If Catch ex As Exception ClassLogger.Add("Unexpected Error in InitUserLogin: " & ex.Message, True) ERROR_STATE = "START INCOMPLETE" End Try End Sub Public Shared Sub InitBasics() Try Dim sql = String.Format("select * from TBPM_KONFIGURATION WHERE GUID = 1") CURRENT_DT_CONFIG = ClassDatabase.Return_Datatable(sql) sql = "select * from TBDD_CONNECTION" CURRENT_DT_TBDD_CONNECTION = ClassDatabase.Return_Datatable(sql) Settings_LoadBasicConfig() Catch ex As Exception ClassLogger.Add("Unexpected Error in InitBasics: " & ex.Message, True) ERROR_STATE = "Basics not initialized" End Try End Sub Private Shared Function Settings_LoadBasicConfig() Try Dim sql As String = "select * from tbdd_Modules where SHORT_NAME = 'PM'" Dim DT As DataTable = ClassDatabase.Return_Datatable(sql) If DT.Rows.Count = 1 Then vWLaufwerk = DT.Rows(0).Item("STRING1") vVERSION_DELIMITER = DT.Rows(0).Item("VERSION_DELIMITER") vFILE_DELIMITER = DT.Rows(0).Item("FILE_DELIMITER") LICENSE_VALID = DT.Rows(0).Item("LICENSE_VALID") Try WMSESSION_STARTSTOP_STARTUP = DT.Rows(0).Item("WMSESSION_STARTSTOP_STARTUP") Catch ex As Exception ClassLogger.Add("Unexpected Error in Settings_LoadBasicConfig: " & ex.Message, True) WMSESSION_STARTSTOP_STARTUP = False End Try Else Return False End If Catch ex As Exception MsgBox("Error in Settings_LoadBasicConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try Return True End Function Private Function Check_User_Exists_in_Group(ByVal Groupname As String) Try Dim sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = '{1}'", USER_ID, Groupname) Dim DT As DataTable = ClassDatabase.Return_Datatable(sel) If Not IsNothing(DT) Then If DT.Rows.Count = 1 Then Return True Else Return False End If Else Return False End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in CheckUserExistsinGroup:") Return False End Try End Function 'Private Function Check_User_Exists_in_PMGroups() ' Try ' Dim sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = 'PM_USER'", USER_ID) ' Dim DT As DataTable = ClassDatabase.Return_Datatable(sel) ' If Not IsNothing(DT) Then ' If DT.Rows.Count = 1 Then ' If LogErrorsOnly = False Then ClassLogger.Add(" >> User is in PM_USER-Group....", False) ' USER_IN_MODULE = True ' Else ' If LogErrorsOnly = False Then ClassLogger.Add(" >> User is NOT in PM_USER-Group...." & sel, False) ' sel = String.Format("select T.* from TBDD_USER_MODULES T WHERE T.USER_ID = {0} AND T.MODULE_ID = 3", USER_ID) ' DT = ClassDatabase.Return_Datatable(sel) ' If Not IsNothing(DT) Then ' If DT.Rows.Count = 1 Then ' If LogErrorsOnly = False Then ClassLogger.Add(" >> Singe User-relation defined for user....", False) ' USER_IN_MODULE = True ' USER_IS_ADMIN = DT.Rows(0).Item("IS_ADMIN") ' USER_RIGHT_FILE_DELETE = DT.Rows(0).Item("RIGHT1") ' End If ' End If ' End If ' End If ' sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = 'PM_ADMINS'", USER_ID) ' DT = ClassDatabase.Return_Datatable(sel) ' If Not IsNothing(DT) Then ' If DT.Rows.Count = 1 Then ' If LogErrorsOnly = False Then ClassLogger.Add(" >> User is in PM_ADMINS-Group....", False) ' USER_IS_ADMIN = True ' USER_IN_MODULE = True ' Else ' If LogErrorsOnly = False Then ClassLogger.Add(" >> User is NOT in PM_ADMINS-Group...." & sel, False) ' End If ' End If ' Catch ex As Exception ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Check_User_Exists_in_PMGroups:") ' End Try 'End Function End Class