Files
Musify/Infrastructure/MassTransit/RoutingSlip/Builders/AudioWorkflowRoutingSlipBuilder.cs
T
2026-03-24 19:32:43 +01:00

52 lines
2.3 KiB
C#

using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.Configuration;
using Musify.Infrastructure.Messaging.Activities;
using Musify.Infrastructure.Messaging.Activities.Arguments;
using Musify.Infrastructure.Messaging.Consumers;
namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
{
public class AudioWorkflowRoutingSlipBuilder(WorkerConfiguration workerConfiguration)
{
public RoutingSlipBuilder Build(TranscodeAudioFromTrackEvent message, Guid? correlationId)
{
var routingSlipBuilder = new RoutingSlipBuilder(NewId.NextGuid());
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
routingSlipBuilder.AddActivity(
ActivityNames.GenerateAudioWorkflowPaths,
MessagingHelper.BuildExecuteActivityUri(GenerateAudioWorkflowPathsActivity.ExecuteEndpointName),
new GenerateAudioWorkflowPathsArguments(
workerConfiguration.Routes.TemporaryFilesDirectory,
message.SourceKeyName));
routingSlipBuilder.AddActivity(
ActivityNames.DownloadFile,
MessagingHelper.BuildExecuteActivityUri(DownloadFileFromBucketActivity.ExecuteEndpointName),
new DownloadFileFromBucketArguments(
message.SourceBucketName,
message.SourceKeyName,
RoutingSlipVariableNames.Audio.SourceFilePath));
routingSlipBuilder.AddActivity(
ActivityNames.TranscodeAudio,
MessagingHelper.BuildExecuteActivityUri(TranscodeDashAudioActivity.ExecuteEndpointName),
new TranscodeDashAudioArguments(
RoutingSlipVariableNames.Audio.SourceFilePath,
RoutingSlipVariableNames.Workflow.TempDirectory));
routingSlipBuilder.AddActivity(
ActivityNames.UploadFiles,
MessagingHelper.BuildExecuteActivityUri(TransferFilesToBucket.ExecuteEndpointName),
new TransferFilesToBucketArguments(
message.DestinationBucketName,
RoutingSlipVariableNames.Audio.TranscodedDirectory,
message.DestinationKeyName));
return routingSlipBuilder;
}
}
}