Skip to content

Commit

Permalink
bugfix: SearchId not working with multiple columns
Browse files Browse the repository at this point in the history
  • Loading branch information
gumbarros committed Jun 24, 2024
1 parent 4eeeb21 commit 5b45cf7
Showing 1 changed file with 10 additions and 24 deletions.
34 changes: 10 additions & 24 deletions src/Core/DataManager/Services/DataItemService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,6 @@ public class DataItemService(
ElementMapService elementMapService,
ILogger<DataItemService> logger)
{
private IEntityRepository EntityRepository { get; } = entityRepository;
private ExpressionParser ExpressionParser { get; } = expressionParser;
private ElementMapService ElementMapService { get; } = elementMapService;
private ILogger<DataItemService> Logger { get; } = logger;

public async Task<List<DataItemValue>> GetValuesAsync(
FormElementDataItem dataItem,
DataQuery dataQuery)
Expand Down Expand Up @@ -93,7 +88,7 @@ private async Task<List<DataItemValue>> GetElementMapValues(FormElementDataItem
string? searchText = dataQuery.SearchText;

var elementMap = dataItem.ElementMap;
var values = await ElementMapService.GetDictionaryList(elementMap!, searchId, formStateData);
var values = await elementMapService.GetDictionaryList(elementMap!, searchId, formStateData);

List<DataItemValue> result = [];

Expand Down Expand Up @@ -143,11 +138,11 @@ private async Task<List<DataItemValue>> GetSqlCommandValues(

try
{
dataTable = await EntityRepository.GetDataTableAsync(command, connectionId);
dataTable = await entityRepository.GetDataTableAsync(command, connectionId);
}
catch (Exception ex)
{
Logger.LogDataAccessCommandException(ex, command);
logger.LogDataAccessCommandException(ex, command);
throw;
}

Expand Down Expand Up @@ -197,23 +192,14 @@ private DataAccessCommand GetDataItemCommand(FormElementDataItem dataItem, FormS
string? searchId)
{
var sql = dataItem.Command!.Sql;
if (sql.Contains("{"))
{
if (searchId != null)
{
if (formStateData.UserValues != null && !formStateData.UserValues.ContainsKey("SearchId"))
formStateData.UserValues.Add("SearchId", searchId);
}

if (searchText != null)
{
if (formStateData.UserValues != null && !formStateData.UserValues.ContainsKey("SearchText"))
formStateData.UserValues.Add("SearchText", searchText);
}
}

var parsedValues = ExpressionParser.ParseExpression(sql, formStateData);
var parsedValues = expressionParser.ParseExpression(sql, formStateData);

if (searchId != null)
parsedValues["SearchId"] = searchId;

if (searchText != null)
parsedValues["SearchText"] = searchId;

return ExpressionDataAccessCommandFactory.Create(sql, parsedValues);
}
}

0 comments on commit 5b45cf7

Please sign in to comment.