From db0f11d27e95c323dbdd7d7e1dbe3f3e6aae3ddf Mon Sep 17 00:00:00 2001 From: XShine555 Date: Fri, 20 Mar 2026 12:01:08 +0100 Subject: [PATCH] Error message --- Domain/Entities/JobOperation.cs | 4 ++++ .../Consumers/ResizePictureConsumer.cs | 21 +++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Domain/Entities/JobOperation.cs b/Domain/Entities/JobOperation.cs index 096ea08..3e14c26 100644 --- a/Domain/Entities/JobOperation.cs +++ b/Domain/Entities/JobOperation.cs @@ -25,6 +25,10 @@ namespace Musify.Domain.Entities [NotMapped] public bool IsPending => JobState == JobState.Pending; + [Required] + [MaxLength(512)] + public string ErrorMessage { get; set; } = string.Empty; + [Required] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; diff --git a/Infrastructure/Messaging/Consumers/ResizePictureConsumer.cs b/Infrastructure/Messaging/Consumers/ResizePictureConsumer.cs index f7a2619..bc261f9 100644 --- a/Infrastructure/Messaging/Consumers/ResizePictureConsumer.cs +++ b/Infrastructure/Messaging/Consumers/ResizePictureConsumer.cs @@ -31,7 +31,7 @@ namespace Musify.Infrastructure.Messaging.Consumers var sourceImageResult = await GetSourceImageAsync(message.BucketName, message.KeyName, cancellationToken); if (!sourceImageResult.IsSuccess) { - MarkAllAsFailed(jobOperations); + MarkAllAsFailed(jobOperations, $"Failed to retrieve source image from storage, ResultState: {sourceImageResult.Status}"); await database.SaveChangesAsync(cancellationToken); return; } @@ -147,11 +147,12 @@ namespace Musify.Infrastructure.Messaging.Consumers if (!resizedPictureResult.IsSuccess) { + var errorMessage = string.Join("; ", resizedPictureResult.Errors); logger.LogError("Failed to resize picture for JobOperationId={JobOperationId}. Error: {ErrorMessage}", jobOperation.Id, - string.Join("; ", resizedPictureResult.Errors)); + errorMessage); - MarkAsFailed(jobOperation); + MarkAsFailed(jobOperation, errorMessage); return; } @@ -164,11 +165,12 @@ namespace Musify.Infrastructure.Messaging.Consumers if (!saveResult.IsSuccess) { + var errorMessage = string.Join("; ", saveResult.Errors); logger.LogError("Failed to upload resized picture for JobOperationId={JobOperationId}. Error: {ErrorMessage}", jobOperation.Id, - string.Join("; ", saveResult.Errors)); + errorMessage); - MarkAsFailed(jobOperation); + MarkAsFailed(jobOperation, errorMessage); return; } @@ -184,22 +186,23 @@ namespace Musify.Infrastructure.Messaging.Consumers operationItem.Item.Height, operationItem.Item.SaveOnRoute); - MarkAsFailed(jobOperation); + MarkAsFailed(jobOperation, exception.Message); } } - private static void MarkAllAsFailed(IEnumerable jobOperations) + private static void MarkAllAsFailed(IEnumerable jobOperations, string errorMessage) { foreach (var operationItem in jobOperations) { - MarkAsFailed(operationItem.JobOperation); + MarkAsFailed(operationItem.JobOperation, errorMessage); } } - private static void MarkAsFailed(JobOperation jobOperation) + private static void MarkAsFailed(JobOperation jobOperation, string errorMessage) { jobOperation.JobState = JobState.Failed; jobOperation.FinishedAt = DateTime.UtcNow; + jobOperation.ErrorMessage = errorMessage; } } } \ No newline at end of file