refactor(data-access): update ISearchQueryBuilder to use SearchId only

- Change interface methods to accept int searchId instead of SearchModel
- Update SqlKataSearchQueryBuilder to generate SQL using extraction functions
- SQL now calls dbo.fn_GetSearchWorkOrders(@SearchId) etc instead of TVPs
- Update SearchProcessor to pass model.Id to query builder
- Update tests for new method signatures
This commit is contained in:
Joseph Doherty
2026-01-06 14:08:47 -05:00
parent 7508001be1
commit 6074424524
4 changed files with 341 additions and 344 deletions
@@ -57,8 +57,8 @@ public sealed class SearchProcessor
await using var connection = await _connectionFactory.CreateLotFinderConnectionAsync(ct);
// Build the search query
var queryResult = _queryBuilder.BuildSearchQuery(model);
// Build the search query using searchId only
var queryResult = _queryBuilder.BuildSearchQuery(model.Id);
if (_options.EnableDebugSql && !string.IsNullOrEmpty(_options.DebugSqlPath))
{
@@ -111,8 +111,8 @@ public sealed class SearchProcessor
await using var connection = await _connectionFactory.CreateLotFinderConnectionAsync(ct);
// Build the search query
var queryResult = _queryBuilder.BuildSearchQuery(model);
// Build the search query using searchId only
var queryResult = _queryBuilder.BuildSearchQuery(model.Id);
if (_options.EnableDebugSql && !string.IsNullOrEmpty(_options.DebugSqlPath))
{
@@ -183,7 +183,7 @@ public sealed class SearchProcessor
}
// Execute MIS result query
var misQueryResult = _queryBuilder.BuildMisQuery(model);
var misQueryResult = _queryBuilder.BuildMisQuery(model.Id);
var misResults = await connection.QueryAsync<MisSearchResult>(
misQueryResult.Sql,
misQueryResult.Parameters,
@@ -193,7 +193,7 @@ public sealed class SearchProcessor
_logger.LogDebug("Found {MisResultCount} MIS results", model.MisResults.Count);
// Execute MIS non-match query
var misNonMatchQueryResult = _queryBuilder.BuildMisNonMatchQuery(model);
var misNonMatchQueryResult = _queryBuilder.BuildMisNonMatchQuery(model.Id);
var misNonMatchResults = await connection.QueryAsync<MisNonMatchSearchResult>(
misNonMatchQueryResult.Sql,
misNonMatchQueryResult.Parameters,