EDMIService: Property Filtering/Sorting, Handle Empty Results
This commit is contained in:
parent
4c9abf3b1f
commit
502793aed5
64
GUIs.Test.EDMIBenchmark/Form1.Designer.vb
generated
64
GUIs.Test.EDMIBenchmark/Form1.Designer.vb
generated
@ -24,7 +24,7 @@ Partial Class Form1
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
|
||||
Dim DockingContainer1 As DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer()
|
||||
Dim DockingContainer2 As DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer()
|
||||
Me.DocumentGroup1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup(Me.components)
|
||||
Me.Document1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.Document(Me.components)
|
||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
@ -44,6 +44,10 @@ Partial Class Form1
|
||||
Me.TextboxDatatableName = New DevExpress.XtraBars.BarEditItem()
|
||||
Me.RepositoryItemTextEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
|
||||
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.TextboxDatatableFilter = New DevExpress.XtraBars.BarEditItem()
|
||||
Me.RepositoryItemTextEdit3 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
|
||||
Me.TextboxDatatableSort = New DevExpress.XtraBars.BarEditItem()
|
||||
Me.RepositoryItemTextEdit4 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
|
||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
@ -73,11 +77,14 @@ Partial Class Form1
|
||||
Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer()
|
||||
Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer()
|
||||
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
|
||||
Me.BarEditItem1 = New DevExpress.XtraBars.BarEditItem()
|
||||
CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.Document1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemTextEdit3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemTextEdit4, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@ -115,14 +122,14 @@ Partial Class Form1
|
||||
'RibbonControl1
|
||||
'
|
||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.ButtonSelectFiles, Me.ButtonImportFiles, Me.buttonClearLog, Me.buttonClearFiles, Me.TextboxObjectId, Me.ButtonLoadFile, Me.BarListItem1, Me.BarButtonItem2, Me.BarToggleSwitchItem1, Me.BarDockingMenuItem1, Me.BarMdiChildrenListItem1, Me.BarButtonItem1, Me.TextboxDatatableName, Me.BarButtonItem3})
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.ButtonSelectFiles, Me.ButtonImportFiles, Me.buttonClearLog, Me.buttonClearFiles, Me.TextboxObjectId, Me.ButtonLoadFile, Me.BarListItem1, Me.BarButtonItem2, Me.BarToggleSwitchItem1, Me.BarDockingMenuItem1, Me.BarMdiChildrenListItem1, Me.BarButtonItem1, Me.TextboxDatatableName, Me.BarButtonItem3, Me.TextboxDatatableFilter, Me.TextboxDatatableSort})
|
||||
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.RibbonControl1.MaxItemId = 17
|
||||
Me.RibbonControl1.MaxItemId = 19
|
||||
Me.RibbonControl1.Name = "RibbonControl1"
|
||||
Me.RibbonControl1.PageHeaderItemLinks.Add(Me.BarDockingMenuItem1)
|
||||
Me.RibbonControl1.PageHeaderItemLinks.Add(Me.BarMdiChildrenListItem1)
|
||||
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2})
|
||||
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2, Me.RepositoryItemTextEdit3, Me.RepositoryItemTextEdit4})
|
||||
Me.RibbonControl1.Size = New System.Drawing.Size(1310, 158)
|
||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||
'
|
||||
@ -218,6 +225,7 @@ Partial Class Form1
|
||||
'
|
||||
Me.TextboxDatatableName.Caption = "Datatable Name"
|
||||
Me.TextboxDatatableName.Edit = Me.RepositoryItemTextEdit2
|
||||
Me.TextboxDatatableName.EditWidth = 100
|
||||
Me.TextboxDatatableName.Id = 15
|
||||
Me.TextboxDatatableName.ImageOptions.SvgImage = CType(resources.GetObject("TextboxDatatableName.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.TextboxDatatableName.Name = "TextboxDatatableName"
|
||||
@ -234,6 +242,32 @@ Partial Class Form1
|
||||
Me.BarButtonItem3.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem3.Name = "BarButtonItem3"
|
||||
'
|
||||
'TextboxDatatableFilter
|
||||
'
|
||||
Me.TextboxDatatableFilter.Caption = "Filter Expr."
|
||||
Me.TextboxDatatableFilter.Edit = Me.RepositoryItemTextEdit3
|
||||
Me.TextboxDatatableFilter.EditWidth = 100
|
||||
Me.TextboxDatatableFilter.Id = 17
|
||||
Me.TextboxDatatableFilter.Name = "TextboxDatatableFilter"
|
||||
'
|
||||
'RepositoryItemTextEdit3
|
||||
'
|
||||
Me.RepositoryItemTextEdit3.AutoHeight = False
|
||||
Me.RepositoryItemTextEdit3.Name = "RepositoryItemTextEdit3"
|
||||
'
|
||||
'TextboxDatatableSort
|
||||
'
|
||||
Me.TextboxDatatableSort.Caption = "Sort Expr."
|
||||
Me.TextboxDatatableSort.Edit = Me.RepositoryItemTextEdit4
|
||||
Me.TextboxDatatableSort.EditWidth = 100
|
||||
Me.TextboxDatatableSort.Id = 18
|
||||
Me.TextboxDatatableSort.Name = "TextboxDatatableSort"
|
||||
'
|
||||
'RepositoryItemTextEdit4
|
||||
'
|
||||
Me.RepositoryItemTextEdit4.AutoHeight = False
|
||||
Me.RepositoryItemTextEdit4.Name = "RepositoryItemTextEdit4"
|
||||
'
|
||||
'RibbonPage1
|
||||
'
|
||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup4, Me.RibbonPageGroup3, Me.RibbonPageGroup2})
|
||||
@ -267,6 +301,8 @@ Partial Class Form1
|
||||
'RibbonPageGroup2
|
||||
'
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.TextboxDatatableName)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.TextboxDatatableFilter)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.TextboxDatatableSort)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3)
|
||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||
Me.RibbonPageGroup2.Text = "Retrieve Datatable"
|
||||
@ -294,8 +330,8 @@ Partial Class Form1
|
||||
'
|
||||
Me.TabbedView1.DocumentGroups.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentGroup() {Me.DocumentGroup1})
|
||||
Me.TabbedView1.Documents.AddRange(New DevExpress.XtraBars.Docking2010.Views.BaseDocument() {Me.Document1})
|
||||
DockingContainer1.Element = Me.DocumentGroup1
|
||||
Me.TabbedView1.RootContainer.Nodes.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer() {DockingContainer1})
|
||||
DockingContainer2.Element = Me.DocumentGroup1
|
||||
Me.TabbedView1.RootContainer.Nodes.AddRange(New DevExpress.XtraBars.Docking2010.Views.Tabbed.DockingContainer() {DockingContainer2})
|
||||
'
|
||||
'DockManager1
|
||||
'
|
||||
@ -481,6 +517,15 @@ Partial Class Form1
|
||||
'
|
||||
Me.Timer1.Interval = 3000
|
||||
'
|
||||
'BarEditItem1
|
||||
'
|
||||
Me.BarEditItem1.Caption = "Datatable Name"
|
||||
Me.BarEditItem1.Edit = Me.RepositoryItemTextEdit2
|
||||
Me.BarEditItem1.EditWidth = 100
|
||||
Me.BarEditItem1.Id = 15
|
||||
Me.BarEditItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarEditItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarEditItem1.Name = "BarEditItem1"
|
||||
'
|
||||
'Form1
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
@ -499,6 +544,8 @@ Partial Class Form1
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RepositoryItemTextEdit3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RepositoryItemTextEdit4, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
@ -569,4 +616,9 @@ Partial Class Form1
|
||||
Friend WithEvents RepositoryItemTextEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
||||
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents TextboxDatatableFilter As DevExpress.XtraBars.BarEditItem
|
||||
Friend WithEvents RepositoryItemTextEdit3 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
||||
Friend WithEvents TextboxDatatableSort As DevExpress.XtraBars.BarEditItem
|
||||
Friend WithEvents RepositoryItemTextEdit4 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
||||
Friend WithEvents BarEditItem1 As DevExpress.XtraBars.BarEditItem
|
||||
End Class
|
||||
|
||||
@ -341,4 +341,30 @@
|
||||
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>453, 17</value>
|
||||
</metadata>
|
||||
<data name="BarEditItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGkEAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MTYgMTYiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
|
||||
R3JlZW57ZmlsbDojMDM5QzIzO30KCS5XaGl0ZXtmaWxsOiNGRkZGRkY7fQoJLnN0MHtvcGFjaXR5OjAu
|
||||
Njt9Cgkuc3Qxe29wYWNpdHk6MC41O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTE1LDFIMUMwLjUsMSww
|
||||
LDEuNSwwLDJ2MTJjMCwwLjUsMC41LDEsMSwxaDE0YzAuNSwwLDEtMC41LDEtMVYyQzE2LDEuNSwxNS41
|
||||
LDEsMTUsMXogTTE1LDE0SDFWMmgxNFYxNHoiIGNsYXNzPSJCbGFjayIgLz4NCiAgPHBhdGggZD0iTTAs
|
||||
NVYyYzAtMC41LDAuNS0xLDEtMWgxNGMwLjYsMCwxLDAuNSwxLDF2M0gweiIgY2xhc3M9IkdyZWVuIiAv
|
||||
Pg0KICA8ZyBpZD0iTGF5ZXJfMiIgY2xhc3M9InN0MCI+DQogICAgPHJlY3QgeD0iMSIgeT0iMiIgd2lk
|
||||
dGg9IjE0IiBoZWlnaHQ9IjIiIHJ4PSIwIiByeT0iMCIgY2xhc3M9IldoaXRlIiAvPg0KICA8L2c+DQog
|
||||
IDxyZWN0IHg9IjEiIHk9IjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSI5IiByeD0iMCIgcnk9IjAiIGNsYXNz
|
||||
PSJXaGl0ZSIgLz4NCiAgPHBhdGggZD0iTTUsMTJWN2gxdjVINXoiIGNsYXNzPSJCbGFjayIgLz4NCiAg
|
||||
PHBhdGggZD0iTTExLDEyaC0xbDAtMC42QzkuOCwxMS42LDkuNSwxMiw4LjcsMTJjLTAuNSwwLTAuOS0w
|
||||
LjItMS4yLTAuNUM3LjIsMTEuMiw3LDEwLjcsNywxMC4xQzcsOS41LDcuMiw5LDcuNSw4LjcgIGMwLjMt
|
||||
MC4zLDAuNy0wLjUsMS4yLTAuNXMwLjksMC4yLDEuMiwwLjVWN0gxMVYxMnogTTguMSwxMC4xYzAsMC40
|
||||
LDAsMS4yLDAuOSwxLjJjMC44LDAsMC45LTAuOCwwLjktMS4xQzkuOSw5LjgsOS44LDksOSw5ICBDOC4z
|
||||
LDksOC4xLDkuNyw4LjEsMTAuMXoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@ -224,10 +224,17 @@ Public Class Form1
|
||||
End If
|
||||
|
||||
Dim oDatatableName As String = TextboxDatatableName.EditValue
|
||||
Dim oResponse As DataTable = Await _Client.GetDatatableByNameAsync(oDatatableName)
|
||||
Dim oSortExpression As String = TextboxDatatableSort.EditValue
|
||||
Dim oFilterExpression As String = TextboxDatatableFilter.EditValue
|
||||
Dim oResponse As TableResult = Await _Client.GetDatatableByNameAsync(oDatatableName, oFilterExpression, oSortExpression)
|
||||
|
||||
oSWTotal.Stop()
|
||||
AddLogMessage($"DataTable [{oResponse.TableName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
||||
|
||||
If oResponse.OK Then
|
||||
AddLogMessage($"DataTable [{oDatatableName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
||||
Else
|
||||
AddLogMessage($"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()
|
||||
|
||||
@ -131,15 +131,10 @@ Public Class Client
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function GetDatatableByNameAsync(DatatableName As String) As Task(Of DataTable)
|
||||
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)
|
||||
|
||||
If oResponse.OK Then
|
||||
Return oResponse.Table
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
Dim oResponse = Await _channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn)
|
||||
Return oResponse
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
Throw ex
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="FilterExpression" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="SortByColumn" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@ -154,11 +154,11 @@ Namespace EDMIServiceReference
|
||||
|
||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheResp"& _
|
||||
"onse")> _
|
||||
Function ReturnDatatableFromCache(ByVal Name As String) As EDMIServiceReference.TableResult
|
||||
Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult
|
||||
|
||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheResp"& _
|
||||
"onse")> _
|
||||
Function ReturnDatatableFromCacheAsync(ByVal Name As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult)
|
||||
Function ReturnDatatableFromCacheAsync(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult)
|
||||
|
||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatable_Firebird", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatable_FirebirdResp"& _
|
||||
"onse")> _
|
||||
@ -419,12 +419,12 @@ Namespace EDMIServiceReference
|
||||
Return MyBase.Channel.HeartbeatAsync
|
||||
End Function
|
||||
|
||||
Public Function ReturnDatatableFromCache(ByVal Name As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCache
|
||||
Return MyBase.Channel.ReturnDatatableFromCache(Name)
|
||||
Public Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCache
|
||||
Return MyBase.Channel.ReturnDatatableFromCache(Name, FilterExpression, SortByColumn)
|
||||
End Function
|
||||
|
||||
Public Function ReturnDatatableFromCacheAsync(ByVal Name As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCacheAsync
|
||||
Return MyBase.Channel.ReturnDatatableFromCacheAsync(Name)
|
||||
Public Function ReturnDatatableFromCacheAsync(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCacheAsync
|
||||
Return MyBase.Channel.ReturnDatatableFromCacheAsync(Name, FilterExpression, SortByColumn)
|
||||
End Function
|
||||
|
||||
Public Function ReturnDatatable_Firebird(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_Firebird
|
||||
|
||||
@ -82,9 +82,18 @@ Public Class EDMIService
|
||||
' Apply filter and sorting to data
|
||||
Dim oFilterExpression As String = Utils.NotNull(FilterExpression, String.Empty)
|
||||
Dim oSortByColumn As String = Utils.NotNull(SortByColumn, String.Empty)
|
||||
Dim oFilteredTable = oDataTable.
|
||||
Select(oFilterExpression, oSortByColumn).
|
||||
CopyToDataTable()
|
||||
|
||||
Dim oFilteredRows = oDataTable.Select(oFilterExpression, oSortByColumn)
|
||||
Dim oFilteredTable As DataTable = Nothing
|
||||
|
||||
If oFilteredRows.Count > 0 Then
|
||||
oFilteredTable = oFilteredRows.CopyToDataTable()
|
||||
oFilteredTable.TableName = Name
|
||||
Else
|
||||
' Produce empty table
|
||||
oFilteredTable = oDataTable.Clone()
|
||||
oFilteredTable.TableName = Name
|
||||
End If
|
||||
|
||||
_logger.Debug("Datatable Stats for [{0}]:", Name)
|
||||
_logger.Debug("Unfiltered: [{0}] rows", oDataTable.Rows.Count)
|
||||
@ -94,14 +103,6 @@ Public Class EDMIService
|
||||
Else
|
||||
Throw New ApplicationException($"DataTable {Name} does not exist")
|
||||
End If
|
||||
|
||||
'If oDataset.Tables.Contains(Name) Then
|
||||
' oDataTable = oDataset.Tables.Item(Name).Clone()
|
||||
|
||||
' Return New TableResult(oDataTable)
|
||||
'Else
|
||||
' Throw New ApplicationException($"DataTable {Name} does not exist")
|
||||
'End If
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
Return New TableResult(ex.Message)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user