2021-01-13 15:56:33 +01:00

135 lines
6.6 KiB
VB.net

Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.Logging
Public Class ClassDataASorDB
Private _Logger As Logger
Public Sub New(LogConfig As LogConfig)
_Logger = LogConfig.GetLogger
End Sub
Public Function GetDatatable(pSQL As String, pAppServDT As String, pAppServFilter As String, pAppServSort As String, pForce As String) As DataTable
Try
Dim oReturnDT As DataTable
If APPSERVER_ACTIVE = True And pForce = String.Empty Then
Try
Dim oTableResult As TableResult = _Client.GetDatatableByName(pAppServDT, pAppServFilter, pAppServSort)
oReturnDT = oTableResult.Table
If IsNothing(oReturnDT) Then
_Logger.Warn($"Datatable from ApPServData is nothing [{pAppServDT} - {pAppServFilter}] - Failover via DB")
Return GetDatatable(pSQL, "", "", "", "DB")
End If
Catch ex As Exception
_Logger.Warn($"Error getting ApPServData [{pAppServDT} - {pAppServFilter}]")
Return GetDatatable(pSQL, "", "", "", "DB")
End Try
Else
oReturnDT = Database.GetDatatable(pSQL)
End If
Return oReturnDT
Catch ex As Exception
_Logger.Error(ex)
End Try
End Function
Public Function CheckModuleData()
Try
Dim oSql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','CW',{1})", USER_USERNAME, CLIENT_SELECTED)
Dim DT_CHECKUSER_MODULE As DataTable
DT_CHECKUSER_MODULE = GetDatatable(oSql, "TBDD_USER_MODULE", $"USERNAME = '{USER_USERNAME.ToLower}' AND MODULE_SHORT = 'CW'", "", "")
If DT_CHECKUSER_MODULE.Rows.Count = 0 Then
Logger.Info("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)
Return False
End If
If DT_CHECKUSER_MODULE.Rows.Count = 1 Then
Logger.Info(">> Login Username: " & USER_USERNAME, False)
Logger.Info(">> Login time: " & Now.ToString, False)
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_DATE_FORMAT = DT_CHECKUSER_MODULE.Rows(0).Item("USER_DATE_FORMAT")
USER_IN_MODULE = DT_CHECKUSER_MODULE.Rows(0).Item("MODULE_ACCESS")
USER_IS_ADMIN = DT_CHECKUSER_MODULE.Rows(0).Item("IS_ADMIN")
ADDITIONAL_TITLE = DT_CHECKUSER_MODULE.Rows(0).Item("ADDITIONAL_TITLE")
If ADDITIONAL_TITLE = String.Empty Then
ADDITIONAL_TITLE = My.Application.Info.ProductName
End If
USERCOUNT_LOGGED_IN = DT_CHECKUSER_MODULE.Rows(0).Item("USERCOUNT_LOGGED_IN")
USERCOUNT_LOGGED_IN += 1
Try
WORKING_MODE = DT_CHECKUSER_MODULE.Rows(0).Item("WORKING_MODE")
Catch ex As Exception
WORKING_MODE = ""
End Try
Dim oSplitWorkMode As String() = WORKING_MODE.Split("#")
Dim oMode As String
For Each oMode In oSplitWorkMode
Logger.Debug($"oWorkingMode Parameter: {oMode}")
If oMode = "NO_BASICCONF" Then
BASIC_CONF_VISIBLE = False
ElseIf oMode.StartsWith("NOMATCH_INFO") Then
Try
Dim oResult = oMode.Replace("NOMATCH_INFO=", "")
NOMATCH_INFO = CBool(oResult)
Catch ex As Exception
NOMATCH_INFO = False
End Try
ElseIf oMode.StartsWith("HotkeySearchKey") Then
Try
Dim oResult = oMode.Replace("HotkeySearchKey=", "")
HotkeySearchKey = oResult
HotkeySearchKey_via_Server = True
Catch ex As Exception
HotkeySearchKey = "d"
End Try
Else
Logger.Info($"Wrong oMode: {oMode}")
End If
Next
Return True
Else
Logger.Info(" - 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
End If
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Public Sub Refresh_Connections()
Try
Dim oSql = String.Format("SELECT * FROM TBDD_CONNECTION")
Dim oDatatable As New MyDataset.TBDD_CONNECTIONDataTable()
Dim oResult As DataTable
oResult = GetDatatable(oSql, "TBDD_CONNECTION", "", "", "")
'If APPSERVER_ACTIVE = True Then
' Dim oTableResult As TableResult = _Client.GetDatatableByName("TBDD_CONNECTION")
' oResult = oTableResult.Table
'Else
' oResult = Database.GetDatatable(oSql)
'End If
oDatatable.Merge(oResult)
DT_CONNECTIONS = oDatatable
Catch ex As Exception
Logger.Error(ex)
MsgBox("Unexpected Error in Refresh_Connections: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
End Class