diff --git a/src/Core/DataManager/Services/DataItemService.cs b/src/Core/DataManager/Services/DataItemService.cs index d81830e0c..7da1d5288 100644 --- a/src/Core/DataManager/Services/DataItemService.cs +++ b/src/Core/DataManager/Services/DataItemService.cs @@ -24,11 +24,6 @@ public class DataItemService( ElementMapService elementMapService, ILogger logger) { - private IEntityRepository EntityRepository { get; } = entityRepository; - private ExpressionParser ExpressionParser { get; } = expressionParser; - private ElementMapService ElementMapService { get; } = elementMapService; - private ILogger Logger { get; } = logger; - public async Task> GetValuesAsync( FormElementDataItem dataItem, DataQuery dataQuery) @@ -93,7 +88,7 @@ private async Task> 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 result = []; @@ -143,11 +138,11 @@ private async Task> 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; } @@ -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); } } \ No newline at end of file