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_DOCRESULTS(vDT_RESULTLIST_OPTIONS As DataTable, vDT_RESULTLIST_SELVALUES As DataTable, DT_WINDREAM_RESULTLIST As DataTable, ENT_ID As Integer, vType As String, Optional ftString As String = "", Optional BG As Boolean = False) ENTITY_ID = ENT_ID DT_RESULTLIST_OPTIONS = vDT_RESULTLIST_OPTIONS DT_RESULTLIST_SEL_VALUES = vDT_RESULTLIST_SELVALUES Return GET_DOCSEARCH_DATATABLE(vType, ftString, BG) 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(Int32) 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