load searches only for clicked profile, acutally filter profiles by search results

This commit is contained in:
Jonathan Jenne 2019-10-29 11:42:22 +01:00
parent c173432b94
commit 44d703fcb2
2 changed files with 16 additions and 14 deletions

View File

@ -23,13 +23,14 @@ Public Class ProfileSearches
_Params = Params _Params = Params
End Sub End Sub
Public Async Function LoadDocumentSearchesAsync() As Task(Of List(Of Search)) Public Async Function LoadDocumentSearchesAsync(ProfileId As Integer) As Task(Of List(Of Search))
Return Await Task.Run(AddressOf DoLoadDocumentSearches) Return Await Task.Run(Function()
Return DoLoadDocumentSearches(ProfileId)
End Function)
End Function End Function
Private Function DoLoadDocumentSearches() As List(Of Search) Private Function DoLoadDocumentSearches(ProfileId As Integer) As List(Of Search)
Dim oMatchingIds = String.Join(",", _Params.MatchingProfiles.Select(Function(p) p.Guid).ToArray()) Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DOC_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID = {ProfileId} ORDER BY TAB_INDEX"
Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DOC_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({oMatchingIds}) ORDER BY TAB_INDEX"
Dim oSearchesDataTable = _Environment.Database.GetDatatable(oSQL) Dim oSearchesDataTable = _Environment.Database.GetDatatable(oSQL)
Dim oDocSearches As New List(Of Search) Dim oDocSearches As New List(Of Search)
Dim oCounter As Integer = 0 Dim oCounter As Integer = 0
@ -62,16 +63,17 @@ Public Class ProfileSearches
Return oDocSearches Return oDocSearches
End Function End Function
Public Async Function LoadDataSearchesAsync() As Task(Of List(Of Search)) Public Async Function LoadDataSearchesAsync(ProfileId As Integer) As Task(Of List(Of Search))
Return Await Task.Run(AddressOf DoLoadDataSearches) Return Await Task.Run(Function()
Return DoLoadDataSearches(ProfileId)
End Function)
End Function End Function
Private Function DoLoadDataSearches() As List(Of Search) Private Function DoLoadDataSearches(ProfileId As Integer) As List(Of Search)
Dim oDataSearches As New List(Of Search) Dim oDataSearches As New List(Of Search)
Try Try
Dim oMatchingIds = String.Join(",", _Params.MatchingProfiles.Select(Function(p) p.Guid).ToArray()) Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID = {ProfileId} ORDER BY TAB_INDEX"
Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({oMatchingIds}) ORDER BY TAB_INDEX"
Dim oSearchesDataTable = _Environment.Database.GetDatatable(oSQL) Dim oSearchesDataTable = _Environment.Database.GetDatatable(oSQL)
Dim oCounter As Integer = 0 Dim oCounter As Integer = 0

View File

@ -82,12 +82,12 @@ Public Class frmMatch
Dim oProfileSearch As New ProfileSearches(_LogConfig, _Environment, _Params) Dim oProfileSearch As New ProfileSearches(_LogConfig, _Environment, _Params)
If oProfile.CountData > 0 Then If oProfile.CountData > 0 Then
Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync() Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync(oProfile.Guid)
OpenDataResults(oProfile, oSearches) OpenDataResults(oProfile, oSearches)
Hide() Hide()
ElseIf oProfile.CountDocs > 0 Then ElseIf oProfile.CountDocs > 0 Then
Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync() Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync(oProfile.Guid)
OpenDocumentResults(oProfile, oSearches) OpenDocumentResults(oProfile, oSearches)
Hide() Hide()
@ -207,11 +207,11 @@ Public Class frmMatch
Select Case oItem.Group.Name Select Case oItem.Group.Name
Case TileGroupData.Name Case TileGroupData.Name
Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync() Dim oSearches = Await oProfileSearch.LoadDataSearchesAsync(oProfileId)
OpenDataResults(oProfile, oSearches) OpenDataResults(oProfile, oSearches)
Case TileGroupDocuments.Name Case TileGroupDocuments.Name
Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync() Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync(oProfileId)
OpenDocumentResults(oProfile, oSearches) OpenDocumentResults(oProfile, oSearches)
Case Else Case Else