Zooflow: WIP
This commit is contained in:
@@ -10,8 +10,8 @@ Imports DigitalData.Services.EDMIService.Messages
|
||||
Imports DigitalData.Modules.EDMI.API.Rights
|
||||
Imports DigitalData.Services.EDMIService.Exceptions
|
||||
Imports DigitalData.Services.EDMIService.GlobalState
|
||||
Imports DigitalData.Services.EDMIService.FileStorage
|
||||
Imports DigitalData.Services.EDMIService.FileStorage.SetAttributeValue
|
||||
Imports DigitalData.Services.EDMIService.Methods
|
||||
Imports DigitalData.Services.EDMIService.Methods.SetAttributeValue
|
||||
|
||||
<ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerSession)>
|
||||
Public Class EDMIService
|
||||
@@ -81,52 +81,18 @@ Public Class EDMIService
|
||||
|
||||
#Region "=== Database ==="
|
||||
Public Function ReturnDatatableFromCache(Name As String, FilterExpression As String, SortByColumn As String) As TableResult Implements IEDMIService.ReturnDatatableFromCache
|
||||
Try
|
||||
_Logger.Debug($"ReturnDatatableFromCache: Datatable: {Name}")
|
||||
Dim oReturnDatatableFromCache As New GetDatatableFromCache.GetDatatableFromCacheMethod(LogConfig, MSSQL_ECM, GlobalState.TableStore)
|
||||
Dim oResult = oReturnDatatableFromCache.Run(New GetDatatableFromCache.GetDatatableFromCacheRequest With {
|
||||
.DataTable = Name,
|
||||
.FilterExpression = FilterExpression,
|
||||
.SortByColumn = SortByColumn
|
||||
})
|
||||
|
||||
Dim oDataset As DataSet = GlobalState.TableStore
|
||||
Dim oDataTable As DataTable = Nothing
|
||||
|
||||
_Logger.Debug("ReturnDatatableFromCache: DataSet contains [{0}] datatables", oDataset.Tables.Count)
|
||||
|
||||
If oDataset.Tables.Contains(Name) Then
|
||||
oDataTable = oDataset.Tables.Item(Name).Copy()
|
||||
|
||||
' 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 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("ReturnDatatableFromCache: Datatable Stats for [{0}]:", Name)
|
||||
_Logger.Debug("Unfiltered: [{0}] rows", oDataTable.Rows.Count)
|
||||
_Logger.Debug("Filtered: [{0}] rows", oFilteredTable.Rows.Count)
|
||||
|
||||
Return New TableResult(oFilteredTable)
|
||||
Else
|
||||
_Logger.Warn($"ReturnDatatableFromCache: Datatable {Name} does not exist")
|
||||
Throw GetFault($"ReturnDatatableFromCache: Datatable {Name} does not exist")
|
||||
End If
|
||||
|
||||
Catch ex As FaultException
|
||||
_Logger.Error(ex)
|
||||
Throw ex
|
||||
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
Throw GetFault(ex)
|
||||
|
||||
End Try
|
||||
If oResult.OK Then
|
||||
Return New TableResult(oResult.Table)
|
||||
Else
|
||||
Return New TableResult(oResult.ErrorMessage)
|
||||
End If
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
|
||||
Reference in New Issue
Block a user