Refactor SQL construction with StringBuilder for clarity

Refactored DeleteObjectProcedureHandler, InsertObjectProcedureHandler, and UpdateObjectProcedureHandler to use StringBuilder for building SQL command strings. This improves readability and maintainability without changing the logic or parameters. Added System.Text using directives as needed.
This commit is contained in:
2026-03-27 14:54:27 +01:00
parent b2544b64e3
commit 210ed9be8d
3 changed files with 128 additions and 32 deletions

View File

@@ -11,6 +11,7 @@ using ReC.Application.Endpoints.Commands;
using ReC.Application.Profile.Commands;
using ReC.Application.RecActions.Commands;
using ReC.Application.Results.Commands;
using System.Text;
namespace ReC.Application.Common.Procedures.InsertProcedure;
@@ -104,20 +105,64 @@ public class InsertObjectProcedureHandler(IRepository repo, IOptionsMonitor<SqlE
}
};
var sql = new StringBuilder()
.AppendLine("EXEC [dbo].[PRREC_INSERT_OBJECT]")
.AppendLine(" @pENTITY = @pENTITY,")
.AppendLine(" @pADDED_WHO = @pADDED_WHO,")
.AppendLine(" @pADDED_WHEN = @pADDED_WHEN,")
.AppendLine(" @pACTION_PROFILE_ID = @pACTION_PROFILE_ID,")
.AppendLine(" @pACTION_ACTIVE = @pACTION_ACTIVE,")
.AppendLine(" @pACTION_SEQUENCE = @pACTION_SEQUENCE,")
.AppendLine(" @pACTION_ENDPOINT_ID = @pACTION_ENDPOINT_ID,")
.AppendLine(" @pACTION_ENDPOINT_AUTH_ID = @pACTION_ENDPOINT_AUTH_ID,")
.AppendLine(" @pACTION_ENDPOINT_PARAMS_ID = @pACTION_ENDPOINT_PARAMS_ID,")
.AppendLine(" @pACTION_SQL_CONNECTION_ID = @pACTION_SQL_CONNECTION_ID,")
.AppendLine(" @pACTION_TYPE_ID = @pACTION_TYPE_ID,")
.AppendLine(" @pACTION_PRE_SQL = @pACTION_PRE_SQL,")
.AppendLine(" @pACTION_HEADER_SQL = @pACTION_HEADER_SQL,")
.AppendLine(" @pACTION_BODY_SQL = @pACTION_BODY_SQL,")
.AppendLine(" @pACTION_POST_SQL = @pACTION_POST_SQL,")
.AppendLine(" @pACTION_ERROR_ACTION_ID = @pACTION_ERROR_ACTION_ID,")
.AppendLine(" @pENDPOINT_ACTIVE = @pENDPOINT_ACTIVE,")
.AppendLine(" @pENDPOINT_DESCRIPTION = @pENDPOINT_DESCRIPTION,")
.AppendLine(" @pENDPOINT_URI = @pENDPOINT_URI,")
.AppendLine(" @pENDPOINT_AUTH_ACTIVE = @pENDPOINT_AUTH_ACTIVE,")
.AppendLine(" @pENDPOINT_AUTH_DESCRIPTION = @pENDPOINT_AUTH_DESCRIPTION,")
.AppendLine(" @pENDPOINT_AUTH_TYPE_ID = @pENDPOINT_AUTH_TYPE_ID,")
.AppendLine(" @pENDPOINT_AUTH_API_KEY = @pENDPOINT_AUTH_API_KEY,")
.AppendLine(" @pENDPOINT_AUTH_API_VALUE = @pENDPOINT_AUTH_API_VALUE,")
.AppendLine(" @pENDPOINT_AUTH_API_KEY_ADD_TO_ID = @pENDPOINT_AUTH_API_KEY_ADD_TO_ID,")
.AppendLine(" @pENDPOINT_AUTH_TOKEN = @pENDPOINT_AUTH_TOKEN,")
.AppendLine(" @pENDPOINT_AUTH_USERNAME = @pENDPOINT_AUTH_USERNAME,")
.AppendLine(" @pENDPOINT_AUTH_PASSWORD = @pENDPOINT_AUTH_PASSWORD,")
.AppendLine(" @pENDPOINT_AUTH_DOMAIN = @pENDPOINT_AUTH_DOMAIN,")
.AppendLine(" @pENDPOINT_AUTH_WORKSTATION = @pENDPOINT_AUTH_WORKSTATION,")
.AppendLine(" @pPROFILE_ACTIVE = @pPROFILE_ACTIVE,")
.AppendLine(" @pPROFILE_TYPE_ID = @pPROFILE_TYPE_ID,")
.AppendLine(" @pPROFILE_MANDANTOR = @pPROFILE_MANDANTOR,")
.AppendLine(" @pPROFILE_NAME = @pPROFILE_NAME,")
.AppendLine(" @pPROFILE_DESCRIPTION = @pPROFILE_DESCRIPTION,")
.AppendLine(" @pPROFILE_LOG_LEVEL_ID = @pPROFILE_LOG_LEVEL_ID,")
.AppendLine(" @pPROFILE_LANGUAGE_ID = @pPROFILE_LANGUAGE_ID,")
.AppendLine(" @pRESULT_ACTION_ID = @pRESULT_ACTION_ID,")
.AppendLine(" @pRESULT_STATUS_ID = @pRESULT_STATUS_ID,")
.AppendLine(" @pRESULT_HEADER = @pRESULT_HEADER,")
.AppendLine(" @pRESULT_BODY = @pRESULT_BODY,")
.AppendLine(" @pRESULT_INFO = @pRESULT_INFO,")
.AppendLine(" @pRESULT_ERROR = @pRESULT_ERROR,")
.AppendLine(" @pRESULT_TYPE_ID = @pRESULT_TYPE_ID,")
.AppendLine(" @pENDPOINT_PARAMS_ACTIVE = @pENDPOINT_PARAMS_ACTIVE,")
.AppendLine(" @pENDPOINT_PARAMS_DESCRIPTION = @pENDPOINT_PARAMS_DESCRIPTION,")
.AppendLine(" @pENDPOINT_PARAMS_GROUP_ID = @pENDPOINT_PARAMS_GROUP_ID,")
.AppendLine(" @pENDPOINT_PARAMS_SEQUENCE = @pENDPOINT_PARAMS_SEQUENCE,")
.AppendLine(" @pENDPOINT_PARAMS_KEY = @pENDPOINT_PARAMS_KEY,")
.AppendLine(" @pENDPOINT_PARAMS_VALUE = @pENDPOINT_PARAMS_VALUE,")
.AppendLine(" @oGUID = @oGUID OUTPUT")
.ToString();
try
{
await repo.ExecuteQueryRawAsync(
"EXEC [dbo].[PRREC_INSERT_OBJECT] " +
"@pENTITY = @pENTITY, @pADDED_WHO = @pADDED_WHO, @pADDED_WHEN = @pADDED_WHEN, " +
"@pACTION_PROFILE_ID = @pACTION_PROFILE_ID, @pACTION_ACTIVE = @pACTION_ACTIVE, @pACTION_SEQUENCE = @pACTION_SEQUENCE, @pACTION_ENDPOINT_ID = @pACTION_ENDPOINT_ID, @pACTION_ENDPOINT_AUTH_ID = @pACTION_ENDPOINT_AUTH_ID, @pACTION_ENDPOINT_PARAMS_ID = @pACTION_ENDPOINT_PARAMS_ID, @pACTION_SQL_CONNECTION_ID = @pACTION_SQL_CONNECTION_ID, @pACTION_TYPE_ID = @pACTION_TYPE_ID, @pACTION_PRE_SQL = @pACTION_PRE_SQL, @pACTION_HEADER_SQL = @pACTION_HEADER_SQL, @pACTION_BODY_SQL = @pACTION_BODY_SQL, @pACTION_POST_SQL = @pACTION_POST_SQL, @pACTION_ERROR_ACTION_ID = @pACTION_ERROR_ACTION_ID, " +
"@pENDPOINT_ACTIVE = @pENDPOINT_ACTIVE, @pENDPOINT_DESCRIPTION = @pENDPOINT_DESCRIPTION, @pENDPOINT_URI = @pENDPOINT_URI, " +
"@pENDPOINT_AUTH_ACTIVE = @pENDPOINT_AUTH_ACTIVE, @pENDPOINT_AUTH_DESCRIPTION = @pENDPOINT_AUTH_DESCRIPTION, @pENDPOINT_AUTH_TYPE_ID = @pENDPOINT_AUTH_TYPE_ID, @pENDPOINT_AUTH_API_KEY = @pENDPOINT_AUTH_API_KEY, @pENDPOINT_AUTH_API_VALUE = @pENDPOINT_AUTH_API_VALUE, @pENDPOINT_AUTH_API_KEY_ADD_TO_ID = @pENDPOINT_AUTH_API_KEY_ADD_TO_ID, @pENDPOINT_AUTH_TOKEN = @pENDPOINT_AUTH_TOKEN, @pENDPOINT_AUTH_USERNAME = @pENDPOINT_AUTH_USERNAME, @pENDPOINT_AUTH_PASSWORD = @pENDPOINT_AUTH_PASSWORD, @pENDPOINT_AUTH_DOMAIN = @pENDPOINT_AUTH_DOMAIN, @pENDPOINT_AUTH_WORKSTATION = @pENDPOINT_AUTH_WORKSTATION, " +
"@pPROFILE_ACTIVE = @pPROFILE_ACTIVE, @pPROFILE_TYPE_ID = @pPROFILE_TYPE_ID, @pPROFILE_MANDANTOR = @pPROFILE_MANDANTOR, @pPROFILE_NAME = @pPROFILE_NAME, @pPROFILE_DESCRIPTION = @pPROFILE_DESCRIPTION, @pPROFILE_LOG_LEVEL_ID = @pPROFILE_LOG_LEVEL_ID, @pPROFILE_LANGUAGE_ID = @pPROFILE_LANGUAGE_ID, " +
"@pRESULT_ACTION_ID = @pRESULT_ACTION_ID, @pRESULT_STATUS_ID = @pRESULT_STATUS_ID, @pRESULT_HEADER = @pRESULT_HEADER, @pRESULT_BODY = @pRESULT_BODY, @pRESULT_INFO = @pRESULT_INFO, @pRESULT_ERROR = @pRESULT_ERROR, @pRESULT_TYPE_ID = @pRESULT_TYPE_ID, " +
"@pENDPOINT_PARAMS_ACTIVE = @pENDPOINT_PARAMS_ACTIVE, @pENDPOINT_PARAMS_DESCRIPTION = @pENDPOINT_PARAMS_DESCRIPTION, @pENDPOINT_PARAMS_GROUP_ID = @pENDPOINT_PARAMS_GROUP_ID, @pENDPOINT_PARAMS_SEQUENCE = @pENDPOINT_PARAMS_SEQUENCE, @pENDPOINT_PARAMS_KEY = @pENDPOINT_PARAMS_KEY, @pENDPOINT_PARAMS_VALUE = @pENDPOINT_PARAMS_VALUE, " +
"@oGUID = @oGUID OUTPUT",
parameters,
cancel);
await repo.ExecuteQueryRawAsync(sql, parameters, cancel);
}
catch (SqlException ex)
{