This commit is contained in:
2026-03-20 20:09:36 +01:00
parent 03cbbae48a
commit c378c7a0dd
24 changed files with 336 additions and 392 deletions
@@ -0,0 +1,39 @@
using MassTransit;
using Microsoft.Extensions.Logging;
using Musify.Application.Contracts.Infrastructure;
using Musify.Infrastructure.Messaging.Activities.Arguments;
namespace Musify.Infrastructure.Messaging.Activities
{
public class CopyFilesActivity(IStorageHandler storageHandler, ILogger<CopyFilesActivity> logger)
: IExecuteActivity<CopyFileArguments[]>
{
public async Task<ExecutionResult> Execute(ExecuteContext<CopyFileArguments[]> executeContext)
{
foreach (var file in executeContext.Arguments)
{
var copyFileResult = await storageHandler.CopyFileAsync(
file.SourceBucketName,
file.SourceKeyName,
file.DestinationBucketName,
file.SourceKeyName,
executeContext.CancellationToken);
if (!copyFileResult.IsSuccess)
{
string errorMessage = string.Join("; ", copyFileResult.Errors);
logger.LogError(
"Failed to copy file from {SourceBucket}/{SourceKey} to {DestinationBucket}/{DestinationKey}. Error: {ErrorMessage}",
file.SourceBucketName,
file.SourceKeyName,
file.DestinationBucketName,
file.DestinationKeyName,
errorMessage);
throw new Exception(errorMessage);
}
}
return executeContext.Completed();
}
}
}