2025-12-05 14:02:41 +01:00

550 lines
28 KiB
VB.net

Imports System.IO
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Public Class ClassInit
Public Sub New()
End Sub
Public Sub InitLoggerANDConfig()
Try
Dim oLocalUserAppDataPath As String = Application.LocalUserAppDataPath
LOGCONFIG = New LogConfig(LogConfig.PathType.AppData,
oLocalUserAppDataPath & "\Log", Nothing,
My.Application.Info.CompanyName,
My.Application.Info.ProductName)
LOGGER = LOGCONFIG.GetLogger()
LOGGER.Info("orgFLOW started")
Dim oUserAppDataPath As String = Application.UserAppDataPath
Dim oLegacyAppDataPath As String = Application.UserAppDataPath
Dim oCommonAppDataPath = Application.CommonAppDataPath
LOGGER.Debug($"oCommonAppDataPath: {oCommonAppDataPath}")
Dim oStartupPath = Application.StartupPath
' If AppConfig from Startup Path should be forced, rewrite the common app data path
If My.Settings.UseAppConfig = True Then
oCommonAppDataPath = oStartupPath
LOGGER.Info($"Achtung: Anstatt ComputerConfig wird AppConfig-/Startup-Path ({oCommonAppDataPath}) benutzt! (UseAppConfig in Appdata)")
End If
CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, oUserAppDataPath, oCommonAppDataPath, oStartupPath)
LOGGER.Debug("Config loaded")
LOGGER.Debug($"oUserAppDataPath: {oUserAppDataPath}")
LOGGER.Debug($"oCommonAppDataPath: {oCommonAppDataPath}")
Try
If CONFIG.Config.ConnectionString <> String.Empty Then
LOGGER.Debug("Connection String loaded")
MyConnectionString = DecryptConnectionString(CONFIG.Config.ConnectionString)
End If
Catch ex As Exception
LOGGER.Error(ex, "Unexpected Error Getting CONFIG.TestMode or CONFIG.ConnectionStringTest")
End Try
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
Private Shared Function DecryptConnectionString(EncryptedConnectionString As String) As String
Dim oBuilder As New SqlClient.SqlConnectionStringBuilder With {
.ConnectionString = EncryptedConnectionString
}
If oBuilder.ConnectionString.Contains("Password=") Then
Dim oPlaintextPassword As String
Dim oDecryptor As New ClassEncryption("!35452didalog=")
Try
oPlaintextPassword = oDecryptor.DecryptData(oBuilder.Password)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Debug("Password {0} could not be decrypted. Assuming plaintext password.")
oPlaintextPassword = oBuilder.Password
End Try
Return EncryptedConnectionString.Replace(oBuilder.Password, oPlaintextPassword)
Else
Return EncryptedConnectionString
End If
End Function
Public Shared Function InitDatabase()
Try
'Dim dbResult As Boolean
MySettings_Load()
If LoadFileExclusion() = False Then
MsgBox("The Exclude File Structure for files in Folderwatch could not be initialized!", MsgBoxStyle.Information)
End If
If CONFIG.Config.ConnectionString <> String.Empty Then
LOGGER.Debug("Connection String from CONFIG")
MyConnectionString = DecryptConnectionString(CONFIG.Config.ConnectionString)
End If
If MyConnectionString <> String.Empty Then
MYDB_ECM = New MSSQLServer(LOGCONFIG, MyConnectionString)
If MYDB_ECM.DBInitialized = False Then
frmConfig_Basic.ShowDialog()
End If
' dbResult = clsDatabase.Init(MyConnectionString)
Else
frmConfig_Basic.ShowDialog()
' dbResult = clsDatabase.Init(MyConnectionString)
End If
'If ClassProxy.MyPROXYConnectionString <> String.Empty Then
' If clsDatabase.Init(ClassProxy.MyPROXYConnectionString, True) = False Then
' ClassHelper.MSGBOX_Handler("ERROR", "", "Error while Initializing proxyserver - Check logfile")
' Else
' Dim csb As New SqlClient.SqlConnectionStringBuilder
' csb.ConnectionString = ClassProxy.MyPROXYConnectionString
' ClassHelper.InsertEssential_Log(USER_GUID, "USER-ID", String.Format("Proxy-Server {0} - Database {1} is used", csb.DataSource, csb.InitialCatalog))
' End If
'End If
If Not IsNothing(MYDB_ECM) Then
If MYDB_ECM.DBInitialized = False Then
Throw New Exception("Find more information in the logfile.")
End If
Else
Return False
End If
Return True
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Unexpected Error in Init Database:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Sub InitAddons()
Try
Dim CurrentDir As String = My.Application.Info.DirectoryPath
Dim AddonPath As String = MY_ADDON_PATH ' MYDB_ECM.GetScalarValue(SQL)
Dim Dev_AddonPath As String = System.IO.Path.GetFullPath(System.IO.Path.Combine(CurrentDir, "..\..\..\..\app"))
If AddonPath Is Nothing OrElse AddonPath = "" Then
' Addon Pfad in der Datenbank ist leer
Dim path = System.IO.Path.Combine(CurrentDir, "Addons")
Dim AddonDir As New DirectoryInfo(path)
If AddonDir.Exists Then
AddonPath = path
Else
AddonPath = Dev_AddonPath
End If
Else
' Addon Pfad steht in der Datenbank
Dim path = AddonPath
Dim AddonDir As New DirectoryInfo(path)
If (AddonDir.Exists) Then
If AddonDir.Name = "Addons" Then
AddonPath = path
Else
AddonPath = Dev_AddonPath
End If
Else
AddonPath = Dev_AddonPath
End If
End If
MY_ADDON_PATH = AddonPath
SaveMySettingsValue("PATH_ADDON", MY_ADDON_PATH, "ConfigMain")
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Unexpected Error in InitAddons:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Sub InitBasics2()
Try
Dim configResult As Boolean
configResult = Settings_LoadBasicConfig()
If configResult = False Then
Throw New Exception("Find more information in the logfile.")
End If
Dim oSql = String.Format("SELECT * FROM TBPMO_KONFIGURATION WHERE GUID = 1")
Dim KONFIG_DT As DataTable = MYDB_ECM.GetDatatable(oSql)
If KONFIG_DT.Rows.Count = 1 Then
Try
MY_WIKISTRING = KONFIG_DT.Rows(0).Item("WIKI_STRING")
Catch ex As Exception
MY_WIKISTRING = ""
End Try
WD_UNICODE = KONFIG_DT.Rows(0).Item("WD_UNICODE")
SQL_FULLTEXT = KONFIG_DT.Rows(0).Item("SQL_FULLTEXT")
WMDriveLetter = KONFIG_DT.Rows(0).Item("WM_LAUFWERKBUCHSTABE")
WMPATH_PREFIX = KONFIG_DT.Rows(0).Item("WMPATH_PREFIX")
If Not WMPATH_PREFIX.ToUpper.StartsWith(constWMOBJECTS) Then
SHARE_DRIVE_ACTIVE = True
LOGGER.Info($"WM SHARE_DRIVE [{WMPATH_PREFIX}] via TBPMO_KONFIGURATION is active")
End If
End If
oSql = "SELECT * FROM TBDD_SQL_COMMANDS"
Dim oDTSQL_COMMANDS As DataTable = MYDB_ECM.GetDatatable(oSql)
For Each oRow As DataRow In oDTSQL_COMMANDS.Rows
If oRow.Item("TITLE") = "ADDI_DOC_SEARCH_RECORD" Then
SQL_DOC_RESULT_RECORD = oRow.Item("SQL_COMMAND")
LOGGER.Debug("SQL_DOC_RESULT_RECORD = " + SQL_DOC_RESULT_RECORD)
ElseIf oRow.Item("TITLE") = "OF_GLOBAL_SEARCH" Then
SQL_GLOBAL_SEARCH = oRow.Item("SQL_COMMAND")
ElseIf oRow.Item("TITLE") = "OF_NODE_SEARCH" Then
SQL_OF_NODE_SEARCH = oRow.Item("SQL_COMMAND")
ElseIf oRow.Item("TITLE") = "LIC_COUNT_NAMED" Then
SQL_LIC_NAMED_USER = oRow.Item("SQL_COMMAND")
End If
Next
Try
oSql = "SELECT * FROM TBDD_CATALOG"
Dim oDTTBDD_CATALOG As DataTable = MYDB_ECM.GetDatatable(oSql)
For Each oRow As DataRow In oDTTBDD_CATALOG.Rows
If oRow.Item("CAT_TITLE") = "DDSUPPORT_PORTAL" Then
CONF_SUPPORTPORTAL = oRow.Item("CAT_STRING")
LOGGER.Debug("CONF_SUPPORTPORTAL = " + CONF_SUPPORTPORTAL)
ElseIf oRow.Item("CAT_TITLE") = "WM_RWA" Then
WM_RWA = oRow.Item("CAT_STRING")
LOGGER.Debug("WM_RWA = " + WM_RWA)
ElseIf oRow.Item("CAT_TITLE") = "WM_RWA1" Then
WM_RWA1 = oRow.Item("CAT_STRING")
LOGGER.Debug("WM_RWA1 = " + WM_RWA1)
ElseIf oRow.Item("CAT_TITLE") = "WM_RWA2" Then
WM_RWA2 = oRow.Item("CAT_STRING")
LOGGER.Debug("WM_RWA2 = " + WM_RWA1)
ElseIf oRow.Item("CAT_TITLE") = "OF_FILESTORE_ENTITY" Then
OF_FILESTORE_ENTITY = oRow.Item("CAT_STRING")
Dim oSQL1 = String.Format("select A.GUID from TBPMO_FORM_CONSTRUCTOR A INNER JOIN TBPMO_FORM_CONSTRUCTOR_DETAIL B ON A.GUID = B.CONSTRUCT_ID WHERE B.FORM_ID = {0}", OF_FILESTORE_ENTITY)
OF_FILESTORE_CONSTRUCTOR = MYDB_ECM.GetScalarValue(oSQL1)
LOGGER.Debug(String.Format("OF_FILESTORE_ENTITY = {0}", OF_FILESTORE_ENTITY.ToString))
End If
Next
Catch ex As Exception
LOGGER.Error(ex)
End Try
oSql = "SELECT * FROM TBPMO_CONTROL"
CURRENT_TBPMO_CONTROL = MYDB_ECM.GetDatatable(oSql)
oSql = "SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1"
DT_DOCSEARCH_RESULTLIST_CONFIG = MYDB_ECM.GetDatatable(oSql)
oSql = "SELECT * FROM TBPMO_DOCSEARCH_VARIABLE_CONTROLS"
CURRENT_VARIABLE_CONTROLS = MYDB_ECM.GetDatatable(oSql)
oSql = "SELECT * FROM TBPMO_FORM_VIEW"
CURRENT_TBPMO_FORM_VIEW = MYDB_ECM.GetDatatable(oSql)
oSql = "select T.*, T1.HEADER_CAPTION,T1.TYPE_ID ,T1.ENTITY_ID,T1.LANGUAGE from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID"
CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS = MYDB_ECM.GetDatatable(oSql)
oSql = "SELECT * FROM TBFILE_EXTENSION_OVERRIDE"
CURRENT_TBFILE_EXTENSION_OVERRIDE = MYDB_ECM.GetDatatable(oSql)
oSql = String.Format("select* from TBPMO_FILE_FORMATS_CHANGE")
Dim oDTFF_CHANGE As DataTable = MYDB_ECM.GetDatatable(oSql)
For Each oRow As DataRow In oDTFF_CHANGE.Rows
FILE_FORMATS_CHANGE_DURING_EDIT.Add(oRow.Item("FILE_EXT"))
Next
oSql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE"
Dim oDTTBPMO_WD_OBJECTTYPE = MYDB_ECM.GetDatatable(oSql)
If oDTTBPMO_WD_OBJECTTYPE.Rows.Count = 1 Then
WMOBJECTTYPE = oDTTBPMO_WD_OBJECTTYPE.Rows(0).Item("OBJECT_TYPE").ToString
WMINDEX_DOCTYPE = oDTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_DOCTYPE").ToString
WMINDEX_RELATION = oDTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_RELATION").ToString
End If
MYGDPICTURE_LICENSE_KEY = MYDB_ECM.GetGDPictureString()
FILESYSTEM = New FilesystemEx(LOGCONFIG)
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Unexpected Error in InitBasics2:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Sub Init_CONN_SWITCH()
Try
Dim sql = String.Format("SELECT T1.GUID, T.DESCRIPTION, T.SQL_CONNECTION, T.SQL_CONNECTION_PROXY, T.WM_ALIAS,T1.ACTIVE FROM " &
"TBPMO_CLIENT_CONNECTION_SWITCH T, TBPMO_CLIENT_CONN_SWITCH_USER T1 WHERE T.GUID = T1.CONN_SWITCH_ID " &
"And T.ACTIVE = 1 And T1.USER_ID = {0}", USER_GUID)
CURRENT_TBPMO_CONN_SWITCH = MYDB_ECM.GetDatatable(sql)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Unexpected Error in Init_CONN_SWITCH: " & ex.Message)
End Try
End Sub
Public Shared Function InitUserLogin(Optional _User As String = "")
Try
Dim oMODULE_ACCES As Boolean = False
If _User = "" Then
USER_USERNAME = Environment.UserName
Else
USER_USERNAME = _User
End If
Dim oFNSQL = String.Format("SELECT * FROM [dbo].[FNDD_LOGIN_USER_MODULE] ('{0}','ORGFLOW',{1})", USER_USERNAME, CLIENT_SELECTED)
Dim DT_CHECKUSER_MODULE As DataTable
LOGGER.Info("Login at: " & Now.ToString)
LOGGER.Info("Username: " & USER_USERNAME)
Dim USER_DT As DataTable = MYDB_ECM.GetDatatable(oFNSQL)
If USER_DT.Rows.Count = 0 Then
LOGGER.Warn(" - User '" & USER_USERNAME & "' not listed in Useradministration!")
Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.")
MsgBox(msg, MsgBoxStyle.Exclamation)
ClassHelper.InsertEssential_Log(0, "USER-ID", String.Format("User '{0}' not listed in Userconfiguration", USER_USERNAME))
Return False
Else
DTTBPMO_SERVICE_RIGHT_CONFIG = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_SERVICE_RIGHT_CONFIG WHERE GUID = 1")
WM_DOMAIN = DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_DOMAIN")
WM_USER = DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_USER")
WM_SERVER = DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_SERVER")
Dim PWplainText As String
Dim wrapper As New ClassEncryption("!35452didalog=")
' DecryptData throws if the wrong password is used.
Try
PWplainText = wrapper.DecryptData(DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_USER_PW"))
Catch ex As Exception
LOGGER.Warn("The Userpassword could not be decrypted")
PWplainText = ""
End Try
WM_USER_PW = PWplainText
USER_GUID = USER_DT.Rows(0).Item("USER_ID")
LOGGER.Debug($"USER_GUID: {USER_GUID}")
Try
USERID_FK_INT_ECM = USER_DT.Rows(0).Item("USERID_FK_INT_ECM")
Catch ex As Exception
LOGGER.Warn("ACHTUNG - Spalte USERID_FK_INT_ECM nicht in FNDD_LOGIN_USER_MODULE enthalten ")
USERID_FK_INT_ECM = 0
End Try
LOGGER.Debug($"USERID_FK_INT_ECM: {USERID_FK_INT_ECM}")
USER_IS_ADMIN = USER_DT.Rows(0).Item("IS_ADMIN")
USER_LANGUAGE = USER_DT.Rows(0).Item("USER_LANGUAGE")
'clsCURRENT.USER_LANGUAGE = USER_LANGUAGE
USER_DATE_FORMAT = USER_DT.Rows(0).Item("USER_DATE_FORMAT")
oMODULE_ACCES = USER_DT.Rows(0).Item("MODULE_ACCESS")
Dim oWORKING_MODE = USER_DT.Rows(0).Item("WORKING_MODE")
Dim oSplitWorkMode As String() = oWORKING_MODE.Split("#")
' Use For Each loop over words and display them.
Dim oMode As String
For Each oMode In oSplitWorkMode
LOGGER.Debug($"oWorkingMode Parameter: {oMode}")
If oMode.StartsWith("WMMODE") Then
WorkMode_WMMODE = oMode.Replace("WMMODE=", "")
LOGGER.Debug($"oWorkmode WMMODE = [{WorkMode_WMMODE}]")
If WorkMode_WMMODE = "READ" Then
WM_READ_ONLY = True
LOGGER.Info("WINDREAM IS CONFIGURED READ ONLY FOR USER!")
ElseIf WorkMode_WMMODE = "ADD" Then
WM_ADD_NO_DELETE = True
LOGGER.Info("WINDREAM IS CONFIGURED AS ADD-ONLY FOR USER!")
End If
ElseIf oMode.StartsWith("WM_PRAEFIX") Then
WMPATH_PREFIX = oMode.Replace("WM_PRAEFIX=", "")
WMPATH_via_WMA = True
LOGGER.Debug($"oWorkmode WM_PRAEFIX = [{WMPATH_PREFIX}]")
If Not WMPATH_PREFIX.ToUpper.StartsWith(constWMOBJECTS) Then
SHARE_DRIVE_ACTIVE = True
LOGGER.Info($"WM SHARE_DRIVE [{WMPATH_PREFIX}] via WORKING_MODE is active")
End If
ElseIf oMode = "WM_USER_LOGIN" Then
LOGGER.Info($"WM_IMPERSONATE_LOGIN WILL BE SET TO False via WORKING_MODE!")
WM_IMPERSONATE_LOGIN = False
Else
If oMode <> "0" Then
LOGGER.Info($"Wrong oMode: {oMode}")
End If
End If
Next
If SHARE_DRIVE_ACTIVE = True And Len(oWORKING_MODE) = 0 Then
LOGGER.Info("WINDREAM IS CONFIGURED READ ONLY AS No Workmode was configured and Sharedrive is active!")
WM_READ_ONLY = True
End If
If USER_IS_ADMIN And SHARE_DRIVE_ACTIVE = True Then
LOGGER.Info($"User configured as an admin, but SHAREDRIVE ACTIVE - So WM_READ_ONLY = False!")
WM_READ_ONLY = False
End If
End If
If oMODULE_ACCES = False Then
LOGGER.Warn("User '" & USER_USERNAME & "' not authorized for using OrgFlow!")
'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)
Return False
End If
'Me.Close()
oFNSQL = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = " & USER_GUID)
CURRENT_TBPMO_RIGHT_USER = MYDB_ECM.GetDatatable(oFNSQL)
Init_CONN_SWITCH()
DT_CLIENT_USER = MYDB_ECM.GetDatatable("SELECT T.*, T1.LICENSE_PMO, T1.CLIENT_NAME FROM TBDD_CLIENT_USER T,TBDD_CLIENT T1 WHERE T.CLIENT_ID = T1.GUID AND T.USER_ID = " & USER_GUID)
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")
End If
If CLIENT_SELECTED = 99 Then
Dim msg = String.Format("Die Mandantenanmeldung war nicht möglich." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("The client-login was not possible." & vbNewLine & "Please contact the admin.")
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Return False
End If
'Am System anmelden
ClassLicence.Refresh_Licence(CLIENT_SELECTED)
'Am System anmelden
'sql = String.Format("UPDATE TBDD_USER SET LOGGED_IN = 1, LOGGED_WHERE = '{0}' WHERE GUID = {1}", Environment.MachineName, USER_GUID)
MYDB_ECM.ExecuteNonQuery(oFNSQL)
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
If MYDB_ECM.ExecuteNonQuery(oFNSQL) = True Then
End If
Dim ConStringMain As String
ConStringMain = "Main: " & MyConnectionString
oFNSQL = String.Format("INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,CLIENT_ID,MODULE,VERSION_CLIENT,MACHINE_NAME,CONNECTION_STRING) VALUES ({0},{1},'Record-Organizer','{2}','{3}','{4}')", USER_GUID, CLIENT_SELECTED, My.Application.Info.Version.ToString, Environment.MachineName, ConStringMain)
MYDB_ECM.ExecuteNonQuery(oFNSQL)
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
End If
Try
If WM_READ_ONLY = False Then
Try
LOGGER.Debug($"Connecting to windream-Server via DigitalData.Modules.Windream.Windream...")
If WM_IMPERSONATE_LOGIN = False Then
WMMOD = New DigitalData.Modules.Windream.Windream(LOGCONFIG, False, WMDriveLetter, WMPATH_PREFIX, True, WM_SERVER, "", "", WM_DOMAIN)
Else
WMMOD = New DigitalData.Modules.Windream.Windream(LOGCONFIG, False, WMDriveLetter, WMPATH_PREFIX, True, WM_SERVER, WM_USER, WM_USER_PW, WM_DOMAIN)
End If
If IsNothing(WMMOD) Then
MsgBox("Could not connect to windream! Check Your configuration", MsgBoxStyle.Exclamation)
Else
LOGGER.Debug($"..Successfully connected to Modules.Windream!")
End If
Catch ex As Exception
If IsNothing(WMMOD) Then
MsgBox($"Could not connect to windream [{WM_SERVER}]! Check Your configuration and inform Your admin!", MsgBoxStyle.Exclamation)
End If
LOGGER.Error(ex)
LOGGER.Warn("Could not create the login for DigitalData.Modules.Windream.Windream! Setting WM_READ_ONLY = True")
WM_READ_ONLY = True
End Try
If WMMOD.SessionLoggedin = False Then
LOGGER.Warn("Could not create the login for windream - No session created!")
ClassHelper.MSGBOX_Handler("ERROR", "windream-login Error:", "Could not create the login/session!", "orgFLOW will start anyway but be aware that searching and importing won't be possible!")
End If
End If
Catch ex As Exception
LOGGER.Warn("Unexpected Error in WINDREAM MOD.Init: " & ex.Message)
MsgBox("Unexpected Error in Creating windream-Session: " & ex.Message & vbNewLine & "Please inform Your sysadmin!", MsgBoxStyle.Critical)
End Try
If SQL_LIC_NAMED_USER <> "" Then
SQL_LIC_NAMED_USER = SQL_LIC_NAMED_USER.Replace("@MODULE", "Record-Organizer")
SQL_LIC_NAMED_USER = SQL_LIC_NAMED_USER.Replace("@CLIENT", CLIENT_SELECTED.ToString)
oFNSQL = SQL_LIC_NAMED_USER
Else
oFNSQL = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'Record-Organizer' AND CLIENT_ID = {0}", CLIENT_SELECTED)
End If
Dim anzahl = MYDB_ECM.GetScalarValue(oFNSQL)
LICENSES_USED = CInt(anzahl)
LOGGER.Info("NamedUser via SQL_LIC_NAMED_USER in TimeSpan: " & anzahl.ToString)
LOGGER.Info("LICENSE_COUNT: " & LICENSE_COUNT.ToString)
'####
If LICENSE_COUNT <= (LICENSES_USED) And LICENSE_EXPIRED = False Then
Dim msg = String.Format("Die Anzahl der aktuell verbrauchten Lizenzen (" & LICENSES_USED.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 USED licenses (" & LICENSES_USED.ToString & ") exceeds the number of licenses." & vbNewLine &
"Number of licenses: " & LICENSE_COUNT.ToString & vbNewLine & "Please contact Your admin!")
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
LOGGER.Warn("The number of USED licenses (" & LICENSES_USED.ToString & ") exceeds the number of licenses (" & LICENSE_COUNT & ") ")
If USER_IS_ADMIN = False Then
'Anmeldung wieder herausnehmen
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
MYDB_ECM.ExecuteNonQuery(oFNSQL)
LOGGER.Warn(" - logged out the user")
Return False
End If
ElseIf LICENSE_EXPIRED = True Then
MsgBox("Your license has expired!" & vbNewLine & "Last valid date: " & LICENSE_DATE & vbNewLine & "Please contact your admin!", MsgBoxStyle.Exclamation)
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
MYDB_ECM.ExecuteNonQuery(oFNSQL)
Return False
Else
Try
'Die FolderWatch starten
Dim sql1 = "SELECT FOLDER_PATH FROM TBPMO_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & USER_GUID
Dim folderwatch_SCAN = MYDB_ECM.GetScalarValue(sql1)
If Not folderwatch_SCAN Is Nothing Then
CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
If FWSCAN_started = True Then
ClassFolderWatcher.StartStop_FolderWatchSCAN()
End If
End If
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Init_Folderwatch: " & ex.Message, True)
Return False
End Try
End If
'If LICENSE_PROXY = True And clsDatabase.DB_PROXY_INITIALIZED Then
' SQL_FULLTEXT = "SELECT DISTINCT [dwDocID] FROM [dbo].FullText WHERE CONTAINS([Text], '""*@FULLTEXT*""') "
'End If
Dim oSQL = $"SELECT COUNT(GU.GUID) FROM TBDD_GROUPS_USER GU INNER JOIN TBDD_GROUPS G ON GU.GROUP_ID = G.GUID WHERE G.NAME = 'ORGFLOW-Supervisor' AND GU.USER_ID = {USER_GUID}"
USER_IS_SUPERVISOR = MYDB_ECM.GetScalarValue(oSQL)
Return True
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Unexpected Error in InitUserLogin: " & ex.Message)
MsgBox("Unexpected Error in InitUserLogin: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
End Class