feat(dal, core, workloadBuilderWorker): Сервисы по работе с очередями (задачиами). Заготовка WorkloadBuilderWorker

This commit is contained in:
Mikhail Trubnikov
2026-04-21 16:54:39 +10:00
parent 2a6fd7177d
commit 001c09edaa
22 changed files with 762 additions and 4 deletions

View File

@@ -0,0 +1,49 @@
namespace PARR.Core.Services.Task.Handlers
{
/// <summary>
/// Результат выполнения задачи обработчиком.
/// Используется для преедачи данных между BaseTaskHandler и конкретными хендлерами.
/// </summary>
public class HandlerResult
{
// TODO: может его перенести в Domain
/// <summary>
/// Успешно ли выполнено
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// Данные результата (JSON, если нужно сохранить в БД)
/// </summary>
public string? ResultData { get; set; }
/// <summary>
/// Сообщение об ошибке (если IsSuccess = false)
/// </summary>
public string? ErrorMessage { get; set; }
/// <summary>
/// Исключение
/// </summary>
public Exception? Exception { get; set; }
/// <summary>
/// Создать успешный результат
/// </summary>
/// <param name="resultData"></param>
/// <returns></returns>
public static HandlerResult Success(string? resultData = null) => new() { IsSuccess = true, ResultData = resultData };
/// <summary>
/// Создать результат с ошибкой
/// </summary>
/// <param name="errorMessage"></param>
/// <param name="ex"></param>
/// <returns></returns>
public static HandlerResult Failure(string errorMessage, Exception? ex = null) => new() { IsSuccess = false, ErrorMessage = errorMessage, Exception = ex };
}
}