FileFlow/Global_Indexer/frmIndexFileList.vb

129 lines
5.1 KiB
VB.net

Imports System.ComponentModel
Imports DevExpress.XtraEditors.Controls
Public Class frmIndexFileList
Private Sub frmIndexFileList_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Me.TBGI_FILES_USERTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBGI_FILES_USERTableAdapter.Fill(Me.MyDataset1.TBGI_FILES_USER, Environment.UserName)
'If MyDataset1.TBGI_FILES_USER.Rows.Count > 0 Then
' CheckedListBoxControl1.DataSource = MyDataset1.TBGI_FILES_USER
' CheckedListBoxControl1.DisplayMember = MyDataset1.TBGI_FILES_USER.Columns("FILENAME_ONLY").ColumnName
' CheckedListBoxControl1.ValueMember = MyDataset1.TBGI_FILES_USER.Columns(0).ColumnName
'End If
CheckedListBoxControl1.DisplayMember = "FileName"
CheckedListBoxControl1.ValueMember = "FileName"
CheckedListBoxControl1.Items.Clear()
For Each oFile As DataRow In MyDataset1.TBGI_FILES_USER.Rows
Dim oFilename = oFile.Item("FILENAME_ONLY")
Dim oPath = oFile.Item("FILENAME2WORK")
Dim oHash = oFile.Item("FILE_HASH")
Dim oHandleType = oFile.Item("HANDLE_TYPE")
Dim oImportDate = ClassIndexFunctions.FileExistsinDropTable(oPath, oHandleType)
Dim oFileExists As Boolean = True
If oImportDate = DateTime.MinValue Then
oFileExists = False
End If
CheckedListBoxControl1.Items.Add(New SplitFile With {
.FileName = oFilename,
.Exists = oFileExists,
.[Date] = oImportDate
})
Next
CheckedListBoxControl1.CheckAll()
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Error in Load Form: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Class SplitFile
Public FileName As String
Public Exists As Boolean
Public [Date] As Date
Public Overrides Function ToString() As String
If Exists Then
Return $"{FileName} (Die Datei wurde bereits am [{[Date]}] verarbeitet)"
Else
Return FileName
End If
End Function
End Class
Private Sub btnstartIndex_Click(sender As Object, e As EventArgs) Handles btnstartIndex.Click
Try
LOGGER.Debug("Starting indexing of {0} files", CheckedListBoxControl1.Items.Count - CheckedListBoxControl1.CheckedItems.Count)
For index = 0 To CheckedListBoxControl1.ItemCount - 1
Dim oRow = MyDataset1.TBGI_FILES_USER.Item(index)
Dim oChecked = CheckedListBoxControl1.GetItemChecked(index)
Dim oFilePath = oRow.Item("FILENAME2WORK")
Dim oHandletype As String = oRow.Item("HANDLE_TYPE")
Dim oGuid = oRow.Item("GUID")
If oChecked = False Then
If oHandletype = "|MSGONLY|" Or oHandletype = "|ATTMNTEXTRACTED|" Then
Try
IO.File.Delete(oFilePath)
Catch ex As Exception
LOGGER.Error(ex)
End Try
End If
LOGGER.Debug("Removing file from user files: [{0}]", oFilePath)
DATABASE_ECM.ExecuteNonQuery("DELETE FROM TBGI_FILES_USER WHERE GUID = " & oGuid)
End If
Next
DialogResult = DialogResult.OK
Catch ex As Exception
LOGGER.Error(ex)
MsgBox("Unexpected Error in Clear Multiple Documents: " & ex.Message, MsgBoxStyle.Critical)
End Try
Me.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
CheckedListBoxControl1.CheckAll()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
CheckedListBoxControl1.UnCheckAll()
End Sub
Private Sub frmIndexFileList_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.BringToFront()
CheckedListBoxControl1.Focus()
End Sub
Private Sub CheckedListBoxControl1_DrawItem(sender As Object, e As DevExpress.XtraEditors.ListBoxDrawItemEventArgs) Handles CheckedListBoxControl1.DrawItem
If e.State = (DrawItemState.Selected Or DrawItemState.Checked) Or e.State = DrawItemState.Checked Then
e.Appearance.BackColor = Color.LightGreen
Else
e.Appearance.BackColor = Color.Transparent
End If
End Sub
Private Sub frmIndexFileList_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
If DialogResult = DialogResult.Cancel Then
Try
DATABASE_ECM.ExecuteNonQuery("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
Catch ex As Exception
MsgBox("Error while deleting User Files: " & ex.Message, MsgBoxStyle.Critical, Text)
LOGGER.Error(ex)
End Try
End If
End Sub
End Class