Zooflow: Improve Search Ribbon, Process Independent Search

This commit is contained in:
Jonathan Jenne
2022-05-19 12:17:57 +02:00
parent 26a82f4af0
commit 4555fe4e34
21 changed files with 632 additions and 165 deletions

View File

@@ -30,6 +30,11 @@ Public Class SearchRunner
Undefined
End Enum
Public Enum TokenOperator
[And]
[Or]
End Enum
Public Event NeedsRefresh As EventHandler(Of Integer)
Public Event Closed As EventHandler(Of Integer)
@@ -41,6 +46,8 @@ Public Class SearchRunner
End Property
Private _ActiveDateAttribute As String = SEARCH_FACT_DATE_DEFAULT
Private _ActiveTokenOperator As TokenOperator = TokenOperator.And
Public ReadOnly Property ActiveDateAttribute As String
Get
Return _ActiveDateAttribute
@@ -151,7 +158,7 @@ Public Class SearchRunner
End If
End Function
Private Async Function InsertSearchTokens(pTokens As IEnumerable(Of Search.SearchToken.AttributeValueToken)) As Task
Private Async Function InsertSearchTokens(pTokens As IEnumerable(Of Search.SearchToken.Token)) As Task
Logger.Debug("Deleting previous user tokens..")
Await My.Database.ExecuteNonQueryIDBAsync($"DELETE FROM TBIDB_SEARCH_INPUT_USER WHERE USR_ID = {UserId}")
@@ -165,10 +172,20 @@ Public Class SearchRunner
Exit Function
End If
Dim oOperatorString
Select Case _ActiveTokenOperator
Case TokenOperator.Or
oOperatorString = "OR"
Case Else
oOperatorString = "AND"
End Select
For Each oToken In pTokens
Dim oSQLInsert As String = $"
INSERT INTO [dbo].[TBIDB_SEARCH_INPUT_USER] ([USR_ID], [ATTR_ID], [ATTR_TITLE], [TERM_ID], [OPERATOR])
VALUES ({UserId}, {oToken.AttributeId}, '{oToken.AttributeTitle}', {oToken.TermId}, 'AND')"
VALUES ({UserId}, {oToken.AttributeId}, '{oToken.AttributeTitle}', {oToken.TermId}, '{oOperatorString}')"
Dim oResult = Await My.Database.ExecuteNonQueryIDBAsync(oSQLInsert)
Logger.Warn("Inserting Tokens failed!")
@@ -248,6 +265,10 @@ Public Class SearchRunner
_ActiveDateConstraint = DateConstraintToConstant(pConstraint)
End Sub
Public Sub SetTokenOperator(pOperator As TokenOperator)
_ActiveTokenOperator = pOperator
End Sub
Public Function DateConstraintToConstant(pConstraint As DateConstraint) As String
Select Case pConstraint
Case DateConstraint.Today