56 lines
2.9 KiB
VB.net
56 lines
2.9 KiB
VB.net
Imports DigitalData.Modules.Logging
|
|
|
|
Namespace ClipboardWatcher
|
|
Public Class ClassProfileLoader
|
|
Private ReadOnly LogConfig As LogConfig
|
|
Private ReadOnly Logger As Logger
|
|
Private Database As ClassDataASorDB
|
|
|
|
Public Sub New(LogConfig As LogConfig, AppServerOrDB As ClassDataASorDB)
|
|
Me.LogConfig = LogConfig
|
|
Me.Logger = LogConfig.GetLogger()
|
|
Me.Database = AppServerOrDB
|
|
End Sub
|
|
|
|
Public Function LoadProfiles() As Boolean
|
|
Try
|
|
Dim oUserId = My.Application.User.UserId
|
|
Dim oWhereClause = $"T1.USER_ID = {oUserId} OR GROUP_ID IN (SELECT DISTINCT GUID FROM TBDD_GROUPS WHERE GUID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {oUserId}))"
|
|
|
|
Dim oProfileSQL As String = $"SELECT DISTINCT GUID, NAME,REGEX_EXPRESSION,COMMENT,PROC_NAME,PROFILE_TYPE FROM VWCW_USER_PROFILE T1 WHERE {oWhereClause}"
|
|
Dim oProcessSQL As String = $"SELECT DISTINCT T.GUID, T.PROFILE_ID,T.PROC_NAME FROM TBCW_PROFILE_PROCESS T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
|
|
Dim oWindowSQL As String = $"SELECT DISTINCT T.* FROM VWCW_PROFILE_REL_WINDOW T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
|
|
Dim oControlSQL As String = $"SELECT DISTINCT T.* FROM VWCW_PROFILE_REL_CONTROL T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
|
|
|
|
Dim oUserProfiles = Database.GetDatatable("DD_ECM", oProfileSQL, "VWCW_USER_PROFILE", "", "", "DB")
|
|
|
|
If oUserProfiles Is Nothing OrElse oUserProfiles.Rows.Count = 0 Then
|
|
My.Application.ClipboardWatcher.Status = State.EnumStatus.NoProfilesConfigured
|
|
End If
|
|
|
|
Dim oProfileProcesses = Database.GetDatatable("DD_ECM", oProcessSQL, "TBCW_PROFILE_PROCESS", "", "", "DB")
|
|
Dim oProfileWindows = Database.GetDatatable("DD_ECM", oWindowSQL, "VWCW_PROFILE_REL_WINDOW", "", "", "DB")
|
|
Dim oProfileControls = Database.GetDatatable("DD_ECM", oControlSQL, "VWCW_PROFILE_REL_CONTROL", "", "", "DB")
|
|
|
|
My.Application.ClipboardWatcher.Status = State.EnumStatus.OK
|
|
My.Application.ClipboardWatcher.UserProfiles = oUserProfiles
|
|
My.Application.ClipboardWatcher.ProfileProcesses = oProfileProcesses
|
|
My.Application.ClipboardWatcher.ProfileWindows = oProfileWindows
|
|
My.Application.ClipboardWatcher.ProfileControls = oProfileControls
|
|
My.Application.ClipboardWatcher.MonitoringActive = True
|
|
|
|
Return True
|
|
|
|
Catch ex As Exception
|
|
My.Application.ClipboardWatcher.Status = State.EnumStatus.Exception
|
|
Logger.Error(ex)
|
|
|
|
Return False
|
|
|
|
End Try
|
|
End Function
|
|
End Class
|
|
|
|
End Namespace
|
|
|