Zooflow: Work on Custom Searches
This commit is contained in:
@@ -4,268 +4,269 @@ Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.ZooFlow
|
||||
Imports System.Threading.Tasks
|
||||
|
||||
Public Class SearchRunner
|
||||
Inherits BaseClass
|
||||
Namespace Search
|
||||
Public Class SearchRunner
|
||||
Inherits BaseClass
|
||||
|
||||
Private Const SEARCH_FACT_DATE_DEFAULT As String = "ADDED_WHEN"
|
||||
Private Const SEARCH_FACT_DATE_DEFAULT As String = "ADDED_WHEN"
|
||||
|
||||
Public Const CREATED_TOMORROW As String = "TOMORROW"
|
||||
Public Const CREATED_TODAY As String = "ECM_CREATED_TODAY"
|
||||
Public Const CREATED_YESTERDAY As String = "ECM_CREATED_YESTERDAY"
|
||||
Public Const CREATED_LAST_7_DAYS As String = "ECM_CREATED_LAST7DAYS"
|
||||
Public Const CREATED_YEAR_CURRENT As String = "ECM_CREATED_YEAR_CURRENT"
|
||||
Public Const CREATED_YEAR_LAST As String = "ECM_CREATED_YEAR_LAST"
|
||||
Public Const CREATED_MONTH_CURR As String = "ECM_CREATED_MONTH_CURRENT"
|
||||
Public Const CREATED_MONTH_LAST As String = "ECM_CREATED_MONTH_LAST"
|
||||
Public Const CREATED_TOMORROW As String = "TOMORROW"
|
||||
Public Const CREATED_TODAY As String = "ECM_CREATED_TODAY"
|
||||
Public Const CREATED_YESTERDAY As String = "ECM_CREATED_YESTERDAY"
|
||||
Public Const CREATED_LAST_7_DAYS As String = "ECM_CREATED_LAST7DAYS"
|
||||
Public Const CREATED_YEAR_CURRENT As String = "ECM_CREATED_YEAR_CURRENT"
|
||||
Public Const CREATED_YEAR_LAST As String = "ECM_CREATED_YEAR_LAST"
|
||||
Public Const CREATED_MONTH_CURR As String = "ECM_CREATED_MONTH_CURRENT"
|
||||
Public Const CREATED_MONTH_LAST As String = "ECM_CREATED_MONTH_LAST"
|
||||
|
||||
Public Enum DateConstraint
|
||||
Today
|
||||
Tomorrow
|
||||
Yesterday
|
||||
Last7Days
|
||||
CurrentMonth
|
||||
LastMonth
|
||||
CurrentYear
|
||||
LastYear
|
||||
Undefined
|
||||
End Enum
|
||||
Public Enum DateConstraint
|
||||
Today
|
||||
Tomorrow
|
||||
Yesterday
|
||||
Last7Days
|
||||
CurrentMonth
|
||||
LastMonth
|
||||
CurrentYear
|
||||
LastYear
|
||||
Undefined
|
||||
End Enum
|
||||
|
||||
Public Enum TokenOperator
|
||||
[And]
|
||||
[Or]
|
||||
End Enum
|
||||
Public Enum TokenOperator
|
||||
[And]
|
||||
[Or]
|
||||
End Enum
|
||||
|
||||
Public Event NeedsRefresh As EventHandler(Of Integer)
|
||||
Public Event Closed As EventHandler(Of Integer)
|
||||
Public Event NeedsRefresh As EventHandler(Of Integer)
|
||||
Public Event Closed As EventHandler(Of Integer)
|
||||
|
||||
Private Property _ActiveDateConstraint As String = String.Empty
|
||||
Public ReadOnly Property ActiveDateConstraint As String
|
||||
Get
|
||||
Return _ActiveDateConstraint
|
||||
End Get
|
||||
End Property
|
||||
Private Property _ActiveDateConstraint As String = String.Empty
|
||||
Public ReadOnly Property ActiveDateConstraint As String
|
||||
Get
|
||||
Return _ActiveDateConstraint
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private _ActiveDateAttribute As String = SEARCH_FACT_DATE_DEFAULT
|
||||
Private _ActiveTokenOperator As TokenOperator = TokenOperator.And
|
||||
Private _ActiveDateAttribute As String = SEARCH_FACT_DATE_DEFAULT
|
||||
Private _ActiveTokenOperator As TokenOperator = TokenOperator.And
|
||||
|
||||
Public ReadOnly Property ActiveDateAttribute As String
|
||||
Get
|
||||
Return _ActiveDateAttribute
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property ActiveDateAttribute As String
|
||||
Get
|
||||
Return _ActiveDateAttribute
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Property BaseSearchSQL As String
|
||||
Public Property ExplicitDate As Boolean = False
|
||||
Public Property BaseSearchSQL As String
|
||||
Public Property ExplicitDate As Boolean = False
|
||||
|
||||
Private ReadOnly Environment As Environment
|
||||
Private ReadOnly SearchId As String
|
||||
Private ReadOnly UserId As Integer
|
||||
Private ReadOnly UserLanguage As String
|
||||
Private ReadOnly Environment As Environment
|
||||
Private ReadOnly SearchId As String
|
||||
Private ReadOnly UserId As Integer
|
||||
Private ReadOnly UserLanguage As String
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment, pSearchId As String)
|
||||
MyBase.New(pLogConfig)
|
||||
Environment = pEnvironment
|
||||
SearchId = pSearchId
|
||||
UserId = My.Application.User.UserId
|
||||
UserLanguage = My.Application.User.Language
|
||||
End Sub
|
||||
Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment, pSearchId As String)
|
||||
MyBase.New(pLogConfig)
|
||||
Environment = pEnvironment
|
||||
SearchId = pSearchId
|
||||
UserId = My.Application.User.UserId
|
||||
UserLanguage = My.Application.User.Language
|
||||
End Sub
|
||||
|
||||
Public Function RunWithDataTable(pDatatable As DataTable) As SearchResult
|
||||
Return RunWithDataTable(pDatatable, "Suche")
|
||||
End Function
|
||||
Public Function RunWithDataTable(pDatatable As DataTable) As SearchResult
|
||||
Return RunWithDataTable(pDatatable, "Suche")
|
||||
End Function
|
||||
|
||||
Public Function RunWithDataTable(pDatatable As DataTable, pTitle As String) As SearchResult
|
||||
Dim oParams = GetParams(pTitle)
|
||||
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
|
||||
Public Function RunWithDataTable(pDatatable As DataTable, pTitle As String) As SearchResult
|
||||
Dim oParams = GetParams(pTitle)
|
||||
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
|
||||
.Title = pTitle,
|
||||
.Datatable = pDatatable
|
||||
})
|
||||
|
||||
If pDatatable.Rows.Count = 1 Then
|
||||
oParams.ShowFileList = False
|
||||
End If
|
||||
If pDatatable.Rows.Count = 1 Then
|
||||
oParams.ShowFileList = False
|
||||
End If
|
||||
|
||||
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
|
||||
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
|
||||
|
||||
' TODO: Implement, not needed right now
|
||||
'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh
|
||||
AddHandler oForm.FormClosed, AddressOf Form_Closed
|
||||
' TODO: Implement, not needed right now
|
||||
'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh
|
||||
AddHandler oForm.FormClosed, AddressOf Form_Closed
|
||||
|
||||
oForm.Show()
|
||||
oForm.Show()
|
||||
|
||||
Return New SearchResult(pDatatable.Rows.Count)
|
||||
End Function
|
||||
Return New SearchResult(pDatatable.Rows.Count)
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Only search for Term. Used for sidebar quicksearch.
|
||||
''' </summary>
|
||||
Public Async Function RunWithSearchTerm(pSearchTerm As String) As Task(Of SearchResult)
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {.SearchString = pSearchTerm})
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Only search for Term. Used for sidebar quicksearch.
|
||||
''' </summary>
|
||||
Public Async Function RunWithSearchTerm(pSearchTerm As String) As Task(Of SearchResult)
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {.SearchString = pSearchTerm})
|
||||
End Function
|
||||
|
||||
Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date, pSearchTitle As String) As Task(Of SearchResult)
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {
|
||||
Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date, pSearchTitle As String) As Task(Of SearchResult)
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {
|
||||
.SearchString = pSearchTerm,
|
||||
.SearchTitle = pSearchTitle,
|
||||
.DateFrom = pDateFrom,
|
||||
.DateTo = pDateTo
|
||||
})
|
||||
End Function
|
||||
End Function
|
||||
|
||||
Public Async Function RunWithTokens(pTokens As IEnumerable(Of Search.SearchToken.Token)) As Task(Of SearchResult)
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {
|
||||
Public Async Function RunWithTokens(pTokens As IEnumerable(Of Search.SearchToken.Token)) As Task(Of SearchResult)
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {
|
||||
.SearchTokens = pTokens
|
||||
})
|
||||
End Function
|
||||
End Function
|
||||
|
||||
Public Async Function RunWithTokens(pTokens As IEnumerable(Of Search.SearchToken.Token), pDateFrom As Date, pDateTo As Date, pSearchTitle As String) As Task(Of SearchResult)
|
||||
If pTokens.Count = 0 And
|
||||
Public Async Function RunWithTokens(pTokens As IEnumerable(Of Search.SearchToken.Token), pDateFrom As Date, pDateTo As Date, pSearchTitle As String) As Task(Of SearchResult)
|
||||
If pTokens.Count = 0 And
|
||||
pDateFrom = Date.MinValue And
|
||||
pDateTo = Date.MinValue And
|
||||
_ActiveDateConstraint = String.Empty Then
|
||||
Return New SearchResult(0)
|
||||
End If
|
||||
Return New SearchResult(0)
|
||||
End If
|
||||
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {
|
||||
Return Await RunWithSearchTerm(New SearchOptions With {
|
||||
.SearchTokens = pTokens,
|
||||
.DateFrom = pDateFrom,
|
||||
.DateTo = pDateTo
|
||||
})
|
||||
End Function
|
||||
End Function
|
||||
|
||||
|
||||
'Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Task(Of SearchResult)
|
||||
' Return Await RunWithSearchTerm(pSearchTerm, pDateFrom, pDateTo, Nothing, Nothing)
|
||||
'End Function
|
||||
'Public Async Function RunWithSearchTerm(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Task(Of SearchResult)
|
||||
' Return Await RunWithSearchTerm(pSearchTerm, pDateFrom, pDateTo, Nothing, Nothing)
|
||||
'End Function
|
||||
|
||||
Private Async Function RunWithSearchTerm(pOptions As SearchOptions) As Task(Of SearchResult)
|
||||
Dim oDateConstraint = Await GetDateConstraint(pOptions.DateFrom, pOptions.DateTo)
|
||||
Dim oWindowTitle = GetResultWindowString(pOptions.SearchString, pOptions.SearchTitle)
|
||||
Dim oParams = GetParams(oWindowTitle)
|
||||
Dim oTokens = pOptions.SearchTokens
|
||||
Dim oSearchTerm = pOptions.SearchString
|
||||
Private Async Function RunWithSearchTerm(pOptions As SearchOptions) As Task(Of SearchResult)
|
||||
Dim oDateConstraint = Await GetDateConstraint(pOptions.DateFrom, pOptions.DateTo)
|
||||
Dim oWindowTitle = GetResultWindowString(pOptions.SearchString, pOptions.SearchTitle)
|
||||
Dim oParams = GetParams(oWindowTitle)
|
||||
Dim oTokens = pOptions.SearchTokens
|
||||
Dim oSearchTerm = pOptions.SearchString
|
||||
|
||||
Dim oSQL
|
||||
Dim oSQL
|
||||
|
||||
If oTokens IsNot Nothing AndAlso oTokens.Count > 0 Then
|
||||
Await InsertSearchTokens(oTokens)
|
||||
oSQL = $"EXEC PRIDB_SEARCH_GET_TOKEN_RESULT_DOCS {UserId}, '{oDateConstraint}', '{UserLanguage}'"
|
||||
ElseIf oSearchTerm IsNot Nothing Then
|
||||
oSQL = $"EXEC PRIDB_SEARCH_GET_TEXT_RESULTS {UserId},'{pOptions.SearchString}','{oDateConstraint}', '{UserLanguage}'"
|
||||
Else
|
||||
oSQL = $"EXEC PRIDB_SEARCH_GET_TEXT_RESULTS {UserId},'{String.Empty}','{oDateConstraint}', '{UserLanguage}'"
|
||||
End If
|
||||
|
||||
If Await My.Database.ExecuteNonQueryIDBAsync(oSQL) = True Then
|
||||
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
|
||||
|
||||
If oDTDocResult Is Nothing Then
|
||||
Return New SearchResult("Error in Search Query")
|
||||
If oTokens IsNot Nothing AndAlso oTokens.Count > 0 Then
|
||||
Await InsertSearchTokens(oTokens)
|
||||
oSQL = $"EXEC PRIDB_SEARCH_GET_TOKEN_RESULT_DOCS {UserId}, '{oDateConstraint}', '{UserLanguage}'"
|
||||
ElseIf oSearchTerm IsNot Nothing Then
|
||||
oSQL = $"EXEC PRIDB_SEARCH_GET_TEXT_RESULTS {UserId},'{pOptions.SearchString}','{oDateConstraint}', '{UserLanguage}'"
|
||||
Else
|
||||
oSQL = $"EXEC PRIDB_SEARCH_GET_TEXT_RESULTS {UserId},'{String.Empty}','{oDateConstraint}', '{UserLanguage}'"
|
||||
End If
|
||||
|
||||
Dim oRowCount = oDTDocResult.Rows.Count
|
||||
If oRowCount > 0 Then
|
||||
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
|
||||
If Await My.Database.ExecuteNonQueryIDBAsync(oSQL) = True Then
|
||||
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
|
||||
|
||||
If oDTDocResult Is Nothing Then
|
||||
Return New SearchResult("Error in Search Query")
|
||||
End If
|
||||
|
||||
Dim oRowCount = oDTDocResult.Rows.Count
|
||||
If oRowCount > 0 Then
|
||||
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
|
||||
.Title = SearchId,
|
||||
.Datatable = oDTDocResult
|
||||
})
|
||||
|
||||
If oDTDocResult.Rows.Count = 1 Then
|
||||
oParams.ShowFileList = False
|
||||
If oDTDocResult.Rows.Count = 1 Then
|
||||
oParams.ShowFileList = False
|
||||
End If
|
||||
|
||||
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
|
||||
|
||||
' TODO: Implement
|
||||
'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh
|
||||
AddHandler oForm.FormClosed, AddressOf Form_Closed
|
||||
|
||||
oForm.Show()
|
||||
|
||||
Return New SearchResult(oRowCount)
|
||||
Else
|
||||
Return New SearchResult(oRowCount)
|
||||
|
||||
End If
|
||||
|
||||
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
|
||||
|
||||
' TODO: Implement
|
||||
'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh
|
||||
AddHandler oForm.FormClosed, AddressOf Form_Closed
|
||||
|
||||
oForm.Show()
|
||||
|
||||
Return New SearchResult(oRowCount)
|
||||
Else
|
||||
Return New SearchResult(oRowCount)
|
||||
Return New SearchResult("Error in Search Function")
|
||||
|
||||
End If
|
||||
Else
|
||||
Return New SearchResult("Error in Search Function")
|
||||
End Function
|
||||
|
||||
End If
|
||||
End Function
|
||||
Private Async Function GetDateConstraint(pDateFrom As Date, pDateTo As Date) As Task(Of String)
|
||||
Dim oSimpleDateConstraint = $"{_ActiveDateAttribute}~{_ActiveDateConstraint}"
|
||||
Dim oExplicitConstraint = Await MaybeSetExplicitDateConstraint(pDateFrom, pDateTo)
|
||||
|
||||
Private Async Function GetDateConstraint(pDateFrom As Date, pDateTo As Date) As Task(Of String)
|
||||
Dim oSimpleDateConstraint = $"{_ActiveDateAttribute}~{_ActiveDateConstraint}"
|
||||
Dim oExplicitConstraint = Await MaybeSetExplicitDateConstraint(pDateFrom, pDateTo)
|
||||
If IsNothing(oExplicitConstraint) Then
|
||||
Return oSimpleDateConstraint
|
||||
Else
|
||||
Return oExplicitConstraint
|
||||
End If
|
||||
End Function
|
||||
|
||||
If IsNothing(oExplicitConstraint) Then
|
||||
Return oSimpleDateConstraint
|
||||
Else
|
||||
Return oExplicitConstraint
|
||||
End If
|
||||
End Function
|
||||
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}")
|
||||
|
||||
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}")
|
||||
If pTokens Is Nothing Then
|
||||
Logger.Warn("Token Object was nothing!")
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
If pTokens Is Nothing Then
|
||||
Logger.Warn("Token Object was nothing!")
|
||||
Exit Function
|
||||
End If
|
||||
If pTokens.Count = 0 Then
|
||||
Logger.Warn("Token Object was empty!")
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
If pTokens.Count = 0 Then
|
||||
Logger.Warn("Token Object was empty!")
|
||||
Exit Function
|
||||
End If
|
||||
Dim oOperatorString
|
||||
|
||||
Dim oOperatorString
|
||||
|
||||
Select Case _ActiveTokenOperator
|
||||
Case TokenOperator.Or
|
||||
oOperatorString = "OR"
|
||||
Case Else
|
||||
oOperatorString = "AND"
|
||||
End Select
|
||||
Select Case _ActiveTokenOperator
|
||||
Case TokenOperator.Or
|
||||
oOperatorString = "OR"
|
||||
Case Else
|
||||
oOperatorString = "AND"
|
||||
End Select
|
||||
|
||||
|
||||
For Each oToken In pTokens
|
||||
Dim oSQLInsert As String = $"
|
||||
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}, '{oOperatorString}')"
|
||||
|
||||
Dim oResult = Await My.Database.ExecuteNonQueryIDBAsync(oSQLInsert)
|
||||
Logger.Warn("Inserting Tokens failed!")
|
||||
Next
|
||||
End Function
|
||||
Dim oResult = Await My.Database.ExecuteNonQueryIDBAsync(oSQLInsert)
|
||||
Logger.Warn("Inserting Tokens failed!")
|
||||
Next
|
||||
End Function
|
||||
|
||||
|
||||
Private Async Function MaybeSetExplicitDateConstraint(pDateFrom As Date, pDateTo As Date) As Task(Of String)
|
||||
If pDateFrom.Equals(Date.MinValue) = False Then
|
||||
ExplicitDate = True
|
||||
Private Async Function MaybeSetExplicitDateConstraint(pDateFrom As Date, pDateTo As Date) As Task(Of String)
|
||||
If pDateFrom.Equals(Date.MinValue) = False Then
|
||||
ExplicitDate = True
|
||||
|
||||
Dim oDateTo As Date
|
||||
If pDateTo.Equals(Date.MinValue) Then
|
||||
oDateTo = pDateFrom
|
||||
Else
|
||||
oDateTo = pDateTo
|
||||
Dim oDateTo As Date
|
||||
If pDateTo.Equals(Date.MinValue) Then
|
||||
oDateTo = pDateFrom
|
||||
Else
|
||||
oDateTo = pDateTo
|
||||
End If
|
||||
Dim oProc = $"EXEC PRIDB_SEARCH_ADD_USR_DATE {UserId},'{pDateFrom}','{oDateTo}'"
|
||||
If Await My.Database.ExecuteNonQueryIDBAsync(oProc) = True Then
|
||||
Return $"{_ActiveDateAttribute}~DATEPART"
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End If
|
||||
Dim oProc = $"EXEC PRIDB_SEARCH_ADD_USR_DATE {UserId},'{pDateFrom}','{oDateTo}'"
|
||||
If Await My.Database.ExecuteNonQueryIDBAsync(oProc) = True Then
|
||||
Return $"{_ActiveDateAttribute}~DATEPART"
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End If
|
||||
|
||||
Return Nothing
|
||||
End Function
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Private Sub Form_Closed(sender As Object, e As EventArgs)
|
||||
RaiseEvent Closed(sender, 0)
|
||||
End Sub
|
||||
Private Sub Form_Closed(sender As Object, e As EventArgs)
|
||||
RaiseEvent Closed(sender, 0)
|
||||
End Sub
|
||||
|
||||
Private Function GetParams(pWindowTitle As String) As DocumentResultList.Params
|
||||
Dim oParams = New DocumentResultList.Params() With {
|
||||
Private Function GetParams(pWindowTitle As String) As DocumentResultList.Params
|
||||
Dim oParams = New DocumentResultList.Params() With {
|
||||
.WindowGuid = SearchId,
|
||||
.WindowTitle = pWindowTitle,
|
||||
.OperationModeOverride = Modules.ZooFlow.Constants.OperationMode.ZooFlow,
|
||||
@@ -275,143 +276,145 @@ Public Class SearchRunner
|
||||
},
|
||||
.ShowBackNavigation = False
|
||||
}
|
||||
Return oParams
|
||||
End Function
|
||||
Return oParams
|
||||
End Function
|
||||
|
||||
Private Function GetResultWindowString(pSearchContent As String, pWindowTitle As String) As String
|
||||
Dim oWindowString
|
||||
Private Function GetResultWindowString(pSearchContent As String, pWindowTitle As String) As String
|
||||
Dim oWindowString
|
||||
|
||||
' This is the default title
|
||||
If UserLanguage = State.UserState.LANG_DE_DE Then
|
||||
oWindowString = $"Suche"
|
||||
Else
|
||||
oWindowString = $"Search"
|
||||
End If
|
||||
|
||||
' If a Search String is given, we might take this
|
||||
If pSearchContent <> String.Empty Then
|
||||
If UserLanguage = State.UserState.LANG_DE_DE Then
|
||||
Return $"Suche Nach '{pSearchContent}'"
|
||||
' This is the default title
|
||||
If UserLanguage = DigitalData.Modules.ZooFlow.State.UserState.LANG_DE_DE Then
|
||||
oWindowString = $"Suche"
|
||||
Else
|
||||
Return $"Search For '{pSearchContent}'"
|
||||
oWindowString = $"Search"
|
||||
End If
|
||||
End If
|
||||
|
||||
' Window Title overrides everything
|
||||
If pWindowTitle IsNot Nothing Then
|
||||
oWindowString = pWindowTitle
|
||||
End If
|
||||
' If a Search String is given, we might take this
|
||||
If pSearchContent <> String.Empty Then
|
||||
If UserLanguage = DigitalData.Modules.ZooFlow.State.UserState.LANG_DE_DE Then
|
||||
Return $"Suche Nach '{pSearchContent}'"
|
||||
Else
|
||||
Return $"Search For '{pSearchContent}'"
|
||||
End If
|
||||
End If
|
||||
|
||||
Return oWindowString
|
||||
End Function
|
||||
' Window Title overrides everything
|
||||
If pWindowTitle IsNot Nothing Then
|
||||
oWindowString = pWindowTitle
|
||||
End If
|
||||
|
||||
Public Sub SetDateConstraint()
|
||||
_ActiveDateConstraint = String.Empty
|
||||
End Sub
|
||||
Return oWindowString
|
||||
End Function
|
||||
|
||||
Public Sub SetDateConstraint(pConstraintName As String)
|
||||
_ActiveDateConstraint = pConstraintName
|
||||
End Sub
|
||||
|
||||
Public Sub SetDateConstraint(pConstraint As DateConstraint)
|
||||
_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
|
||||
Return CREATED_TODAY
|
||||
|
||||
Case DateConstraint.Yesterday
|
||||
Return CREATED_YESTERDAY
|
||||
|
||||
Case DateConstraint.Tomorrow
|
||||
Return CREATED_TOMORROW
|
||||
|
||||
Case DateConstraint.Last7Days
|
||||
Return CREATED_LAST_7_DAYS
|
||||
|
||||
Case DateConstraint.CurrentMonth
|
||||
Return CREATED_MONTH_CURR
|
||||
|
||||
Case DateConstraint.LastMonth
|
||||
Return CREATED_MONTH_LAST
|
||||
|
||||
Case DateConstraint.CurrentYear
|
||||
Return CREATED_YEAR_CURRENT
|
||||
|
||||
Case DateConstraint.LastYear
|
||||
Return CREATED_YEAR_LAST
|
||||
|
||||
Case Else
|
||||
Return String.Empty
|
||||
|
||||
End Select
|
||||
End Function
|
||||
Public Function ConstantToDateConstraint(pConstant As String) As DateConstraint
|
||||
Select Case pConstant
|
||||
Case CREATED_TODAY
|
||||
Return DateConstraint.Today
|
||||
Case CREATED_YESTERDAY
|
||||
Return DateConstraint.Yesterday
|
||||
Case CREATED_TOMORROW
|
||||
Return DateConstraint.Tomorrow
|
||||
Case CREATED_LAST_7_DAYS
|
||||
Return DateConstraint.Last7Days
|
||||
Case CREATED_MONTH_CURR
|
||||
Return DateConstraint.CurrentMonth
|
||||
Case CREATED_MONTH_LAST
|
||||
Return DateConstraint.LastMonth
|
||||
Case CREATED_YEAR_CURRENT
|
||||
Return DateConstraint.CurrentYear
|
||||
Case CREATED_YEAR_LAST
|
||||
Return DateConstraint.LastYear
|
||||
Case Else
|
||||
Return DateConstraint.Undefined
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Public Sub SetDateAttribute(pAttributeName As String)
|
||||
_ActiveDateAttribute = pAttributeName
|
||||
End Sub
|
||||
|
||||
Public Sub SetDateAttribute()
|
||||
_ActiveDateAttribute = SEARCH_FACT_DATE_DEFAULT
|
||||
End Sub
|
||||
|
||||
Public Class SearchOptions
|
||||
Public SearchTitle As String
|
||||
|
||||
Public SearchString As String
|
||||
Public SearchTokens As IEnumerable(Of Search.SearchToken.Token)
|
||||
|
||||
Public DateFrom As Date
|
||||
Public DateTo As Date
|
||||
End Class
|
||||
|
||||
Public Class SearchResult
|
||||
Public OK As Boolean = True
|
||||
Public Count As Integer = 0
|
||||
Public ErrorMessage As String = String.Empty
|
||||
|
||||
''' <summary>
|
||||
''' Returns a positive Search Result
|
||||
''' </summary>
|
||||
Public Sub New(pCountResults As Integer)
|
||||
Count = pCountResults
|
||||
Public Sub SetDateConstraint()
|
||||
_ActiveDateConstraint = String.Empty
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns a failed search result with an error message
|
||||
''' </summary>
|
||||
''' <param name="pMessage"></param>
|
||||
Public Sub New(pMessage As String)
|
||||
OK = False
|
||||
ErrorMessage = pMessage
|
||||
Public Sub SetDateConstraint(pConstraintName As String)
|
||||
_ActiveDateConstraint = pConstraintName
|
||||
End Sub
|
||||
|
||||
Public Sub SetDateConstraint(pConstraint As DateConstraint)
|
||||
_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
|
||||
Return CREATED_TODAY
|
||||
|
||||
Case DateConstraint.Yesterday
|
||||
Return CREATED_YESTERDAY
|
||||
|
||||
Case DateConstraint.Tomorrow
|
||||
Return CREATED_TOMORROW
|
||||
|
||||
Case DateConstraint.Last7Days
|
||||
Return CREATED_LAST_7_DAYS
|
||||
|
||||
Case DateConstraint.CurrentMonth
|
||||
Return CREATED_MONTH_CURR
|
||||
|
||||
Case DateConstraint.LastMonth
|
||||
Return CREATED_MONTH_LAST
|
||||
|
||||
Case DateConstraint.CurrentYear
|
||||
Return CREATED_YEAR_CURRENT
|
||||
|
||||
Case DateConstraint.LastYear
|
||||
Return CREATED_YEAR_LAST
|
||||
|
||||
Case Else
|
||||
Return String.Empty
|
||||
|
||||
End Select
|
||||
End Function
|
||||
Public Function ConstantToDateConstraint(pConstant As String) As DateConstraint
|
||||
Select Case pConstant
|
||||
Case CREATED_TODAY
|
||||
Return DateConstraint.Today
|
||||
Case CREATED_YESTERDAY
|
||||
Return DateConstraint.Yesterday
|
||||
Case CREATED_TOMORROW
|
||||
Return DateConstraint.Tomorrow
|
||||
Case CREATED_LAST_7_DAYS
|
||||
Return DateConstraint.Last7Days
|
||||
Case CREATED_MONTH_CURR
|
||||
Return DateConstraint.CurrentMonth
|
||||
Case CREATED_MONTH_LAST
|
||||
Return DateConstraint.LastMonth
|
||||
Case CREATED_YEAR_CURRENT
|
||||
Return DateConstraint.CurrentYear
|
||||
Case CREATED_YEAR_LAST
|
||||
Return DateConstraint.LastYear
|
||||
Case Else
|
||||
Return DateConstraint.Undefined
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Public Sub SetDateAttribute(pAttributeName As String)
|
||||
_ActiveDateAttribute = pAttributeName
|
||||
End Sub
|
||||
|
||||
Public Sub SetDateAttribute()
|
||||
_ActiveDateAttribute = SEARCH_FACT_DATE_DEFAULT
|
||||
End Sub
|
||||
|
||||
Public Class SearchOptions
|
||||
Public SearchTitle As String
|
||||
|
||||
Public SearchString As String
|
||||
Public SearchTokens As IEnumerable(Of Search.SearchToken.Token)
|
||||
|
||||
Public DateFrom As Date
|
||||
Public DateTo As Date
|
||||
End Class
|
||||
|
||||
Public Class SearchResult
|
||||
Public OK As Boolean = True
|
||||
Public Count As Integer = 0
|
||||
Public ErrorMessage As String = String.Empty
|
||||
|
||||
''' <summary>
|
||||
''' Returns a positive Search Result
|
||||
''' </summary>
|
||||
Public Sub New(pCountResults As Integer)
|
||||
Count = pCountResults
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Returns a failed search result with an error message
|
||||
''' </summary>
|
||||
''' <param name="pMessage"></param>
|
||||
Public Sub New(pMessage As String)
|
||||
OK = False
|
||||
ErrorMessage = pMessage
|
||||
End Sub
|
||||
End Class
|
||||
End Class
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
|
||||
Reference in New Issue
Block a user