435 lines
25 KiB
VB.net
435 lines
25 KiB
VB.net
Imports System.IO
|
|
|
|
Public Class ClassDOC_SEARCH
|
|
Private Shared DT_RESULTLIST_OPTIONS As DataTable
|
|
Private Shared DT_RESULTLIST_SEL_VALUES As DataTable
|
|
Private Shared ENTITY_ID As Integer
|
|
Private Shared RECORD_ID As Integer
|
|
Private Shared AsyncRunning As Boolean = False
|
|
Private Shared Function GET_DOCSEARCH_DATATABLE(Type As String, Optional fulltext_String As String = "", Optional BG As Boolean = False)
|
|
Try
|
|
Dim OPTION1
|
|
Dim OPTION2
|
|
Dim OPTION3
|
|
Dim OPTION4
|
|
Dim OPTION5
|
|
Dim VALUE_CONF1
|
|
Dim VALUE_CONF2
|
|
Dim VALUE_CONF3
|
|
Dim VALUE_CONF4
|
|
|
|
If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then
|
|
OPTION1 = 0
|
|
OPTION2 = 0
|
|
OPTION3 = 0
|
|
OPTION4 = 0
|
|
OPTION5 = 0
|
|
Else
|
|
OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL")
|
|
OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL")
|
|
OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL")
|
|
OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL")
|
|
OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL")
|
|
End If
|
|
If DT_RESULTLIST_SEL_VALUES.Rows.Count = 0 Then
|
|
VALUE_CONF1 = 0
|
|
VALUE_CONF2 = 0
|
|
VALUE_CONF3 = 0
|
|
VALUE_CONF4 = 0
|
|
|
|
Else
|
|
VALUE_CONF1 = DT_RESULTLIST_SEL_VALUES.Rows(0).Item("GUID")
|
|
Try
|
|
VALUE_CONF2 = DT_RESULTLIST_SEL_VALUES.Rows(1).Item("GUID")
|
|
Catch ex As Exception
|
|
VALUE_CONF2 = 0
|
|
End Try
|
|
Try
|
|
VALUE_CONF3 = DT_RESULTLIST_SEL_VALUES.Rows(2).Item("GUID")
|
|
Catch ex As Exception
|
|
VALUE_CONF3 = 0
|
|
End Try
|
|
Try
|
|
VALUE_CONF4 = DT_RESULTLIST_SEL_VALUES.Rows(3).Item("GUID")
|
|
Catch ex As Exception
|
|
VALUE_CONF4 = 0
|
|
End Try
|
|
|
|
End If
|
|
|
|
Dim SQL_DOC_SEARCH
|
|
If Type = "ENTITY" Then
|
|
SQL_DOC_SEARCH = String.Format("SELECT T.*," & vbNewLine & _
|
|
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({3},T.DocID,{0}) AS OPTION1," & vbNewLine & _
|
|
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{0}) AS OPTION2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX1') AS DOCIDX1," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX2') AS DOCIDX2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX3') AS DOCIDX3," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX4') AS DOCIDX4," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN1','{1}') AS DROPDOWN1," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN2','{1}') AS DROPDOWN2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN3','{1}') AS DROPDOWN3," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN4','{1}') AS DROPDOWN4" & vbNewLine & _
|
|
"FROM " & vbNewLine & _
|
|
"VWPMO_DOC_SEARCH T" & vbNewLine & _
|
|
"WHERE T.DocID IN (select DISTINCT DOC_ID from TBPMO_DOC_RECORD_LINK T, TBPMO_RECORD T1 WHERE T.RECORD_ID = T1.GUID AND T1.FORM_ID = {0}) " & vbNewLine & _
|
|
"AND T.DocID IN (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {2} AND dwObjectID = T.DocID)", ENTITY_ID, USER_LANGUAGE, USERID_FK_INT_ECM, OPTION1, OPTION2)
|
|
If CURRENT_ENTITYSQL.ToUpper.Contains("WHERE") Then
|
|
Dim where = CURRENT_ENTITYSQL.ToUpper.Replace("SELECT T.*", "SELECT '#' + CONVERT(VARCHAR(10),T.[Record-ID]) + '#'")
|
|
SQL_DOC_SEARCH = SQL_DOC_SEARCH & String.Format(" AND RECORD_ID IN ({0})", where)
|
|
End If
|
|
If BG = True Then
|
|
If IsNothing(CURRENT_DT_DOC_ENTITY_SEARCH) Then
|
|
If AsyncRunning = True Then
|
|
MsgBox("Entity-Search already running in background! Please wait a while!", MsgBoxStyle.Information)
|
|
Return Nothing
|
|
End If
|
|
Dim async As New ClassAsyncReturnDT(SQL_DOC_SEARCH, "LOAD_ENTITY_SEARCH_AT STARTUP")
|
|
async.bw.RunWorkerAsync()
|
|
While async.bw.IsBusy
|
|
Application.DoEvents()
|
|
End While
|
|
CURRENT_DT_DOC_ENTITY_SEARCH = async.dt
|
|
AsyncRunning = False
|
|
End If
|
|
|
|
End If
|
|
|
|
ElseIf Type = "RECORD" Then
|
|
SQL_DOC_SEARCH = String.Format("SELECT T.* ," & vbNewLine & _
|
|
"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine & _
|
|
"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine & _
|
|
"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine & _
|
|
"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN1','{7}') AS DROPDOWN1," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN2','{7}') AS DROPDOWN2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN3','{7}') AS DROPDOWN3," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN4','{7}') AS DROPDOWN4," & vbNewLine & _
|
|
"(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC.GUID) AS VALUE1," & vbNewLine & _
|
|
"(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC1.GUID) AS VALUE2," & vbNewLine & _
|
|
"(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC2.GUID) AS VALUE3," & vbNewLine & _
|
|
"(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC3.GUID) AS VALUE4" & vbNewLine & _
|
|
"FROM " & vbNewLine & _
|
|
"VWPMO_DOC_SEARCH T " & vbNewLine & _
|
|
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine & _
|
|
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine & _
|
|
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbNewLine & _
|
|
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbNewLine & _
|
|
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbNewLine & _
|
|
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbNewLine & _
|
|
"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbNewLine & _
|
|
"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbNewLine & _
|
|
"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbNewLine & _
|
|
"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbNewLine & _
|
|
"WHERE TRL.RECORD_ID = {0} AND TR.FORM_ID = {1} AND T.DocID = (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {6} AND dwObjectID = T.DocID)", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4)
|
|
ElseIf Type = "FULLTEXT" Then
|
|
Dim sqlft = SQL_FULLTEXT
|
|
sqlft = sqlft.Replace("@FULLTEXT", fulltext_String)
|
|
SQL_DOC_SEARCH = String.Format("SELECT T.*," & vbNewLine & _
|
|
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({3},T.DocID,{0}) AS OPTION1," & vbNewLine & _
|
|
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{0}) AS OPTION2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX1') AS DOCIDX1," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX2') AS DOCIDX2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX3') AS DOCIDX3," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX4') AS DOCIDX4," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN1','{1}') AS DROPDOWN1," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN2','{1}') AS DROPDOWN2," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN3','{1}') AS DROPDOWN3," & vbNewLine & _
|
|
"[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{0},'DROPDOWN4','{1}') AS DROPDOWN4" & vbNewLine & _
|
|
"FROM " & vbNewLine & _
|
|
"VWPMO_DOC_SEARCH T" & vbNewLine & _
|
|
"WHERE T.DocID IN (select DISTINCT DOC_ID from TBPMO_DOC_RECORD_LINK T, TBPMO_RECORD T1 WHERE T.RECORD_ID = T1.GUID AND T1.FORM_ID = {0}) " & vbNewLine & _
|
|
"AND T.DocID IN (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {2} AND dwObjectID = T.DocID) AND " & vbNewLine & _
|
|
"T.DocID IN ({5})", ENTITY_ID, USER_LANGUAGE, USERID_FK_INT_ECM, OPTION1, OPTION2, sqlft)
|
|
|
|
End If
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_DOC_SEARCH: " & SQL_DOC_SEARCH, False)
|
|
If BG = True And Type = "ENTITY" Then
|
|
If Not IsNothing(CURRENT_DT_DOC_ENTITY_SEARCH) Then
|
|
Return CURRENT_DT_DOC_ENTITY_SEARCH
|
|
End If
|
|
|
|
End If
|
|
Return ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1)
|
|
Catch ex As Exception
|
|
ClassLogger.Add("Unexpected Error in GET_DOCSEARCH_DATATABLE: " & ex.Message, True)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
Public Shared Function Get_DOC_RESULTTABLE(vDT_RESULTLIST_OPTIONS As DataTable, vDT_RESULTLIST_SELVALUES As DataTable, DT_WINDREAM_RESULTLIST As DataTable, ENT_ID As Integer, REC_ID As Integer, vType As String, Optional ftString As String = "", Optional BG As Boolean = False, Optional Preload As Boolean = False)
|
|
Dim COL_ARRAY_RESULTLIST As List(Of String)
|
|
ENTITY_ID = ENT_ID
|
|
DT_RESULTLIST_OPTIONS = vDT_RESULTLIST_OPTIONS
|
|
DT_RESULTLIST_SEL_VALUES = vDT_RESULTLIST_SELVALUES
|
|
RECORD_ID = REC_ID
|
|
Try
|
|
Dim sw As New Stopwatch
|
|
sw.Start()
|
|
Dim elapsed As Double
|
|
Dim DT_FILE_RESULT As DataTable = GET_DOCSEARCH_DATATABLE(vType, ftString, BG)
|
|
CURRENT_DOC_RESULTS = DT_FILE_RESULT
|
|
If IsNothing(DT_FILE_RESULT) Then
|
|
ClassLogger.Add(">> ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING!!", False)
|
|
Return Nothing
|
|
End If
|
|
elapsed = sw.Elapsed.TotalSeconds
|
|
sw.Stop()
|
|
sw.Reset()
|
|
Console.WriteLine(">> GET_DOCSEARCH_DATATABLE took " & Format(elapsed, "0.000000000") & " seconds")
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> Run GET_DOCSEARCH_DATATABLE took " & Format(elapsed, "0.000000000") & " seconds", False)
|
|
If Preload = True Then
|
|
Return Nothing
|
|
End If
|
|
sw.Start()
|
|
Dim DTGrid As New DataTable
|
|
Dim ColArrayDEFINITION As New List(Of String)
|
|
Try
|
|
'Die Icon Colum erstellen und konfigurieren
|
|
Dim colIcon As New System.Data.DataColumn()
|
|
colIcon.DataType = GetType(Image)
|
|
colIcon.ColumnName = "ICON"
|
|
colIcon.Caption = ""
|
|
DTGrid.Columns.Add(colIcon)
|
|
'
|
|
Dim colPath As New System.Data.DataColumn()
|
|
colPath.DataType = GetType(String)
|
|
colPath.ColumnName = "FULLPATH"
|
|
colPath.Caption = "Fullpath"
|
|
DTGrid.Columns.Add(colPath)
|
|
|
|
Dim colOtype As New System.Data.DataColumn()
|
|
colOtype.DataType = GetType(String)
|
|
colOtype.ColumnName = "OBJECTTYPE"
|
|
colOtype.Caption = "Objecttype"
|
|
DTGrid.Columns.Add(colOtype)
|
|
Dim colDocID As New System.Data.DataColumn()
|
|
colDocID.DataType = GetType(String)
|
|
colDocID.ColumnName = "DocID"
|
|
colDocID.Caption = "DocID"
|
|
DTGrid.Columns.Add(colDocID)
|
|
|
|
|
|
If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count >= 1 Then
|
|
Dim ColCount As Integer = 1
|
|
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
|
|
Dim ColumnName = rw.Item("HEADER_CAPTION")
|
|
Dim Width = rw.Item("WIDTH")
|
|
If IsNothing(Width) Or IsDBNull(Width) Then
|
|
Width = 200
|
|
End If
|
|
'Die Spalte definieren
|
|
DTGrid.Columns.Add(ColumnName)
|
|
ColCount += 1
|
|
Next
|
|
'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
|
|
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
|
|
ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW"))
|
|
Next
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
elapsed = sw.Elapsed.TotalSeconds
|
|
sw.Stop()
|
|
sw.Reset()
|
|
Console.WriteLine(">> DTGrid-Definition took " & Format(elapsed, "0.000000000") & " seconds")
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> DTGrid-Definition took " & Format(elapsed, "0.000000000") & " seconds", False)
|
|
sw.Start()
|
|
COL_ARRAY_RESULTLIST = ColArrayDEFINITION
|
|
|
|
For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows
|
|
Dim fullpath = FILE_ROW.Item("FULL_FILENAME")
|
|
Dim objecttype = FILE_ROW.Item("OBJECTTYPE")
|
|
Dim DocID = FILE_ROW.Item("DocID")
|
|
'Dim Folderpath = Path.GetDirectoryName(fullpath)
|
|
Dim filename = Path.GetFileName(fullpath)
|
|
Dim extension = Path.GetExtension(fullpath)
|
|
' Try
|
|
Dim NewRow As DataRow
|
|
NewRow = DTGrid.NewRow()
|
|
|
|
'Icon zuweisen
|
|
Select Case extension.ToUpper
|
|
Case ".csv".ToUpper
|
|
NewRow.Item(0) = My.Resources.doc_excel_csv
|
|
Case ".txt".ToUpper
|
|
NewRow.Item(0) = My.Resources.text
|
|
Case ".pdf".ToUpper
|
|
NewRow.Item(0) = My.Resources.pdf
|
|
Case ".doc".ToUpper
|
|
NewRow.Item(0) = My.Resources.doc
|
|
Case ".docx".ToUpper
|
|
NewRow.Item(0) = My.Resources.doc
|
|
Case ".xls".ToUpper
|
|
NewRow.Item(0) = My.Resources.xls
|
|
Case ".xlsx".ToUpper
|
|
NewRow.Item(0) = My.Resources.xls
|
|
Case ".ppt".ToUpper
|
|
NewRow.Item(0) = My.Resources.ppt
|
|
Case ".pptx".ToUpper
|
|
NewRow.Item(0) = My.Resources.ppt
|
|
Case ".dwg".ToUpper
|
|
NewRow.Item(0) = My.Resources.dwg
|
|
Case ".dxf".ToUpper
|
|
NewRow.Item(0) = My.Resources.dxf
|
|
Case ".msg".ToUpper
|
|
NewRow.Item(0) = My.Resources.email_go
|
|
Case ".msg".ToUpper
|
|
NewRow.Item(0) = My.Resources.email_go
|
|
Case Else
|
|
NewRow.Item(0) = My.Resources._blank
|
|
End Select
|
|
'Den Filepath mitgeben
|
|
NewRow.Item(1) = fullpath
|
|
NewRow.Item(2) = objecttype
|
|
NewRow.Item(3) = DocID
|
|
Dim i = 4 'Fängt bei 2 an, um die definierten Spalten zu überspringen
|
|
For Each Colname As String In ColArrayDEFINITION
|
|
Dim rowvalue
|
|
Try
|
|
rowvalue = FILE_ROW.Item(Colname)
|
|
'If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue for Colname '" & Colname & "': '" & rowvalue.ToString & "'", False)
|
|
Catch ex As Exception
|
|
If vType = "RECORD" Then ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "'- Error: " & ex.Message)
|
|
If Colname.ToString.StartsWith("doct") Or Colname.ToString.StartsWith("Dokum") Then
|
|
rowvalue = ""
|
|
Else
|
|
If vType <> "RECORD" Then
|
|
rowvalue = "Not displayable in Group-Search"
|
|
Else
|
|
rowvalue = "Error getting rowvalue"
|
|
End If
|
|
|
|
End If
|
|
End Try
|
|
NewRow.Item(i) = rowvalue.ToString
|
|
i += 1
|
|
Next
|
|
DTGrid.Rows.Add(NewRow)
|
|
' Catch ex As Exception
|
|
' ClassLogger.Add("Unexpected Error in CreateRow for doc '" & filename & "- Error: " & ex.Message)
|
|
' End Try
|
|
Next
|
|
|
|
|
|
Return DTGrid
|
|
|
|
elapsed = sw.Elapsed.TotalSeconds
|
|
sw.Stop()
|
|
sw.Reset()
|
|
If LogErrorsOnly = False Then ClassLogger.Add(" >> Run Get_DOC_RESULTTABLE took " & Format(elapsed, "0.000000000") & " seconds", False)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in Get_DOC_RESULTTABLE: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
Public Shared Function REFRESH_DOC_TABLE_RESULTS()
|
|
Try
|
|
Dim execute = "EXEC[dbo].[PRPMO_DOCRESULT_CHANGE]"
|
|
Return ClassDatabase.Execute_non_Query_withConn(execute, 1)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in REFRESH_TABLE_RESULTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
Public Shared Function SET_RECORD_DOCID_LINK(DOC_ID As Integer, RECORD_ID As Integer)
|
|
Try
|
|
Dim ins = String.Format("INSERT INTO TBPMO_DOC_RECORD_LINK (DOC_ID, RECORD_ID,ADDED_WHO) VALUES ({0},{1},'{2}')", DOC_ID, RECORD_ID, Environment.UserName)
|
|
Return ClassDatabase.Execute_non_Query(ins)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in SET_RECORD_DOCID_LINK: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
Public Shared Function SET_WD_RIGHTS(ByVal RESULT_DOCID, ByVal RESULT_DOC_PATH, ByVal ENTITY_ID)
|
|
Try
|
|
If CURRENT_RECORD_ID = 0 Then
|
|
MsgBox("No Record selected - Please select one!", MsgBoxStyle.Exclamation)
|
|
Return False
|
|
End If
|
|
If LogErrorsOnly = False Then ClassLogger.Add("#### SETTING RIGHTS FPOR FILE ######", False)
|
|
DD_Rights.clsLogger.Init(Application.UserAppDataPath() & "\Log", Environment.UserName)
|
|
If DD_Rights.clsDatabase.Init(MyConnectionString) = True Then
|
|
If DD_Rights.ClassRights.Init(ENTITY_ID, LogErrorsOnly) = True Then
|
|
If DD_Rights.ClassRights.Collect_Users(CURRENT_RECORD_ID, ENTITY_ID) = True Then
|
|
'If DD_Rights.ClassRights.TransferRights2Service(RESULT_DOCID, RESULT_DOC_PATH, False) Then
|
|
' Dim sql_select = String.Format("SELECT * FROM VWPMO_RIGHTS_2B_WORKED WHERE DOC_ID = {0}", RESULT_DOCID)
|
|
' Dim DT_RIGHTS2B_CHANGED As DataTable = ClassDatabase.Return_Datatable(sql_select)
|
|
' If Not IsNothing(DT_RIGHTS2B_CHANGED) Then
|
|
' If DT_RIGHTS2B_CHANGED.Rows.Count > 0 Then
|
|
' Try
|
|
' For Each rightRow As DataRow In DT_RIGHTS2B_CHANGED.Rows
|
|
' Dim GUID = rightRow.Item("GUID")
|
|
' Dim USER_ID = rightRow.Item("USER_ID")
|
|
' Dim USERNAME = rightRow.Item("USERNAME").ToString.ToUpper
|
|
' Dim TYPE = rightRow.Item("RIGHT_MODIFY")
|
|
' Dim FILE_RIGHT = rightRow.Item("FILE_RIGHT_ID")
|
|
' Dim upd
|
|
' Dim Result As Boolean
|
|
' Select Case TYPE
|
|
' Case "ADD RIGHT"
|
|
' Result = DD_Rights.ClassRights.SetRightExplicit(RESULT_DOCID, RESULT_DOC_PATH, USERNAME, FILE_RIGHT, ClassWindream.oSession)
|
|
' End Select
|
|
' 'upd = String.Format("UPDATE TBPMO_RIGHTS_WORK_SERVICE SET WORKING = 0 WHERE GUID = {0}", GUID)
|
|
' 'If clsDatabase.Execute_non_Query(upd) = True Then
|
|
' If Result = True Then
|
|
' upd = String.Format("UPDATE TBPMO_RIGHTS_WORK_SERVICE SET WORKED = 1 WHERE GUID = {0}", GUID)
|
|
' ClassDatabase.Execute_non_Query(upd)
|
|
' Dim msg = DD_Rights.ClassRights.MSG_RESULT
|
|
' ClassLogger.Add(msg, False)
|
|
' If DD_Rights.ClassRights.DeleteRightExplicit(RESULT_DOCID, RESULT_DOC_PATH, WD_GROUP1, ClassWindream.oSession) = False Then
|
|
' msg = DD_Rights.ClassRights.MSG_RESULT
|
|
' ClassLogger.Add(msg, False)
|
|
' Else
|
|
' Return True
|
|
' End If
|
|
|
|
' Else
|
|
' Dim msg = String.Format("ERROR: {0} ", DD_Rights.ClassRights.MSG_RESULT)
|
|
' ClassLogger.Add(msg, True)
|
|
' End If
|
|
' 'End If
|
|
|
|
|
|
' Next
|
|
' Catch ex As Exception
|
|
' ClassLogger.Add("Unexpected Error : " & ex.Message, True)
|
|
' End Try
|
|
' End If
|
|
' End If
|
|
'End If
|
|
If DD_Rights.ClassRights.File_DeleteAndSetRight(RESULT_DOCID, RESULT_DOC_PATH, True) Then
|
|
If DD_Rights.ClassRights.MSG_RESULT <> "" Then
|
|
Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT
|
|
If USER_LANGUAGE <> "de-DE" Then
|
|
msg = "Attention: some rights could not be set: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT
|
|
End If
|
|
MsgBox(msg, MsgBoxStyle.Exclamation)
|
|
Return True
|
|
Else
|
|
Return True
|
|
End If
|
|
Else
|
|
Return False
|
|
End If
|
|
Else
|
|
Return False
|
|
End If
|
|
Else
|
|
Return False
|
|
End If
|
|
Else
|
|
Return False
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in SET_WD_RIGHTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
End Class
|