146 lines
7.4 KiB
VB.net
146 lines
7.4 KiB
VB.net
Imports System.ComponentModel
|
|
Imports DLLLicenseManager
|
|
|
|
Public Class ClassInit
|
|
Private _windreamPM As ClassPMWindream
|
|
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)
|
|
_windreamPM.Init()
|
|
Return True
|
|
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 CDate(split(1)) <= CDate(Now.ToShortDateString) Then
|
|
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & split(1) & vbNewLine & "Die Lizenzanzahl wird auf 0 gesetzt" & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
|
|
LICENSE_EXPIRED = True
|
|
LICENSE_COUNT = 0
|
|
End If
|
|
|
|
|
|
LICENSE_PROFILES = split(2)
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler bei Licensemanager:")
|
|
End Try
|
|
End Sub
|
|
Public Sub InitUserLogin()
|
|
Try
|
|
Dim sql = String.Format("SELECT MAX(GUID) FROM TBPM_USER WHERE LOWER(USERNAME) = LOWER('{0}')", Environment.UserName)
|
|
ClassLogger.Add(">> Username: " & Environment.UserName, False)
|
|
|
|
CURRENT_USERID = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
|
|
If IsDBNull(CURRENT_USERID) Then
|
|
ClassLogger.Add("User '" & Environment.UserName & "' not configured in Useradministration! (DBNull)", True)
|
|
'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 USER"
|
|
Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!")
|
|
Else
|
|
If IsNothing(CURRENT_USERID) Then
|
|
ClassLogger.Add(" - User: " & Environment.UserName & " ' not configured in Useradministration! (nothing)", False)
|
|
ERROR_STATE = "NO USER"
|
|
Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!")
|
|
Else
|
|
'Am System anmelden
|
|
Refresh_Licence()
|
|
Dim sql1 = "SELECT COUNT(GUID) FROM TBPM_PROFILE"
|
|
Dim anz = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
|
|
If anz > LICENSE_PROFILES Then
|
|
MsgBox("Your amount of configurable profiles is limited to " & LICENSE_PROFILES.ToString & " profiles. You can not add more profiles!" & vbNewLine & "Please contact Digital Data for further licensedetails", MsgBoxStyle.Information)
|
|
End If
|
|
|
|
sql = String.Format("UPDATE TBPM_USER SET LOGGED_IN = 1, LOGGED_WHERE = '{0}' WHERE GUID = {1}", Environment.MachineName, CURRENT_USERID)
|
|
ClassDatabase.Execute_non_Query(sql)
|
|
|
|
sql = String.Format("SELECT ADMIN FROM TBPM_USER WHERE GUID = {0}", CURRENT_USERID)
|
|
USER_IS_ADMIN = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
|
|
|
|
sql = "SELECT COUNT(*) AS Expr1 FROM TBPM_USER WHERE LOGGED_IN = 1"
|
|
USERCOUNT_LOGGED_IN = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl Angemeldete User: " & 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
|
|
'Anmeldung wieder herausnehmen
|
|
sql = String.Format("UPDATE TBPM_USER SET LOGGED_IN = 0, LOGGED_WHERE = '' WHERE GUID = {0}", CURRENT_USERID)
|
|
ClassDatabase.Execute_non_Query(sql, True)
|
|
ClassLogger.Add(" - Wieder abgemeldet", False)
|
|
ERROR_STATE = "START INCOMPLETE"
|
|
End If
|
|
End If
|
|
'Alles OK bis hierhin...nun die FolderwatchKonfig laden
|
|
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Unexpected Error in InitUserLogin: " & ex.Message, True)
|
|
ERROR_STATE = "START INCOMPLETE"
|
|
End Try
|
|
|
|
End Sub
|
|
Public Sub InitBasics()
|
|
Try
|
|
Dim sql = String.Format("select * from TBPM_KONFIGURATION WHERE GUID = 1")
|
|
CURRENT_DT_CONFIG = ClassDatabase.Return_Datatable(sql)
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Unexpected Error in InitBasics: " & ex.Message, True)
|
|
ERROR_STATE = "Basics not initialized"
|
|
End Try
|
|
End Sub
|
|
End Class
|