Zooflow: Implement Single file Search Results, Rework client wrt Address parsing
This commit is contained in:
parent
7716a04452
commit
160040535d
@ -32,7 +32,7 @@ Public Class ProfileSearches
|
||||
_Environment = pEnvironment
|
||||
_ClipboardContents = pClipboardContents
|
||||
Try
|
||||
If _Environment.Service.IsActive = True Then
|
||||
If _Environment.Service.Client.IsOnline = True Then
|
||||
Try
|
||||
Dim oSplit() As String = _Environment.Service.Address.Split(":")
|
||||
Dim oAppServerAddress As String = oSplit(0)
|
||||
@ -90,7 +90,7 @@ Public Class ProfileSearches
|
||||
Private Function DoLoadDocumentSearches(ProfileId As Integer) As List(Of Search)
|
||||
Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DOC_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID = {ProfileId} ORDER BY TAB_INDEX"
|
||||
Dim oSearchesDataTable As DataTable
|
||||
If _Environment.Service.IsActive = True Then
|
||||
If _Environment.Service.Client.IsOnline = True Then
|
||||
Dim oTableResult As TableResult = _Client.GetDatatableByName("TBCW_PROF_DOC_SEARCH", $"PROFILE_ID = {ProfileId} AND ACTIVE = 1", "TAB_INDEX")
|
||||
oSearchesDataTable = oTableResult.Table
|
||||
If oSearchesDataTable Is Nothing Then
|
||||
@ -157,7 +157,7 @@ Public Class ProfileSearches
|
||||
Try
|
||||
Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID = {ProfileId} ORDER BY TAB_INDEX"
|
||||
Dim oSearchesDataTable As DataTable
|
||||
If _Environment.Service.IsActive = True Then
|
||||
If _Environment.Service.Client.IsOnline = True Then
|
||||
Dim oTableResult As TableResult = _Client.GetDatatableByName("TBCW_PROF_DATA_SEARCH", $"PROFILE_ID = {ProfileId} AND ACTIVE = 1", "TAB_INDEX")
|
||||
oSearchesDataTable = oTableResult.Table
|
||||
If oSearchesDataTable Is Nothing Then
|
||||
|
||||
@ -12,6 +12,7 @@ Namespace DocumentResultList
|
||||
Public OperationModeOverride As OperationMode = OperationMode.None
|
||||
Public ProfileGuid As Integer
|
||||
Public ShowBackNavigation As Boolean = True
|
||||
Public ShowFileList As Boolean = True
|
||||
End Class
|
||||
|
||||
Public Class DocumentResult
|
||||
|
||||
30
GUIs.Common/frmDocumentResultList.Designer.vb
generated
30
GUIs.Common/frmDocumentResultList.Designer.vb
generated
@ -107,7 +107,7 @@ Partial Class frmDocumentResultList
|
||||
Me.DockPanelMetadata = New DevExpress.XtraBars.Docking.DockPanel()
|
||||
Me.DockPanel3_Container = New DevExpress.XtraBars.Docking.ControlContainer()
|
||||
Me.CtrlObjectPropertyDialog = New DigitalData.GUIs.Common.ctrlObjectPropertyDialog()
|
||||
Me.DockPanelDocViewer = New DevExpress.XtraBars.Docking.DockPanel()
|
||||
Me.DockPanelPreview = New DevExpress.XtraBars.Docking.DockPanel()
|
||||
Me.DockPanel1_Container = New DevExpress.XtraBars.Docking.ControlContainer()
|
||||
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
||||
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@ -151,7 +151,7 @@ Partial Class frmDocumentResultList
|
||||
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.DockPanelMetadata.SuspendLayout()
|
||||
Me.DockPanel3_Container.SuspendLayout()
|
||||
Me.DockPanelDocViewer.SuspendLayout()
|
||||
Me.DockPanelPreview.SuspendLayout()
|
||||
Me.DockPanel1_Container.SuspendLayout()
|
||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
@ -701,7 +701,7 @@ Partial Class frmDocumentResultList
|
||||
'DockManager1
|
||||
'
|
||||
Me.DockManager1.Form = Me
|
||||
Me.DockManager1.RootPanels.AddRange(New DevExpress.XtraBars.Docking.DockPanel() {Me.DockPanelFileList, Me.panelContainerStatus, Me.DockPanelDocViewer})
|
||||
Me.DockManager1.RootPanels.AddRange(New DevExpress.XtraBars.Docking.DockPanel() {Me.DockPanelFileList, Me.panelContainerStatus, Me.DockPanelPreview})
|
||||
Me.DockManager1.TopZIndexControls.AddRange(New String() {"DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl"})
|
||||
'
|
||||
'DockPanelFileList
|
||||
@ -712,7 +712,7 @@ Partial Class frmDocumentResultList
|
||||
resources.ApplyResources(Me.DockPanelFileList, "DockPanelFileList")
|
||||
Me.DockPanelFileList.Name = "DockPanelFileList"
|
||||
Me.DockPanelFileList.Options.ShowCloseButton = False
|
||||
Me.DockPanelFileList.OriginalSize = New System.Drawing.Size(585, 200)
|
||||
Me.DockPanelFileList.OriginalSize = New System.Drawing.Size(590, 200)
|
||||
'
|
||||
'DockPanel2_Container
|
||||
'
|
||||
@ -840,15 +840,15 @@ Partial Class frmDocumentResultList
|
||||
resources.ApplyResources(Me.CtrlObjectPropertyDialog, "CtrlObjectPropertyDialog")
|
||||
Me.CtrlObjectPropertyDialog.Name = "CtrlObjectPropertyDialog"
|
||||
'
|
||||
'DockPanelDocViewer
|
||||
'DockPanelPreview
|
||||
'
|
||||
Me.DockPanelDocViewer.Controls.Add(Me.DockPanel1_Container)
|
||||
Me.DockPanelDocViewer.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill
|
||||
Me.DockPanelDocViewer.ID = New System.Guid("6e5335e5-ba54-49c1-81b3-f174ea4e59ca")
|
||||
resources.ApplyResources(Me.DockPanelDocViewer, "DockPanelDocViewer")
|
||||
Me.DockPanelDocViewer.Name = "DockPanelDocViewer"
|
||||
Me.DockPanelDocViewer.Options.ShowCloseButton = False
|
||||
Me.DockPanelDocViewer.OriginalSize = New System.Drawing.Size(329, 200)
|
||||
Me.DockPanelPreview.Controls.Add(Me.DockPanel1_Container)
|
||||
Me.DockPanelPreview.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill
|
||||
Me.DockPanelPreview.ID = New System.Guid("6e5335e5-ba54-49c1-81b3-f174ea4e59ca")
|
||||
resources.ApplyResources(Me.DockPanelPreview, "DockPanelPreview")
|
||||
Me.DockPanelPreview.Name = "DockPanelPreview"
|
||||
Me.DockPanelPreview.Options.ShowCloseButton = False
|
||||
Me.DockPanelPreview.OriginalSize = New System.Drawing.Size(324, 200)
|
||||
'
|
||||
'DockPanel1_Container
|
||||
'
|
||||
@ -865,7 +865,7 @@ Partial Class frmDocumentResultList
|
||||
Me.AllowFormGlass = DevExpress.Utils.DefaultBoolean.[True]
|
||||
resources.ApplyResources(Me, "$this")
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.Controls.Add(Me.DockPanelDocViewer)
|
||||
Me.Controls.Add(Me.DockPanelPreview)
|
||||
Me.Controls.Add(Me.panelContainerStatus)
|
||||
Me.Controls.Add(Me.DockPanelFileList)
|
||||
Me.Controls.Add(Me.RibbonStatusBar)
|
||||
@ -916,7 +916,7 @@ Partial Class frmDocumentResultList
|
||||
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.DockPanelMetadata.ResumeLayout(False)
|
||||
Me.DockPanel3_Container.ResumeLayout(False)
|
||||
Me.DockPanelDocViewer.ResumeLayout(False)
|
||||
Me.DockPanelPreview.ResumeLayout(False)
|
||||
Me.DockPanel1_Container.ResumeLayout(False)
|
||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
@ -974,7 +974,7 @@ Partial Class frmDocumentResultList
|
||||
Friend WithEvents RibbonPageGroup5 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents RibbonPageGroup6 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents DockManager1 As DevExpress.XtraBars.Docking.DockManager
|
||||
Friend WithEvents DockPanelDocViewer As DevExpress.XtraBars.Docking.DockPanel
|
||||
Friend WithEvents DockPanelPreview As DevExpress.XtraBars.Docking.DockPanel
|
||||
Friend WithEvents DockPanel1_Container As DevExpress.XtraBars.Docking.ControlContainer
|
||||
Friend WithEvents DockPanelMetadata As DevExpress.XtraBars.Docking.DockPanel
|
||||
Friend WithEvents DockPanel3_Container As DevExpress.XtraBars.Docking.ControlContainer
|
||||
|
||||
@ -493,7 +493,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="DocumentViewer1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>323, 459</value>
|
||||
<value>318, 459</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="DocumentViewer1.TabIndex" type="System.Int32, mscorlib">
|
||||
@ -515,7 +515,7 @@
|
||||
<value>3, 26</value>
|
||||
</data>
|
||||
<data name="DockPanel1_Container.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>323, 459</value>
|
||||
<value>318, 459</value>
|
||||
</data>
|
||||
<data name="DockPanel1_Container.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -527,30 +527,30 @@
|
||||
<value>DevExpress.XtraBars.Docking.ControlContainer, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>DockPanel1_Container.Parent" xml:space="preserve">
|
||||
<value>DockPanelDocViewer</value>
|
||||
<value>DockPanelPreview</value>
|
||||
</data>
|
||||
<data name=">>DockPanel1_Container.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="DockPanelDocViewer.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>585, 158</value>
|
||||
<data name="DockPanelPreview.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>590, 158</value>
|
||||
</data>
|
||||
<data name="DockPanelDocViewer.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>329, 489</value>
|
||||
<data name="DockPanelPreview.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>324, 489</value>
|
||||
</data>
|
||||
<data name="DockPanelDocViewer.Text" xml:space="preserve">
|
||||
<data name="DockPanelPreview.Text" xml:space="preserve">
|
||||
<value>Vorschau</value>
|
||||
</data>
|
||||
<data name=">>DockPanelDocViewer.Name" xml:space="preserve">
|
||||
<value>DockPanelDocViewer</value>
|
||||
<data name=">>DockPanelPreview.Name" xml:space="preserve">
|
||||
<value>DockPanelPreview</value>
|
||||
</data>
|
||||
<data name=">>DockPanelDocViewer.Type" xml:space="preserve">
|
||||
<data name=">>DockPanelPreview.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.Docking.DockPanel, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>DockPanelDocViewer.Parent" xml:space="preserve">
|
||||
<data name=">>DockPanelPreview.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>DockPanelDocViewer.ZOrder" xml:space="preserve">
|
||||
<data name=">>DockPanelPreview.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="txtCheckedOutWho.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@ -774,7 +774,7 @@
|
||||
<value>3, 26</value>
|
||||
</data>
|
||||
<data name="DockPanel2_Container.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>578, 460</value>
|
||||
<value>583, 460</value>
|
||||
</data>
|
||||
<data name="DockPanel2_Container.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -795,7 +795,7 @@
|
||||
<value>0, 158</value>
|
||||
</data>
|
||||
<data name="DockPanelFileList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>585, 489</value>
|
||||
<value>590, 489</value>
|
||||
</data>
|
||||
<data name="DockPanelFileList.Text" xml:space="preserve">
|
||||
<value>Ergebnisse</value>
|
||||
@ -1397,7 +1397,7 @@
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="GridControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>568, 460</value>
|
||||
<value>573, 460</value>
|
||||
</data>
|
||||
<data name="GridControl1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -1568,7 +1568,7 @@
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="SplitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>578, 460</value>
|
||||
<value>583, 460</value>
|
||||
</data>
|
||||
<data name="SplitContainerControl1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
|
||||
@ -117,7 +117,7 @@ Public Class frmDocumentResultList
|
||||
Private Function GetOperationMode() As OperationMode
|
||||
Dim oOperationMode As OperationMode
|
||||
|
||||
If Environment.Service.IsActive AndAlso Environment.Service.Address <> String.Empty Then
|
||||
If Environment.Service.Client.IsOnline AndAlso Environment.Service.Address <> String.Empty Then
|
||||
oOperationMode = OperationMode.WithAppServer
|
||||
Else
|
||||
oOperationMode = OperationMode.NoAppServer
|
||||
@ -205,6 +205,8 @@ Public Class frmDocumentResultList
|
||||
panelContainerStatus.Visibility = Docking.DockVisibility.Hidden
|
||||
End If
|
||||
|
||||
|
||||
|
||||
' Hide the complete Navigation Ribbon Group if desired
|
||||
RibbonPageGroup_Navigation.Visible = Params.ShowBackNavigation
|
||||
|
||||
@ -217,6 +219,15 @@ Public Class frmDocumentResultList
|
||||
chkGridShowGrouping.Checked = LayoutManager.GetGroupPanelVisible()
|
||||
chkGridShowTitle.Checked = LayoutManager.GetBandTitleVisible()
|
||||
|
||||
' This needs to done be after loading the grid
|
||||
' so we can set the row handle and start loading the (only) file
|
||||
If Params.ShowFileList = False Then
|
||||
DockPanelFileList.HideImmediately()
|
||||
GridView1.FocusedRowHandle = 0
|
||||
Else
|
||||
DockPanelFileList.Show()
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
ErrorHandler.ShowErrorMessage(ex, "Form Load", "Error while loading results")
|
||||
|
||||
@ -449,9 +460,9 @@ Public Class frmDocumentResultList
|
||||
#End Region
|
||||
|
||||
Private Function InitAppServer() As Boolean
|
||||
Dim oSplit As List(Of String) = Environment.Service.Address.Split(":").ToList()
|
||||
Dim oAddress As String = oSplit.Item(0)
|
||||
Dim oPort As Integer = oSplit.Item(1)
|
||||
Dim oServerAddress = Client.ParseServiceAddress(Environment.Service.Client.ServerAddress)
|
||||
Dim oAddress As String = oServerAddress.Item1
|
||||
Dim oPort As Integer = oServerAddress.Item2
|
||||
|
||||
Client = New Client(LogConfig, oAddress, oPort)
|
||||
ControlManager = New AttributeControls(LogConfig, Environment, Client)
|
||||
@ -1113,4 +1124,8 @@ Public Class frmDocumentResultList
|
||||
|
||||
GridBuilder.WithFontSizeDelta(Config.Config.GridFontSizeDelta)
|
||||
End Sub
|
||||
|
||||
Private Sub RibbonControl_Click(sender As Object, e As EventArgs) Handles RibbonControl.Click
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
@ -13,7 +13,7 @@ Public Class Form1
|
||||
Try
|
||||
_LogConfig = New LogConfig(LogConfig.PathType.Temp, Nothing, "EDMIBenchmark")
|
||||
_Logger = _LogConfig.GetLogger()
|
||||
_Client = New Client(_LogConfig, "172.24.12.39", 9000)
|
||||
_Client = New Client(_LogConfig, "172.24.12.39:9000")
|
||||
_Client.Connect()
|
||||
|
||||
DocumentViewer1.Init(_LogConfig, "21182889975216572111813147150675976632")
|
||||
|
||||
@ -23,7 +23,7 @@ Partial Class frmSQLDesigner
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSQLDesigner))
|
||||
Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
||||
Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
||||
Me.Label14 = New System.Windows.Forms.Label()
|
||||
Me.cmbConnection = New System.Windows.Forms.ComboBox()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
@ -211,8 +211,8 @@ Partial Class frmSQLDesigner
|
||||
'
|
||||
Me.dgvPlaceholders.AllowUserToAddRows = False
|
||||
Me.dgvPlaceholders.AllowUserToDeleteRows = False
|
||||
DataGridViewCellStyle4.BackColor = System.Drawing.Color.Cyan
|
||||
Me.dgvPlaceholders.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle4
|
||||
DataGridViewCellStyle1.BackColor = System.Drawing.Color.Cyan
|
||||
Me.dgvPlaceholders.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1
|
||||
Me.dgvPlaceholders.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
||||
Me.dgvPlaceholders.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.colPlaceholder, Me.colReplace})
|
||||
Me.dgvPlaceholders.Enabled = False
|
||||
@ -280,7 +280,7 @@ Partial Class frmSQLDesigner
|
||||
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemComboBox1, Me.RepositoryItemLookUpEdit1, Me.RepositoryItemLookUpEdit2, Me.RepositoryItemLookUpEdit3})
|
||||
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||
Me.RibbonControl1.Size = New System.Drawing.Size(995, 158)
|
||||
Me.RibbonControl1.Size = New System.Drawing.Size(997, 158)
|
||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||
'
|
||||
'BarButtonItem1
|
||||
@ -365,10 +365,10 @@ Partial Class frmSQLDesigner
|
||||
'RibbonStatusBar1
|
||||
'
|
||||
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiInfo)
|
||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 564)
|
||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 588)
|
||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(995, 24)
|
||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(997, 24)
|
||||
'
|
||||
'RibbonPage2
|
||||
'
|
||||
@ -385,7 +385,7 @@ Partial Class frmSQLDesigner
|
||||
Me.GridControl1.MainView = Me.GridView1
|
||||
Me.GridControl1.MenuManager = Me.RibbonControl1
|
||||
Me.GridControl1.Name = "GridControl1"
|
||||
Me.GridControl1.Size = New System.Drawing.Size(691, 133)
|
||||
Me.GridControl1.Size = New System.Drawing.Size(693, 157)
|
||||
Me.GridControl1.TabIndex = 124
|
||||
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
|
||||
'
|
||||
@ -399,7 +399,7 @@ Partial Class frmSQLDesigner
|
||||
Me.Appearance.Options.UseFont = True
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 17.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(995, 588)
|
||||
Me.ClientSize = New System.Drawing.Size(997, 612)
|
||||
Me.Controls.Add(Me.GridControl1)
|
||||
Me.Controls.Add(Me.lblAttributeAuto)
|
||||
Me.Controls.Add(Me.btnAddAttributeAuto)
|
||||
|
||||
@ -52,9 +52,7 @@ Namespace My
|
||||
|
||||
My.Application.Service.Client = New Client(LogConfig, oAppServerAddress, oAppServerPort)
|
||||
If Not IsNothing(My.Application.Service.Client) Then
|
||||
If My.Application.Service.Client.Connect() Then
|
||||
My.Application.Service.IsActive = True
|
||||
End If
|
||||
My.Application.Service.Client.Connect()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
_Logger.Warn($"Could not initialize the AppServer: {ex.Message}")
|
||||
|
||||
@ -119,15 +119,13 @@ Public Class ClassInit
|
||||
End If
|
||||
End If
|
||||
|
||||
MyApplication.Service.Address = My.SystemConfig.AppServerConfig
|
||||
Dim oServerData = Client.ParseServiceAddress(My.SystemConfig.AppServerConfig)
|
||||
' These Properties need to be set directly on
|
||||
|
||||
My.Application.Service.Client = New Client(LogConfig, oServerData.Item1, oServerData.Item2)
|
||||
My.Application.Service.Address = My.SystemConfig.AppServerConfig
|
||||
My.Application.Service.Client = New Client(LogConfig, My.SystemConfig.AppServerConfig)
|
||||
|
||||
If Not IsNothing(My.Application.Service.Client) Then
|
||||
If My.Application.Service.Client.Connect() Then
|
||||
MyApplication.Service.IsActive = True
|
||||
End If
|
||||
My.Application.Service.Client.Connect()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
|
||||
@ -8,8 +8,6 @@ Public Class SearchRunner
|
||||
|
||||
Private Const SEARCH_FACT_DATE_DEFAULT As String = "ADDED_WHEN"
|
||||
|
||||
Private Environment As Environment
|
||||
|
||||
Private Const CREATED_TOMORROW As String = "TOMORROW"
|
||||
Private Const CREATED_TODAY As String = "ECM_CREATED_TODAY"
|
||||
Private Const CREATED_YESTERDAY As String = "ECM_CREATED_YESTERDAY"
|
||||
@ -49,18 +47,30 @@ Public Class SearchRunner
|
||||
Public Property BaseSearchSQL As String
|
||||
Public Property ExplicitDate As Boolean = False
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment)
|
||||
Private Environment As Environment
|
||||
Private SearchTitle As String
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment, pSearchTitle As String)
|
||||
MyBase.New(pLogConfig)
|
||||
Environment = pEnvironment
|
||||
SearchTitle = pSearchTitle
|
||||
End Sub
|
||||
|
||||
Public Async Function Run(pSearchTerm As String) As Threading.Tasks.Task(Of SearchResult)
|
||||
Return Await Run(pSearchTerm, Nothing, Nothing)
|
||||
End Function
|
||||
|
||||
Public Async Function Run(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Threading.Tasks.Task(Of SearchResult)
|
||||
If pDateFrom.Equals(Date.MinValue) = False Then
|
||||
ExplicitDate = True
|
||||
End If
|
||||
|
||||
Dim oSearchTerm = pSearchTerm
|
||||
Dim oParams = New DocumentResultList.Params() With {
|
||||
.WindowGuid = "FlowSearch",
|
||||
.WindowGuid = SearchTitle,
|
||||
.WindowTitle = GetResultWindowString(oSearchTerm),
|
||||
.OperationModeOverride = Modules.ZooFlow.Constants.OperationMode.ZooFlow,
|
||||
.ProfileGuid = 354522,
|
||||
.ProfileGuid = 35452,
|
||||
.ColumnNames = New DocumentResultList.ColumnNames With {
|
||||
.ObjectIdColumn = "DocID"
|
||||
},
|
||||
@ -88,9 +98,14 @@ Public Class SearchRunner
|
||||
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
|
||||
If oDTDocResult.Rows.Count > 0 Then
|
||||
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
|
||||
.Title = "FlowSearchXYZ",
|
||||
.Title = SearchTitle,
|
||||
.Datatable = oDTDocResult
|
||||
})
|
||||
|
||||
If oDTDocResult.Rows.Count = 1 Then
|
||||
oParams.ShowFileList = False
|
||||
End If
|
||||
|
||||
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
|
||||
|
||||
' TODO: Implement, not needed right now
|
||||
|
||||
@ -117,7 +117,7 @@ Public Class frmFlowSearch1
|
||||
|
||||
Private Sub frmFlowSearch1_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Logger = My.LogConfig.GetLogger()
|
||||
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment)
|
||||
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch")
|
||||
|
||||
Try
|
||||
If My.Application.User.Language = "de-DE" Then
|
||||
|
||||
@ -13,7 +13,7 @@ Public Class frmFlowSearch2
|
||||
End If
|
||||
Next
|
||||
|
||||
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment)
|
||||
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch")
|
||||
SearchRunner.BaseSearchSQL = BaseSearchSQL
|
||||
|
||||
Dim osql = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{My.Application.User.Language}',{My.Application.User.UserId}"
|
||||
|
||||
@ -670,6 +670,10 @@
|
||||
<Project>{40384b94-1f94-4249-9a5a-d02e0b346738}</Project>
|
||||
<Name>GlobalIndexer</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\MessageBoxEx\MessageBoxEx.vbproj">
|
||||
<Project>{ef29f400-be45-4283-9d18-ca7acd9accc9}</Project>
|
||||
<Name>MessageBoxEx</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Modules.Base\Base\Base.vbproj">
|
||||
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
||||
<Name>Base</Name>
|
||||
|
||||
@ -19,6 +19,7 @@ Imports DigitalData.Modules.Language
|
||||
Imports DevExpress.LookAndFeel
|
||||
Imports System.Threading.Tasks
|
||||
Imports System.Threading
|
||||
Imports DigitalData.Controls.MessageBoxEx
|
||||
|
||||
Public Class frmFlowForm
|
||||
#Region "Sidebar DllImport"
|
||||
@ -488,8 +489,11 @@ Public Class frmFlowForm
|
||||
End Sub
|
||||
|
||||
Sub ExitZooflow()
|
||||
Dim oResult As DialogResult = MessageBox.Show("Are you sure you want to close ZooFlow?", "Exit Zooflow", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
If oResult = DialogResult.Yes Then
|
||||
Dim oMsgBox As New MsgBoxEx("Are you sure you want to close ZooFlow?", "Exit Zooflow", MessageBoxIcon.Question)
|
||||
oMsgBox.SetButtons("Yes", "No")
|
||||
oMsgBox.ShowDialog()
|
||||
|
||||
If oMsgBox.Result = MsgBoxEx.DialogBoxResult.Button1 Then
|
||||
Close()
|
||||
Else
|
||||
ESCHitCount = 0
|
||||
@ -1153,6 +1157,12 @@ Public Class frmFlowForm
|
||||
.Title = GetResultWindowString(pSearchText),
|
||||
.Datatable = oDTDocResult
|
||||
})
|
||||
|
||||
' disable file list if we have only one document
|
||||
If oDTDocResult.Rows.Count = 1 Then
|
||||
oParams.ShowFileList = False
|
||||
End If
|
||||
|
||||
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
|
||||
oForm.Show()
|
||||
oForm.BringToFront()
|
||||
@ -1272,5 +1282,9 @@ Public Class frmFlowForm
|
||||
Dim oForm = New frmFlowSearch2()
|
||||
oForm.Show()
|
||||
End Sub
|
||||
|
||||
Private Sub PictureEditQuicksearch1_EditValueChanged(sender As Object, e As EventArgs) Handles PictureEditQuicksearch1.EditValueChanged
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ Public Class frmServiceConfig
|
||||
txtServicePort.Text = oAddress.Item2
|
||||
End If
|
||||
|
||||
If My.Application.Service.IsActive Then
|
||||
If My.Application.Service.Client.IsOnline Then
|
||||
txtStatus.Text = STATUS_CONNECTED
|
||||
End If
|
||||
|
||||
|
||||
2
MessageBoxEx/MsgBoxEx.Designer.vb
generated
2
MessageBoxEx/MsgBoxEx.Designer.vb
generated
@ -75,7 +75,7 @@ Partial Class MsgBoxEx
|
||||
Me.messageLbl.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.messageLbl.Location = New System.Drawing.Point(58, 10)
|
||||
Me.messageLbl.Name = "messageLbl"
|
||||
Me.messageLbl.Size = New System.Drawing.Size(415, 75)
|
||||
Me.messageLbl.Size = New System.Drawing.Size(415, 63)
|
||||
Me.messageLbl.TabIndex = 19
|
||||
Me.messageLbl.Text = "[Message]"
|
||||
'
|
||||
|
||||
@ -1,21 +1,22 @@
|
||||
Public Class MsgBoxEx
|
||||
Public Sub New(ByVal message As String, ByVal title As String)
|
||||
Public Sub New(message As String, title As String)
|
||||
Me.New(message, title, MessageBoxIcon.None)
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal message As String, ByVal title As String, ByVal icon As MessageBoxIcon)
|
||||
Public Sub New(message As String, title As String, icon As MessageBoxIcon)
|
||||
Me.New(message, title, getMessageBoxIcon(icon))
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal message As String, ByVal title As String, ByVal icon As Icon)
|
||||
Public Sub New(message As String, title As String, icon As Icon)
|
||||
InitializeComponent()
|
||||
Me.messageLbl.Text = message
|
||||
Me.Text = title
|
||||
Me.m_sysIcon = icon
|
||||
If Me.m_sysIcon Is Nothing Then Me.messageLbl.Location = New System.Drawing.Point(FORM_X_MARGIN, FORM_Y_MARGIN)
|
||||
messageLbl.Text = message
|
||||
Text = title
|
||||
m_sysIcon = icon
|
||||
If m_sysIcon Is Nothing Then messageLbl.Location = New System.Drawing.Point(FORM_X_MARGIN, FORM_Y_MARGIN)
|
||||
SetButtons("OK")
|
||||
End Sub
|
||||
|
||||
Private Shared Function getMessageBoxIcon(ByVal icon As MessageBoxIcon) As Icon
|
||||
Private Shared Function getMessageBoxIcon(icon As MessageBoxIcon) As Icon
|
||||
Dim oIcon As Icon = Nothing
|
||||
|
||||
Select Case icon
|
||||
@ -39,7 +40,7 @@
|
||||
Private m_minWidth As Integer
|
||||
Private m_minHeight As Integer
|
||||
|
||||
Public Sub SetMinSize(ByVal width As Integer, ByVal height As Integer)
|
||||
Public Sub SetMinSize(width As Integer, height As Integer)
|
||||
m_minWidth = width
|
||||
m_minHeight = height
|
||||
End Sub
|
||||
@ -51,18 +52,18 @@
|
||||
drs(i) = DialogResult.None
|
||||
Next
|
||||
|
||||
Me.SetButtons(names, drs)
|
||||
SetButtons(names, drs)
|
||||
End Sub
|
||||
|
||||
Public Sub SetButtons(ByVal names As String(), ByVal results As DialogResult())
|
||||
Me.SetButtons(names, results, 1)
|
||||
Public Sub SetButtons(names As String(), results As DialogResult())
|
||||
SetButtons(names, results, 1)
|
||||
End Sub
|
||||
|
||||
Public Sub SetButtons(ByVal names As String(), ByVal results As DialogResult(), ByVal def As Integer)
|
||||
Public Sub SetButtons(names As String(), results As DialogResult(), def As Integer)
|
||||
If names Is Nothing Then Throw New ArgumentNullException("btnText", "Button Text is null")
|
||||
Dim count As Integer = names.Length
|
||||
If count < 1 OrElse count > 3 Then Throw New ArgumentException("Invalid number of buttons. Must be between 1 and 3.")
|
||||
m_minButtonRowWidth += setButtonParams(btn1, names(0), If(def = 1, 1, 2), results(0))
|
||||
m_minButtonRowWidth = setButtonParams(btn1, names(0), If(def = 1, 1, 2), results(0))
|
||||
|
||||
If count > 1 Then
|
||||
m_minButtonRowWidth += setButtonParams(btn2, names(1), If(def = 2, 1, 3), results(1)) + BUTTON_SPACE
|
||||
@ -75,7 +76,7 @@
|
||||
|
||||
Private m_minButtonRowWidth As Integer
|
||||
|
||||
Private Shared Function setButtonParams(ByVal btn As Button, ByVal text As String, ByVal tab As Integer, ByVal dr As DialogResult) As Integer
|
||||
Private Shared Function setButtonParams(btn As Button, text As String, tab As Integer, dr As DialogResult) As Integer
|
||||
btn.Text = text
|
||||
btn.Visible = True
|
||||
btn.DialogResult = dr
|
||||
@ -83,22 +84,22 @@
|
||||
Return btn.Size.Width
|
||||
End Function
|
||||
|
||||
Public Sub SetCheckbox(ByVal text As String)
|
||||
Me.SetCheckbox(text, False)
|
||||
Public Sub SetCheckbox(text As String)
|
||||
SetCheckbox(text, False)
|
||||
End Sub
|
||||
|
||||
Public Sub SetCheckbox(ByVal text As String, ByVal chcked As Boolean)
|
||||
Me.chkBx.Visible = True
|
||||
Me.chkBx.Text = text
|
||||
Me.chkBx.Checked = chcked
|
||||
Me.m_minButtonRowWidth += Me.chkBx.Size.Width + CHECKBOX_SPACE
|
||||
Public Sub SetCheckbox(text As String, chcked As Boolean)
|
||||
chkBx.Visible = True
|
||||
chkBx.Text = text
|
||||
chkBx.Checked = chcked
|
||||
m_minButtonRowWidth += chkBx.Size.Width + CHECKBOX_SPACE
|
||||
End Sub
|
||||
|
||||
Private Sub DialogBox_Load(ByVal sender As Object, ByVal e As EventArgs)
|
||||
If Not btn1.Visible Then Me.SetButtons(New String() {"OK"}, New DialogResult() {DialogResult.OK})
|
||||
Private Sub DialogBox_Load(sender As Object, e As EventArgs)
|
||||
If Not btn1.Visible Then SetButtons(New String() {"OK"}, New DialogResult() {DialogResult.OK})
|
||||
m_minButtonRowWidth += 2 * FORM_X_MARGIN
|
||||
Me.setDialogSize()
|
||||
Me.setButtonRowLocations()
|
||||
setDialogSize()
|
||||
setButtonRowLocations()
|
||||
End Sub
|
||||
|
||||
Const FORM_Y_MARGIN As Integer = 10
|
||||
@ -108,19 +109,19 @@
|
||||
Const TEXT_Y_MARGIN As Integer = 30
|
||||
|
||||
Private Sub setDialogSize()
|
||||
Dim requiredWidth As Integer = Me.messageLbl.Location.X + Me.messageLbl.Size.Width + FORM_X_MARGIN
|
||||
Dim requiredWidth As Integer = messageLbl.Location.X + messageLbl.Size.Width + FORM_X_MARGIN
|
||||
requiredWidth = If(requiredWidth > m_minButtonRowWidth, requiredWidth, m_minButtonRowWidth)
|
||||
Dim requiredHeight As Integer = Me.messageLbl.Location.Y + Me.messageLbl.Size.Height - Me.btn2.Location.Y + Me.ClientSize.Height + TEXT_Y_MARGIN
|
||||
Dim minSetWidth As Integer = If(Me.ClientSize.Width > Me.m_minWidth, Me.ClientSize.Width, Me.m_minWidth)
|
||||
Dim minSetHeight As Integer = If(Me.ClientSize.Height > Me.m_minHeight, Me.ClientSize.Height, Me.m_minHeight)
|
||||
Dim requiredHeight As Integer = messageLbl.Location.Y + messageLbl.Size.Height - btn2.Location.Y + ClientSize.Height + TEXT_Y_MARGIN
|
||||
Dim minSetWidth As Integer = If(ClientSize.Width > m_minWidth, ClientSize.Width, m_minWidth)
|
||||
Dim minSetHeight As Integer = If(ClientSize.Height > m_minHeight, ClientSize.Height, m_minHeight)
|
||||
Dim s As Size = New Size()
|
||||
s.Width = If(requiredWidth > minSetWidth, requiredWidth, minSetWidth)
|
||||
s.Height = If(requiredHeight > minSetHeight, requiredHeight, minSetHeight)
|
||||
Me.ClientSize = s
|
||||
ClientSize = s
|
||||
End Sub
|
||||
|
||||
Private Sub setButtonRowLocations()
|
||||
Dim formWidth As Integer = Me.ClientRectangle.Width
|
||||
Dim formWidth As Integer = ClientRectangle.Width
|
||||
Dim x As Integer = formWidth - FORM_X_MARGIN
|
||||
Dim y As Integer = btn1.Location.Y
|
||||
|
||||
@ -138,12 +139,12 @@
|
||||
|
||||
x -= btn1.Size.Width
|
||||
btn1.Location = New Point(x, y)
|
||||
If Me.chkBx.Visible Then Me.chkBx.Location = New Point(FORM_X_MARGIN, Me.chkBx.Location.Y)
|
||||
If chkBx.Visible Then chkBx.Location = New Point(FORM_X_MARGIN, chkBx.Location.Y)
|
||||
End Sub
|
||||
|
||||
Private m_sysIcon As Icon
|
||||
|
||||
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
|
||||
Protected Overrides Sub OnPaint(e As PaintEventArgs)
|
||||
If m_sysIcon IsNot Nothing Then
|
||||
Dim g As Graphics = e.Graphics
|
||||
g.DrawIconUnstretched(m_sysIcon, New Rectangle(FORM_X_MARGIN, FORM_Y_MARGIN, m_sysIcon.Width, m_sysIcon.Height))
|
||||
@ -154,7 +155,7 @@
|
||||
|
||||
Public ReadOnly Property CheckboxChecked As Boolean
|
||||
Get
|
||||
Return Me.chkBx.Checked
|
||||
Return chkBx.Checked
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@ -166,7 +167,7 @@
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Sub btn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn1.Click, btn2.Click, btn3.Click
|
||||
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn1.Click, btn2.Click, btn3.Click
|
||||
If sender.Equals(btn1) Then
|
||||
m_result = DialogBoxResult.Button1
|
||||
ElseIf sender.Equals(btn2) Then
|
||||
|
||||
@ -15,22 +15,24 @@ Public Class Client
|
||||
' Helper Classes
|
||||
Private ReadOnly LogConfig As LogConfig
|
||||
Private ReadOnly Logger As Logger
|
||||
Private ReadOnly FileEx As Filesystem.File
|
||||
Private ReadOnly ChannelManager As Channel
|
||||
|
||||
' Runtime Variables
|
||||
Private ReadOnly ServerAddress As String
|
||||
Private ReadOnly ServerPort As Integer
|
||||
Private _ServerAddress As ServerAddressStruct
|
||||
Private _ClientConfig As GlobalStateClientConfiguration
|
||||
|
||||
' Channel
|
||||
Private ReadOnly ChannelFactory As ChannelFactory(Of IEDMIServiceChannel)
|
||||
Private Channel As IEDMIServiceChannel
|
||||
Private _CachedTables As New List(Of String)
|
||||
Private _IsOnline As Boolean
|
||||
Private _Channel As IEDMIServiceChannel
|
||||
|
||||
' Update Timer
|
||||
Private WithEvents UpdateTimer As New Timers.Timer
|
||||
|
||||
' Public Variables
|
||||
Public CachedTables As New List(Of String)
|
||||
Public ReadOnly Property CachedTables
|
||||
Get
|
||||
Return _CachedTables
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ClientConfig As GlobalStateClientConfiguration
|
||||
Get
|
||||
@ -42,24 +44,27 @@ Public Class Client
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property IsOnline As Boolean
|
||||
Get
|
||||
Return _IsOnline
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ServerAddress As String
|
||||
Get
|
||||
Return $"{_ServerAddress.Host}:{_ServerAddress.Port}"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Parse a IPAddress:Port String into its parts
|
||||
''' </summary>
|
||||
''' <param name="AddressWithOptionalPort"></param>
|
||||
''' <param name="AddressWithOptionalPort">A Server Address, for example: 192.168.1.50, 192.168.1.50:9000, 192.168.1.50;9000</param>
|
||||
Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer)
|
||||
Dim oSplit() As String = AddressWithOptionalPort.Split(":"c)
|
||||
Dim oAppServerAddress As String = oSplit(0)
|
||||
Dim oAppServerPort As Integer
|
||||
Dim oConnection As New Connection()
|
||||
Dim oAddress As ServerAddressStruct = oConnection.ParseServiceAddress(AddressWithOptionalPort)
|
||||
|
||||
If oSplit.Length = 2 Then
|
||||
If Integer.TryParse(oSplit(1), oAppServerPort) Then
|
||||
oAppServerPort = DEFAULT_SERVICE_PORT
|
||||
End If
|
||||
Else
|
||||
oAppServerPort = DEFAULT_SERVICE_PORT
|
||||
End If
|
||||
|
||||
Return New Tuple(Of String, Integer)(oAppServerAddress, oAppServerPort)
|
||||
Return New Tuple(Of String, Integer)(oAddress.Host, oAddress.Port)
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
@ -70,25 +75,18 @@ Public Class Client
|
||||
Public Sub New(pLogConfig As LogConfig, pServiceAdress As String)
|
||||
LogConfig = pLogConfig
|
||||
Logger = pLogConfig.GetLogger()
|
||||
FileEx = New Filesystem.File(pLogConfig)
|
||||
|
||||
Dim oServiceAddress As String = pServiceAdress
|
||||
Dim oAddressArray() As String
|
||||
|
||||
If oServiceAddress.Contains(";") Then
|
||||
oAddressArray = oServiceAddress.Split(";")
|
||||
Else
|
||||
oAddressArray = oServiceAddress.Split(":")
|
||||
End If
|
||||
|
||||
UpdateTimer.Interval = 60 * 1000 * UPDATE_INTERVAL_IN_MINUTES
|
||||
UpdateTimer.Start()
|
||||
|
||||
Try
|
||||
ServerAddress = oAddressArray(0)
|
||||
ServerPort = oAddressArray(1)
|
||||
Logger.Debug("Connecting to Service at: [{0}]", ServerAddress)
|
||||
ChannelFactory = GetChannelFactory(ServerAddress, ServerPort)
|
||||
Dim oConnection = New Connection()
|
||||
_ServerAddress = oConnection.ParseServiceAddress(pServiceAdress)
|
||||
ChannelManager = New Channel(pLogConfig, _ServerAddress)
|
||||
AddHandler ChannelManager.Reconnect, AddressOf Reconnect
|
||||
|
||||
Logger.Debug("Ready for connection to Service at: [{0}:{1}]", _ServerAddress.Host, _ServerAddress.Port)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
@ -97,60 +95,60 @@ Public Class Client
|
||||
''' <summary>
|
||||
''' Creates a new EDMI Client object
|
||||
''' </summary>
|
||||
''' <param name="LogConfig">LogConfig object</param>
|
||||
''' <param name="IPAddress">The IP address to connect to</param>
|
||||
''' <param name="PortNumber">The Port number to use for the connection</param>
|
||||
Public Sub New(LogConfig As LogConfig, IPAddress As String, PortNumber As Integer)
|
||||
Me.LogConfig = LogConfig
|
||||
Logger = LogConfig.GetLogger()
|
||||
FileEx = New Filesystem.File(LogConfig)
|
||||
''' <param name="pLogConfig">LogConfig object</param>
|
||||
''' <param name="pIPAddress">The IP address to connect to</param>
|
||||
''' <param name="pPortNumber">The Port number to use for the connection</param>
|
||||
Public Sub New(pLogConfig As LogConfig, pIPAddress As String, pPortNumber As Integer)
|
||||
LogConfig = pLogConfig
|
||||
Logger = pLogConfig.GetLogger()
|
||||
|
||||
UpdateTimer.Interval = 60 * 1000 * UPDATE_INTERVAL_IN_MINUTES
|
||||
UpdateTimer.Start()
|
||||
|
||||
Try
|
||||
Logger.Debug("Connecting to Service at: [{0}]", IPAddress)
|
||||
ChannelFactory = GetChannelFactory(IPAddress, PortNumber)
|
||||
Dim oConnection = New Connection()
|
||||
_ServerAddress = oConnection.ParseServiceAddress(pIPAddress, pPortNumber)
|
||||
ChannelManager = New Channel(pLogConfig, _ServerAddress)
|
||||
AddHandler ChannelManager.Reconnect, AddressOf Reconnect
|
||||
|
||||
Logger.Debug("Ready for connection to Service at: [{0}:{1}]", _ServerAddress.Host, _ServerAddress.Port)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Function GetChannelFactory(pIPAddress As String, pPortNumber As Integer) As ChannelFactory(Of IEDMIServiceChannel)
|
||||
Dim oBinding = API.Channel.GetBinding()
|
||||
Dim oAddress = New EndpointAddress($"net.tcp://{pIPAddress}:{pPortNumber}/DigitalData/Services/Main")
|
||||
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
|
||||
Return oFactory
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Connect to the service
|
||||
''' </summary>
|
||||
''' <returns>True if connection was successful, false otherwise</returns>
|
||||
Public Function Connect() As Boolean
|
||||
Try
|
||||
Channel = GetChannel()
|
||||
_Channel = ChannelManager.GetChannel()
|
||||
|
||||
Logger.Debug("Opening channel..")
|
||||
Channel.Open()
|
||||
_Channel.Open()
|
||||
|
||||
Dim oResponse = Channel.GetClientConfig()
|
||||
Dim oResponse = _Channel.GetClientConfig()
|
||||
If oResponse.OK Then
|
||||
_ClientConfig = oResponse.ClientConfig
|
||||
Else
|
||||
Logger.Warn("Client Configuration could not be loaded: [{0}]", oResponse.ErrorMessage)
|
||||
End If
|
||||
|
||||
Logger.Info($"Connection to AppService {ServerAddress} successfully established!")
|
||||
Logger.Info($"Connection to AppService [{ServerAddress}] successfully established!")
|
||||
|
||||
_IsOnline = True
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
_IsOnline = False
|
||||
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Aborts the channel and creates a new connection
|
||||
''' </summary>
|
||||
@ -158,9 +156,11 @@ Public Class Client
|
||||
Logger.Warn("Connection faulted. Trying to reconnect..")
|
||||
|
||||
Try
|
||||
Channel.Abort()
|
||||
Channel = GetChannel()
|
||||
Channel.Open()
|
||||
_Channel.Abort()
|
||||
_Channel = ChannelManager.GetChannel()
|
||||
_Channel.Open()
|
||||
|
||||
_IsOnline = True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
@ -168,14 +168,14 @@ Public Class Client
|
||||
|
||||
Private Async Function UpdateTimer_Elapsed(sender As Object, e As Timers.ElapsedEventArgs) As Task Handles UpdateTimer.Elapsed
|
||||
Try
|
||||
Dim oTables As String() = Await Channel.GetCachedTablesAsync()
|
||||
CachedTables = oTables.
|
||||
Dim oTables As String() = Await _Channel.GetCachedTablesAsync()
|
||||
_CachedTables = oTables.
|
||||
Select(Function(table) table.ToUpper).
|
||||
ToList()
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Update of CachedTable was not successful!")
|
||||
Logger.Error(ex)
|
||||
CachedTables = New List(Of String)
|
||||
_CachedTables = New List(Of String)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
@ -190,7 +190,7 @@ Public Class Client
|
||||
''' <returns>The ObjectId of the newly generated filesystem object</returns>
|
||||
Public Async Function NewFileAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pIDBDoctypeId As Long, Optional pImportOptions As Options.NewFileOptions = Nothing) As Task(Of Long)
|
||||
Try
|
||||
Dim oNewFile As New Modules.IDB.NewFile(LogConfig, Channel)
|
||||
Dim oNewFile As New Modules.IDB.NewFile(LogConfig, _Channel)
|
||||
Return Await oNewFile.RunAsync(pFilePath, pObjectStoreName, pObjectKind, pIDBDoctypeId, pImportOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -202,7 +202,7 @@ Public Class Client
|
||||
|
||||
Public Async Function UpdateFileAsync(pObjectId As Long, pFilePath As String, Optional pImportOptions As Options.UpdateFileOptions = Nothing) As Task(Of Long)
|
||||
Try
|
||||
Dim oUpdateFile As New Modules.IDB.UpdateFile(LogConfig, Channel)
|
||||
Dim oUpdateFile As New Modules.IDB.UpdateFile(LogConfig, _Channel)
|
||||
Return Await oUpdateFile.RunAsync(pFilePath, pObjectId, pImportOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -214,7 +214,7 @@ Public Class Client
|
||||
|
||||
Public Async Function SetObjectStateAsync(pObjectId As Long, pState As String, Optional pOptions As Options.SetObjectStateOptions = Nothing) As Task(Of Boolean)
|
||||
Try
|
||||
Dim oSetObjectState As New Modules.IDB.SetObjectState(LogConfig, Channel)
|
||||
Dim oSetObjectState As New Modules.IDB.SetObjectState(LogConfig, _Channel)
|
||||
Return Await oSetObjectState.RunAsync(pObjectId, pState, pOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -226,7 +226,7 @@ Public Class Client
|
||||
|
||||
Public Async Function SetAttributeValueAsync(pObjectId As Long, pName As String, pValue As Object, Optional pOptions As Options.SetAttributeValueOptions = Nothing) As Task(Of Boolean)
|
||||
Try
|
||||
Dim oSetAttributeValue As New Modules.IDB.SetAttributeValue(LogConfig, Channel)
|
||||
Dim oSetAttributeValue As New Modules.IDB.SetAttributeValue(LogConfig, _Channel)
|
||||
Return Await oSetAttributeValue.RunAsync(pObjectId, pName, pValue, pOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -238,7 +238,7 @@ Public Class Client
|
||||
|
||||
Public Async Function CheckOutFile(pObjectId As Long, pComment As String, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
|
||||
Try
|
||||
Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, Channel)
|
||||
Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, _Channel)
|
||||
Return Await oCheckOutFile.RunAsync(pObjectId, pComment, pOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -250,7 +250,7 @@ Public Class Client
|
||||
|
||||
Public Async Function CheckOutFile(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
|
||||
Try
|
||||
Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, Channel)
|
||||
Dim oCheckOutFile As New Modules.IDB.CheckOutFile(LogConfig, _Channel)
|
||||
Return Await oCheckOutFile.RunAsync(pObjectId, String.Empty, pOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -262,7 +262,7 @@ Public Class Client
|
||||
|
||||
Public Async Function CheckInFile(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
|
||||
Try
|
||||
Dim oCheckInFile As New Modules.IDB.CheckInFile(LogConfig, Channel)
|
||||
Dim oCheckInFile As New Modules.IDB.CheckInFile(LogConfig, _Channel)
|
||||
Return Await oCheckInFile.RunAsync(pObjectId, pOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -280,7 +280,7 @@ Public Class Client
|
||||
pIDBDoctypeId As String,
|
||||
Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of ImportFileResponse)
|
||||
Try
|
||||
Dim oImportFile As New Modules.IDB.ImportFile(LogConfig, Channel)
|
||||
Dim oImportFile As New Modules.IDB.ImportFile(LogConfig, _Channel)
|
||||
Return Await oImportFile.RunAsync(pFilePath, pAttributeValues, pObjectStoreName, pObjectKind, pIDBDoctypeId, pImportOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -290,7 +290,6 @@ Public Class Client
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
Public Async Function Globix_ImportFileAsync(
|
||||
pFilePath As String,
|
||||
pProfileId As Integer,
|
||||
@ -300,7 +299,7 @@ Public Class Client
|
||||
pIDBDoctypeId As String,
|
||||
Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of Globix_ImportFileResponse)
|
||||
Try
|
||||
Dim oImportFile As New Modules.Globix.ImportFile(LogConfig, Channel)
|
||||
Dim oImportFile As New Modules.Globix.ImportFile(LogConfig, _Channel)
|
||||
Return Await oImportFile.RunAsync(pFilePath, pProfileId, pAttributeValues, pObjectStoreName, pObjectKind, pIDBDoctypeId, pImportOptions)
|
||||
|
||||
Catch ex As Exception
|
||||
@ -312,7 +311,7 @@ Public Class Client
|
||||
|
||||
Public Function Zooflow_GetFileObject(pObjectId As Long, pLoadFileContents As Boolean) As FileObject
|
||||
Try
|
||||
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, Channel)
|
||||
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, _Channel)
|
||||
Dim oFileObject = oGetFileObject.Run(pObjectId, pLoadFileContents)
|
||||
Return oFileObject
|
||||
Catch ex As Exception
|
||||
@ -472,7 +471,7 @@ Public Class Client
|
||||
.Language = pOptions.Language
|
||||
}
|
||||
}
|
||||
Dim oResponse = Channel.GetAttributeValue(oArgs)
|
||||
Dim oResponse = _Channel.GetAttributeValue(oArgs)
|
||||
If oResponse.OK = False Then
|
||||
Return New VariableValue()
|
||||
|
||||
@ -536,7 +535,7 @@ Public Class Client
|
||||
Dim oAttributes As New List(Of ObjectAttribute)
|
||||
|
||||
Try
|
||||
Dim oResult As TableResult = Channel.ReturnDatatable_MSSQL_IDB($"EXEC [PRIDB_GET_VALUE_DT] {pObjectId}, '{pLanguage}'")
|
||||
Dim oResult As TableResult = _Channel.ReturnDatatable_MSSQL_IDB($"EXEC [PRIDB_GET_VALUE_DT] {pObjectId}, '{pLanguage}'")
|
||||
|
||||
If oResult.OK = False Then
|
||||
Throw New ApplicationException(oResult.ErrorMessage)
|
||||
@ -577,7 +576,7 @@ Public Class Client
|
||||
|
||||
Dim oSql = $"DECLARE @NEW_OBJ_MD_ID BIGINT
|
||||
EXEC PRIDB_NEW_OBJ_DATA({pObjectId}, '{pAttributeName}', '{oUsername}', '{pValue}', '{oLanguage}', 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT)"
|
||||
Dim oResult = Channel.ExecuteNonQuery_MSSQL_IDB(oSql)
|
||||
Dim oResult = _Channel.ExecuteNonQuery_MSSQL_IDB(oSql)
|
||||
|
||||
If oResult.OK = False Then
|
||||
Logger.Warn("Error while deleting Term object")
|
||||
@ -594,7 +593,7 @@ Public Class Client
|
||||
|
||||
Dim oIdIsForeign As Integer = 1
|
||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {pObjectId},'{pAttributeName}','{pTerm2Delete}','{oUsername}','{oLanguage}',{oIdIsForeign}"
|
||||
Dim oResult = Channel.ExecuteNonQuery_MSSQL_IDB(oDELSQL)
|
||||
Dim oResult = _Channel.ExecuteNonQuery_MSSQL_IDB(oDELSQL)
|
||||
|
||||
If oResult.OK = False Then
|
||||
Logger.Warn("Error while deleting Term object")
|
||||
@ -611,7 +610,7 @@ Public Class Client
|
||||
#Region "GetDatatable"
|
||||
Public Function GetDatatableFromIDB(pSQL As String) As GetDatatableResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnDatatable(New GetDatatableRequest() With {
|
||||
Dim oResponse = _Channel.ReturnDatatable(New GetDatatableRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.IDB
|
||||
})
|
||||
@ -624,7 +623,7 @@ Public Class Client
|
||||
|
||||
Public Function GetDatatableFromECM(pSQL As String) As GetDatatableResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnDatatable(New GetDatatableRequest() With {
|
||||
Dim oResponse = _Channel.ReturnDatatable(New GetDatatableRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.ECM
|
||||
})
|
||||
@ -637,7 +636,7 @@ Public Class Client
|
||||
|
||||
Public Function GetDatatableFromConnection(pSQL As String, pConnectionId As Integer) As GetDatatableResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnDatatable(New GetDatatableRequest() With {
|
||||
Dim oResponse = _Channel.ReturnDatatable(New GetDatatableRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.None,
|
||||
.ConnectionId = pConnectionId
|
||||
@ -651,7 +650,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetDatatableFromIDBAsync(pSQL As String) As Task(Of GetDatatableResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
|
||||
Dim oResponse = Await _Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.IDB
|
||||
})
|
||||
@ -664,7 +663,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetDatatableFromECMAsync(pSQL As String) As Task(Of GetDatatableResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
|
||||
Dim oResponse = Await _Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.ECM
|
||||
})
|
||||
@ -677,7 +676,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetDatatableFromConnectionAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetDatatableResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
|
||||
Dim oResponse = Await _Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.None,
|
||||
.ConnectionId = pConnectionId
|
||||
@ -693,7 +692,7 @@ Public Class Client
|
||||
#Region "GetScalarValue"
|
||||
Public Function GetScalarValueFromIDB(pSQL As String) As GetScalarValueResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnScalarValue(New GetScalarValueRequest() With {
|
||||
Dim oResponse = _Channel.ReturnScalarValue(New GetScalarValueRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.IDB
|
||||
})
|
||||
@ -706,7 +705,7 @@ Public Class Client
|
||||
|
||||
Public Function GetScalarValueFromECM(pSQL As String) As GetScalarValueResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnScalarValue(New GetScalarValueRequest() With {
|
||||
Dim oResponse = _Channel.ReturnScalarValue(New GetScalarValueRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.ECM
|
||||
})
|
||||
@ -719,7 +718,7 @@ Public Class Client
|
||||
|
||||
Public Function GetScalarValueFromConnection(pSQL As String, pConnectionId As Integer) As GetScalarValueResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnScalarValue(New GetScalarValueRequest() With {
|
||||
Dim oResponse = _Channel.ReturnScalarValue(New GetScalarValueRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.None,
|
||||
.ConnectionId = pConnectionId
|
||||
@ -733,7 +732,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetScalarValueFromIDBAsync(pSQL As String) As Task(Of GetScalarValueResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
|
||||
Dim oResponse = Await _Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.IDB
|
||||
})
|
||||
@ -746,7 +745,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetScalarValueFromECMAsync(pSQL As String) As Task(Of GetScalarValueResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
|
||||
Dim oResponse = Await _Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.ECM
|
||||
})
|
||||
@ -759,7 +758,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetScalarValueFromConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of GetScalarValueResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
|
||||
Dim oResponse = Await _Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.None,
|
||||
.ConnectionId = pConnectionId
|
||||
@ -775,7 +774,7 @@ Public Class Client
|
||||
#Region "ExecuteNonQuery"
|
||||
Public Function ExecuteNonQueryFromIDB(pSQL As String) As ExecuteNonQueryResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With {
|
||||
Dim oResponse = _Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.IDB
|
||||
})
|
||||
@ -788,7 +787,7 @@ Public Class Client
|
||||
|
||||
Public Function ExecuteNonQueryFromECM(pSQL As String) As ExecuteNonQueryResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With {
|
||||
Dim oResponse = _Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.ECM
|
||||
})
|
||||
@ -801,7 +800,7 @@ Public Class Client
|
||||
|
||||
Public Function ExecuteNonQueryFromConnection(pSQL As String, pConnectionId As Integer) As ExecuteNonQueryResponse
|
||||
Try
|
||||
Dim oResponse = Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With {
|
||||
Dim oResponse = _Channel.ExecuteNonQuery(New ExecuteNonQueryRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.None,
|
||||
.ConnectionId = pConnectionId
|
||||
@ -815,7 +814,7 @@ Public Class Client
|
||||
|
||||
Public Async Function ExecuteNonQueryFromIDBAsync(pSQL As String) As Task(Of ExecuteNonQueryResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With {
|
||||
Dim oResponse = Await _Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.IDB
|
||||
})
|
||||
@ -828,7 +827,7 @@ Public Class Client
|
||||
|
||||
Public Async Function ExecuteNonQueryFromECMAsync(pSQL As String) As Task(Of ExecuteNonQueryResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With {
|
||||
Dim oResponse = Await _Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.ECM
|
||||
})
|
||||
@ -841,7 +840,7 @@ Public Class Client
|
||||
|
||||
Public Async Function ExecuteNonQueryFromConnectionAsync(pSQL As String, pConnectionId As Integer) As Task(Of ExecuteNonQueryResponse)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With {
|
||||
Dim oResponse = Await _Channel.ExecuteNonQueryAsync(New ExecuteNonQueryRequest() With {
|
||||
.SqlCommand = pSQL,
|
||||
.NamedDatabase = DatabaseName.None,
|
||||
.ConnectionId = pConnectionId
|
||||
@ -857,7 +856,7 @@ Public Class Client
|
||||
|
||||
Public Function GetDatatableByName(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As TableResult
|
||||
Try
|
||||
Dim oResponse = Channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn)
|
||||
Dim oResponse = _Channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn)
|
||||
Return oResponse
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
@ -867,7 +866,7 @@ Public Class Client
|
||||
|
||||
Public Async Function GetDatatableByNameAsync(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As Task(Of TableResult)
|
||||
Try
|
||||
Dim oResponse = Await Channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn)
|
||||
Dim oResponse = Await _Channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn)
|
||||
Return oResponse
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
@ -885,7 +884,7 @@ Public Class Client
|
||||
''' <returns></returns>
|
||||
Public Function GetDocumentInfo(UserId As Long, ObjectId As Long) As DocumentInfo
|
||||
Try
|
||||
Dim oResponse As DocumentInfoResponse = Channel.GetFileInfoByObjectId(New DocumentInfoRequest With {
|
||||
Dim oResponse As DocumentInfoResponse = _Channel.GetFileInfoByObjectId(New DocumentInfoRequest With {
|
||||
.ObjectId = ObjectId,
|
||||
.UserId = UserId
|
||||
})
|
||||
@ -916,7 +915,7 @@ Public Class Client
|
||||
.ObjectId = ObjectId,
|
||||
.UserId = UserId
|
||||
}
|
||||
Dim oResponse As DocumentInfoResponse = Await Channel.GetFileInfoByObjectIdAsync(oParams)
|
||||
Dim oResponse As DocumentInfoResponse = Await _Channel.GetFileInfoByObjectIdAsync(oParams)
|
||||
|
||||
Return New DocumentInfo With {
|
||||
.AccessRight = oResponse.FileRight,
|
||||
@ -930,23 +929,7 @@ Public Class Client
|
||||
|
||||
|
||||
#Region "Private Functions"
|
||||
''' <summary>
|
||||
''' Creates a channel and adds a Faulted-Handler
|
||||
''' </summary>
|
||||
''' <returns>A channel object</returns>
|
||||
Private Function GetChannel() As IEDMIServiceChannel
|
||||
Try
|
||||
Logger.Debug("...Creating channel..")
|
||||
Dim oChannel = ChannelFactory.CreateChannel()
|
||||
|
||||
AddHandler oChannel.Faulted, AddressOf Reconnect
|
||||
|
||||
Return oChannel
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function GetUserLanguage(pOverrideLanguage As String) As String
|
||||
Return NotNull(pOverrideLanguage, Threading.Thread.CurrentThread.CurrentUICulture.Name)
|
||||
|
||||
@ -1,24 +1,21 @@
|
||||
Imports System.ServiceModel
|
||||
Imports System.Xml
|
||||
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class Channel
|
||||
' Infos about MaxBufferSize and MaxBufferPoolSize
|
||||
' https://social.msdn.microsoft.com/Forums/vstudio/en-US/d6e234d3-942f-4e9d-8470-32618d3f3212/maxbufferpoolsize-vs-maxbuffersize?forum=wcf
|
||||
Inherits BaseClass
|
||||
|
||||
Public Const MAX_RECEIVED_MESSAGE_SIZE = 2147483647 ' 1GB
|
||||
Public Const MAX_BUFFER_SIZE = 104857600 ' 100MB
|
||||
Public Const MAX_BUFFER_POOL_SIZE = 1048576 ' 1MB
|
||||
Private ReadOnly ChannelFactory As ChannelFactory(Of IEDMIServiceChannel)
|
||||
|
||||
Public Const MAX_CONNECTIONS = 500
|
||||
Public Const MAX_ARRAY_LENGTH = 2147483647
|
||||
Public Const MAX_STRING_CONTENT_LENGTH = 2147483647
|
||||
Public Event Reconnect As EventHandler
|
||||
|
||||
Public Shared Function GetBinding(Optional AuthenticationMode As TcpClientCredentialType = TcpClientCredentialType.Windows) As NetTcpBinding
|
||||
Return New NetTcpBinding() With {
|
||||
.MaxReceivedMessageSize = MAX_RECEIVED_MESSAGE_SIZE,
|
||||
.MaxBufferSize = MAX_BUFFER_SIZE,
|
||||
.MaxBufferPoolSize = MAX_BUFFER_POOL_SIZE,
|
||||
.MaxReceivedMessageSize = Constants.ChannelSettings.MAX_RECEIVED_MESSAGE_SIZE,
|
||||
.MaxBufferSize = Constants.ChannelSettings.MAX_BUFFER_SIZE,
|
||||
.MaxBufferPoolSize = Constants.ChannelSettings.MAX_BUFFER_POOL_SIZE,
|
||||
.TransferMode = TransferMode.Streamed,
|
||||
.Security = New NetTcpSecurity() With {
|
||||
.Mode = SecurityMode.Transport,
|
||||
@ -27,11 +24,41 @@ Public Class Channel
|
||||
}
|
||||
},
|
||||
.ReaderQuotas = New XmlDictionaryReaderQuotas() With {
|
||||
.MaxArrayLength = MAX_ARRAY_LENGTH,
|
||||
.MaxStringContentLength = MAX_STRING_CONTENT_LENGTH
|
||||
.MaxArrayLength = Constants.ChannelSettings.MAX_ARRAY_LENGTH,
|
||||
.MaxStringContentLength = Constants.ChannelSettings.MAX_STRING_CONTENT_LENGTH
|
||||
}
|
||||
}
|
||||
End Function
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pServerAddress As ServerAddressStruct)
|
||||
MyBase.New(pLogConfig)
|
||||
ChannelFactory = GetChannelFactory(pServerAddress)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Creates a channel and adds a Faulted-Handler
|
||||
''' </summary>
|
||||
''' <returns>A channel object</returns>
|
||||
Public Function GetChannel() As IEDMIServiceChannel
|
||||
Try
|
||||
Logger.Debug("Creating channel.")
|
||||
Dim oChannel = ChannelFactory.CreateChannel()
|
||||
|
||||
AddHandler oChannel.Faulted, Sub() RaiseEvent Reconnect(Me, Nothing)
|
||||
|
||||
Return oChannel
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function GetChannelFactory(pServerAddress As ServerAddressStruct) As ChannelFactory(Of IEDMIServiceChannel)
|
||||
Dim oBinding = GetBinding()
|
||||
Dim oAddress = New EndpointAddress($"net.tcp://{pServerAddress.Host}:{pServerAddress.Port}/DigitalData/Services/Main")
|
||||
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
|
||||
Return oFactory
|
||||
End Function
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
31
Modules.EDMIAPI/Client/Connection.vb
Normal file
31
Modules.EDMIAPI/Client/Connection.vb
Normal file
@ -0,0 +1,31 @@
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class Connection
|
||||
Public Function ParseServiceAddress(pHost As String, pPort As Integer) As ServerAddressStruct
|
||||
Dim oAddress As ServerAddressStruct
|
||||
|
||||
oAddress.Host = pHost
|
||||
oAddress.Port = pPort
|
||||
|
||||
Return oAddress
|
||||
End Function
|
||||
|
||||
Public Function ParseServiceAddress(pAddress As String) As ServerAddressStruct
|
||||
Dim oAddressList As List(Of String)
|
||||
Dim oAddress As ServerAddressStruct
|
||||
|
||||
If pAddress.Contains(";"c) Then
|
||||
oAddressList = pAddress.Split(";"c).ToList
|
||||
ElseIf pAddress.Contains(":"c) Then
|
||||
oAddressList = pAddress.Split(":"c).ToList
|
||||
Else
|
||||
oAddressList = New List(Of String) From {pAddress, Constants.DEFAULT_SERVICE_PORT}
|
||||
End If
|
||||
|
||||
oAddress.Host = oAddressList.First()
|
||||
oAddress.Port = oAddressList.Item(1)
|
||||
|
||||
Return oAddress
|
||||
End Function
|
||||
End Class
|
||||
4
Modules.EDMIAPI/Client/ServerAddressStruct.vb
Normal file
4
Modules.EDMIAPI/Client/ServerAddressStruct.vb
Normal file
@ -0,0 +1,4 @@
|
||||
Public Structure ServerAddressStruct
|
||||
Public Host As String
|
||||
Public Port As Integer
|
||||
End Structure
|
||||
@ -31,4 +31,19 @@
|
||||
Public Const VECTOR_STRING = "VECTOR STRING"
|
||||
Public Const VECTOR_INTEGER = "VECTOR INTEGER"
|
||||
End Class
|
||||
|
||||
''' <summary>
|
||||
''' Infos about MaxBufferSize and MaxBufferPoolSize
|
||||
''' https://social.msdn.microsoft.com/Forums/vstudio/en-US/d6e234d3-942f-4e9d-8470-32618d3f3212/maxbufferpoolsize-vs-maxbuffersize?forum=wcf
|
||||
''' </summary>
|
||||
Public Class ChannelSettings
|
||||
Public Const MAX_RECEIVED_MESSAGE_SIZE = 2147483647 ' 1GB
|
||||
Public Const MAX_BUFFER_SIZE = 104857600 ' 100MB
|
||||
Public Const MAX_BUFFER_POOL_SIZE = 1048576 ' 1MB
|
||||
|
||||
Public Const MAX_CONNECTIONS = 500
|
||||
Public Const MAX_ARRAY_LENGTH = 2147483647
|
||||
Public Const MAX_STRING_CONTENT_LENGTH = 2147483647
|
||||
End Class
|
||||
|
||||
End Class
|
||||
|
||||
@ -72,10 +72,12 @@
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Client\Connection.vb" />
|
||||
<Compile Include="Client\NewFile.vb" />
|
||||
<Compile Include="Client\Options.vb" />
|
||||
<Compile Include="Client\Rights.vb" />
|
||||
<Compile Include="Client\Channel.vb" />
|
||||
<Compile Include="Client\ServerAddressStruct.vb" />
|
||||
<Compile Include="Modules\BaseMethod.vb" />
|
||||
<Compile Include="Modules\Globix\ImportFile.vb" />
|
||||
<Compile Include="Helpers.vb" />
|
||||
@ -277,6 +279,10 @@
|
||||
<WCFMetadata Include="Connected Services\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Modules.Base\Base\Base.vbproj">
|
||||
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
||||
<Name>Base</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Modules.Database\Database.vbproj">
|
||||
<Project>{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}</Project>
|
||||
<Name>Database</Name>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user