Improve database connection error message

A misleading error message is shown in the log if the databse cannot be reached on server start up.

The error message should clearly state that the databse is not available.

Maybe it could also suggest that ‘localhost’ is likely a wrong value for the database address if the server runs in docker.

2024-10-08 14:04:57 Development self-signed SSL certificate files created.

2024-10-08 14:04:57 Starting nginx: nginx.

2024-10-08 14:05:00 warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
2024-10-08 14:05:00       Storing keys in a directory '/home/origam/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. For more information go to https://aka.ms/aspnet/dataprotectionwarning
2024-10-08 14:05:30 2024-10-08 12:05:30,152 [16] ERROR Origam.Security.AbstractProfileProvider - Data constant/parameter not found. (Parameter 'id')
2024-10-08 14:05:30 Actual value was e77b0cfb-f982-44ab-9c3a-4dabac54b622.
2024-10-08 14:05:30 System.ArgumentOutOfRangeException: Data constant/parameter not found. (Parameter 'id')
2024-10-08 14:05:30 Actual value was e77b0cfb-f982-44ab-9c3a-4dabac54b622.
2024-10-08 14:05:30    at Origam.Workbench.Services.ParameterService.GetParameterValue(Guid id, Nullable`1 overridenProfileId) in D:\a\1\s\backend\Origam.Workbench.Services\ParameterService.cs:line 202
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderConstant(DataConstant constant, Boolean userDefinedParameters) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3511
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderExpression(DataConstantReference item) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3520
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderExpression(ISchemaItem item, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences, Boolean renderSqlForDetachedFields) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3133
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderExpression(ISchemaItem item, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3106
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.GetItemByFunctionParameter(FunctionCall item, String parameterName, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3911
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderBuiltinFunction(FunctionCall item, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3770
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderExpression(FunctionCall item, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3550
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderExpression(ISchemaItem item, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences, Boolean renderSqlForDetachedFields) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3129
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderExpression(ISchemaItem item, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3106
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderFilter(StringBuilder sqlExpression, EntityFilter filter, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 3035
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderSelectWherePart(StringBuilder sqlExpression, DataStructureEntity entity, DataStructureFilterSet filterSet, Hashtable replaceParameterTexts, Hashtable parameters, Hashtable parameterReferences) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 2915
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.SelectSql(SelectParameters selectParameters, Hashtable replaceParameterTexts, Hashtable selectParameterReferences, Boolean restrictScalarToTop1, Boolean isInRecursion, Boolean forceDatabaseCalculation, FilterCommandParser filterCommandParser, OrderByCommandParser orderByCommandParser) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 1159
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderLookupColumnExpression(DataStructure ds, DataStructureEntity entity, IDataEntityColumn field, IDataLookup lookup, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences, Boolean isInRecursion, Nullable`1 rowOffset) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 2559
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderLookupColumnExpression(DataStructure ds, DataStructureEntity entity, IDataEntityColumn field, IDataLookup lookup, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences, Nullable`1 rowOffset) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 2482
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderLookupColumnExpression(DataStructure ds, DataStructureEntity entity, DataStructureColumn column, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable parameterReferences, DataServiceDataLookup customLookup, Nullable`1 rowOffset) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 2472
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.GetDataStructureColumnSqlExpression(DataStructure ds, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, Hashtable selectParameterReferences, Boolean isInRecursion, Boolean& groupByNeeded, ColumnsInfo columnsInfo, DataStructureColumn column, String& groupExpression) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 2339
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderDataStructureColumn(DataStructure ds, DataStructureEntity entity, Hashtable replaceParameterTexts, Hashtable dynamicParameters, DataStructureSortSet sortSet, Hashtable selectParameterReferences, Boolean isInRecursion, Boolean forceDatabaseCalculation, String& group, SortedList`2 order, Boolean& groupByNeeded, ColumnsInfo columnsInfo, DataStructureColumn column, LookupOrderingInfo orderingInfo, FilterCommandParser filterCommandParser, OrderByCommandParser orderByCommandParser, Nullable`1 rowOffset) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 2268
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.RenderSelectColumns(SelectParameters selectParameters, StringBuilder sqlExpression, StringBuilder orderByBuilder, StringBuilder groupByBuilder, Hashtable replaceParameterTexts, Hashtable selectParameterReferences, Boolean isInRecursion, Boolean concatScalarColumns, Boolean forceDatabaseCalculation, FilterCommandParser filterCommandParser, OrderByCommandParser orderByCommandParser) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 1876
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.SelectSql(SelectParameters selectParameters, Hashtable replaceParameterTexts, Hashtable selectParameterReferences, Boolean restrictScalarToTop1, Boolean isInRecursion, Boolean forceDatabaseCalculation, FilterCommandParser filterCommandParser, OrderByCommandParser orderByCommandParser) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 1032
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.BuildCommands(IDbDataAdapter adapter, SelectParameters selectParameters, Boolean forceDatabaseCalculation) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 335
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlCommandGenerator.CreateDataAdapter(SelectParameters adParameters, Boolean forceDatabaseCalculation) in D:\a\1\s\backend\Origam.DA.Service\Generators\AbstractSqlCommandGenerator.cs:line 164
2024-10-08 14:05:30    at Origam.DA.Service.AbstractDataService.GetAdapterNonCached(SelectParameters adParameters) in D:\a\1\s\backend\Origam.DA.Service\AbstractDataService.cs:line 197
2024-10-08 14:05:30    at Origam.DA.Service.AbstractDataService.GetAdapterCached(SelectParameters adParameters, String identityId) in D:\a\1\s\backend\Origam.DA.Service\AbstractDataService.cs:line 245
2024-10-08 14:05:30    at Origam.DA.Service.AbstractDataService.GetAdapter(SelectParameters selectParameters, UserProfile userProfile) in D:\a\1\s\backend\Origam.DA.Service\AbstractDataService.cs:line 143
2024-10-08 14:05:30    at Origam.DA.Service.DataLoader.Fill() in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 84
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlDataService.<>c__DisplayClass18_1.<LoadDataSet>b__0() in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 385
2024-10-08 14:05:30    at Origam.DA.Service.Profiler.ExecuteAndTakeLoggingAction(DataStructureEntity entity, Action`2 loggingAction, Action actionToExecute) in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 2914
2024-10-08 14:05:30    at Origam.DA.Service.Profiler.ExecuteAndRememberLoadDuration(DataStructureEntity entity, Action actionToExecute) in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 2887
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlDataService.LoadDataSet(DataStructureQuery query, IPrincipal principal, DataSet dataset, String transactionId) in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 361
2024-10-08 14:05:30    at Origam.DA.Service.AbstractSqlDataService.LoadDataSet(DataStructureQuery dataStructureQuery, IPrincipal principal, String transactionId) in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 261
2024-10-08 14:05:30    at Origam.Workflow.DataServiceAgent.LoadData(DataStructureQuery query, DataSet data) in D:\a\1\s\backend\Origam.Workflow\Service Agents\DataServiceAgent.cs:line 90
2024-10-08 14:05:30    at Origam.Workflow.DataServiceAgent.LoadData(DataStructureQuery query) in D:\a\1\s\backend\Origam.Workflow\Service Agents\DataServiceAgent.cs:line 80
2024-10-08 14:05:30    at Origam.Workflow.DataServiceAgent.Run() in D:\a\1\s\backend\Origam.Workflow\Service Agents\DataServiceAgent.cs:line 478
2024-10-08 14:05:30    at Origam.Security.OrigamProfileProvider.GetProfileData(String userName)
2024-10-08 14:05:30    at Origam.Security.OrigamProfileProvider.GetProfile(String userName)
2024-10-08 14:05:30 2024-10-08 12:05:30,244 [16] ERROR Origam.Workflow.WorkQueue.WorkQueueService - Unexpected error occured while autoprocessing workqueues.
2024-10-08 14:05:30 System.Exception: Could not load user profile.