274 lines
11 KiB
VB.net
274 lines
11 KiB
VB.net
Imports System.ServiceModel
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.EDMI.API
|
|
Imports DevExpress.XtraEditors
|
|
Imports DevExpress.XtraEditors.Controls
|
|
Imports System.IO
|
|
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
|
Imports DigitalData.GUIs.Common
|
|
Imports DigitalData.Modules.ZooFlow.State
|
|
|
|
Public Class Form1
|
|
Private _LogConfig As LogConfig
|
|
Private _Logger As Logger
|
|
Private _Client As Client
|
|
|
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
Try
|
|
_LogConfig = New LogConfig(LogConfig.PathType.Temp, Nothing, "EDMIBenchmark")
|
|
_Logger = _LogConfig.GetLogger()
|
|
_Client = New Client(_LogConfig, "172.24.12.39", 9000)
|
|
_Client.Connect()
|
|
|
|
DocumentViewer1.Init(_LogConfig, "21182889975216572111813147150675976632")
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub AddLogMessage(Message As String)
|
|
_Logger.Info(Message)
|
|
listboxLog.Items.Add(Message)
|
|
listboxLog.MakeItemVisible(listboxLog.Items.Count - 1)
|
|
End Sub
|
|
|
|
Private Sub ButtonSelectFiles_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles ButtonSelectFiles.ItemClick
|
|
Dim oDialog As New OpenFileDialog() With {
|
|
.Multiselect = True,
|
|
.CheckFileExists = True
|
|
}
|
|
Dim oResult = oDialog.ShowDialog()
|
|
listboxFiles.Items.Clear()
|
|
|
|
If oResult = DialogResult.OK Then
|
|
For Each oFileName In oDialog.FileNames
|
|
listboxFiles.Items.Add(oFileName)
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
Private Async Sub ButtonImportFiles_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles ButtonImportFiles.ItemClick
|
|
Try
|
|
Dim oFiles As New List(Of String)
|
|
Dim oSWTotal As New Stopwatch()
|
|
oSWTotal.Start()
|
|
Dim oCountFiles As Integer = 0
|
|
For Each oItem As String In listboxFiles.Items
|
|
Dim oSW As New Stopwatch()
|
|
oSW.Start()
|
|
Dim oFileName As String = oItem
|
|
Dim oFileInfo As New FileInfo(oFileName)
|
|
|
|
AddLogMessage($"Importing {oFileInfo.Name}... ({FormatBytes(oFileInfo.Length)})")
|
|
|
|
Dim oObjectId As Long = Await _Client.ImportFileAsync(oFileInfo.FullName, "WichtigesDokument", 1, 0)
|
|
AddLogMessage($"File with Id [{oObjectId}] imported!")
|
|
oCountFiles += 1
|
|
oSW.Stop()
|
|
AddLogMessage($"Import Time: {FormatTime(oSW.ElapsedMilliseconds)}")
|
|
AddLogMessage("")
|
|
Next
|
|
|
|
oSWTotal.Stop()
|
|
AddLogMessage($"Imported {oCountFiles} files - Total Time: {FormatTime(oSWTotal.ElapsedMilliseconds)}")
|
|
MsgBox($"Imported {oCountFiles} files - Total Time: {FormatTime(oSWTotal.ElapsedMilliseconds)}", MsgBoxStyle.Information)
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub buttonClearLog_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonClearLog.ItemClick
|
|
listboxLog.Items.Clear()
|
|
End Sub
|
|
|
|
Private Sub buttonClearFiles_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles buttonClearFiles.ItemClick
|
|
listboxFiles.Items.Clear()
|
|
End Sub
|
|
|
|
Public Function FormatTime(Milliseconds As Integer) As String
|
|
If Milliseconds < 1000 Then
|
|
Return Milliseconds & " ms"
|
|
Else
|
|
Return (Milliseconds / 1000) & " s"
|
|
End If
|
|
End Function
|
|
|
|
Dim DoubleBytes As Double
|
|
Public Function FormatBytes(ByVal BytesCaller As ULong) As String
|
|
|
|
Try
|
|
Select Case BytesCaller
|
|
Case Is >= 1099511627776
|
|
DoubleBytes = CDbl(BytesCaller / 1099511627776) 'TB
|
|
Return FormatNumber(DoubleBytes, 2) & " TB"
|
|
Case 1073741824 To 1099511627775
|
|
DoubleBytes = CDbl(BytesCaller / 1073741824) 'GB
|
|
Return FormatNumber(DoubleBytes, 2) & " GB"
|
|
Case 1048576 To 1073741823
|
|
DoubleBytes = CDbl(BytesCaller / 1048576) 'MB
|
|
Return FormatNumber(DoubleBytes, 2) & " MB"
|
|
Case 1024 To 1048575
|
|
DoubleBytes = CDbl(BytesCaller / 1024) 'KB
|
|
Return FormatNumber(DoubleBytes, 2) & " KB"
|
|
Case 0 To 1023
|
|
DoubleBytes = BytesCaller ' bytes
|
|
Return FormatNumber(DoubleBytes, 2) & " bytes"
|
|
Case Else
|
|
Return ""
|
|
End Select
|
|
Catch
|
|
Return ""
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Sub ButtonLoadFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles ButtonLoadFile.ItemClick
|
|
Try
|
|
Dim oSWTotal As New Stopwatch()
|
|
oSWTotal.Start()
|
|
|
|
If TextboxObjectId.EditValue = "" Then
|
|
MsgBox("Please enter an object id!", MsgBoxStyle.Exclamation, "Uh oh!")
|
|
End If
|
|
|
|
Dim oObjectId As Integer = TextboxObjectId.EditValue
|
|
Dim oResponse As Client.DocumentInfo = _Client.GetDocumentInfo(2, oObjectId)
|
|
|
|
DocumentViewer1.LoadFile(oResponse.FullPath)
|
|
|
|
oSWTotal.Stop()
|
|
AddLogMessage($"File [{oResponse.FullPath}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
|
Catch ex As FaultException
|
|
MsgBox(ex.Reason.ToString, MsgBoxStyle.Critical, "Error from Service")
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
|
|
End Try
|
|
End Sub
|
|
|
|
Private Async Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
|
Try
|
|
Dim oResult As Client.FileList = Await _Client.ListFilesForUserAsync()
|
|
Dim oParams As New DocumentResultParams() With {
|
|
.Results = New List(Of DocumentResult) From {
|
|
New DocumentResult() With {.Title = "lol", .Datatable = oResult.Datatable}
|
|
},
|
|
.WindowGuid = "1",
|
|
.ColumnNames = New ColumnNames() With {
|
|
.FilenameColumn = "FILENAME_EXT",
|
|
.FullPathColumn = "FULL_PATH",
|
|
.ObjectIdColumn = "IDB_OBJ_ID"
|
|
}
|
|
}
|
|
Dim oEnv As New DigitalData.Modules.ZooFlow.Environment() With {
|
|
.Service = New ServiceState() With {
|
|
.IsActive = True,
|
|
.Address = "172.24.12.39:9000"
|
|
},
|
|
.Settings = New SettingsState With {
|
|
.GdPictureKey = "21182889975216572111813147150675976632"
|
|
},
|
|
.User = New UserState() With {
|
|
.UserId = 2
|
|
}
|
|
}
|
|
Dim oForm As New frmDocumentResultList(_LogConfig, oEnv, oParams)
|
|
oForm.Show()
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
|
|
End Try
|
|
End Sub
|
|
|
|
Private Async Sub BindingSource1_CurrentChanged(sender As Object, e As EventArgs) Handles BindingSource1.CurrentChanged
|
|
Dim oRow As DataRow = GridView1.GetFocusedDataRow()
|
|
|
|
If oRow Is Nothing Then
|
|
Exit Sub
|
|
End If
|
|
|
|
Try
|
|
Dim oSWTotal As New Stopwatch()
|
|
oSWTotal.Start()
|
|
|
|
Dim oObjectId As Long = oRow.Item("IDB_OBJ_ID")
|
|
Dim oResponse As Client.StreamedFile = Await _Client.GetFileByObjectIdAsync(oObjectId)
|
|
|
|
DocumentViewer1.LoadFile(oResponse.FileName, oResponse.Stream)
|
|
|
|
oSWTotal.Stop()
|
|
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
|
Catch ex As FaultException
|
|
MsgBox(ex.Reason.ToString, MsgBoxStyle.Critical, "Error from Service")
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
|
|
End Try
|
|
End Sub
|
|
|
|
Private Async Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
|
|
Try
|
|
Dim oSWTotal As New Stopwatch()
|
|
oSWTotal.Start()
|
|
|
|
Dim oObjectId As Integer = TextboxObjectId.EditValue
|
|
|
|
Dim oResponse As Client.StreamedFile = Await _Client.GetFileByObjectIdAsync(oObjectId)
|
|
|
|
DocumentViewer1.LoadFile(oResponse.FileName, oResponse.Stream)
|
|
|
|
oSWTotal.Stop()
|
|
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
|
Catch ex As Exception
|
|
AddLogMessage($"Error while getting file: [{ex.Message}]")
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub BarToggleSwitchItem1_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItem1.CheckedChanged
|
|
If BarToggleSwitchItem1.Checked Then
|
|
If TextboxObjectId.EditValue = "" Then
|
|
Timer1.Stop()
|
|
MsgBox("Please set a ObjectId!", MsgBoxStyle.Critical, Text)
|
|
Else
|
|
Timer1.Start()
|
|
AddLogMessage("Timer Started!")
|
|
End If
|
|
Else
|
|
Timer1.Stop()
|
|
AddLogMessage("Timer Stopped!")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
|
|
Process.Start(_LogConfig.LogDirectory)
|
|
End Sub
|
|
|
|
Private Async Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick
|
|
Try
|
|
Dim oSWTotal As New Stopwatch()
|
|
oSWTotal.Start()
|
|
|
|
If TextboxDatatableName.EditValue = "" Then
|
|
MsgBox("Please enter a Datatable name!", MsgBoxStyle.Exclamation, "Uh oh!")
|
|
End If
|
|
|
|
Dim oDatatableName As String = TextboxDatatableName.EditValue
|
|
Dim oSortExpression As String = TextboxDatatableSort.EditValue
|
|
Dim oFilterExpression As String = TextboxDatatableFilter.EditValue
|
|
Dim oResponse As TableResult = Await _Client.GetDatatableByNameAsync(oDatatableName, oFilterExpression, oSortExpression)
|
|
Dim oDt As DataTable = oResponse.Table
|
|
GridControl1.DataSource = oDt
|
|
oSWTotal.Stop()
|
|
|
|
If oResponse.OK Then
|
|
AddLogMessage(Now.ToLongTimeString + $"DataTable [{oDatatableName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
|
Else
|
|
AddLogMessage(Now.ToLongTimeString + $"DataTable [{oDatatableName}] could not be loaded. Error: {oResponse.ErrorMessage}")
|
|
End If
|
|
Catch ex As FaultException
|
|
MsgBox(ex.Reason.ToString, MsgBoxStyle.Critical, "Error from Service")
|
|
_Client.Reconnect()
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
|
|
_Client.Reconnect()
|
|
End Try
|
|
End Sub
|
|
End Class
|