35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using MassTransit;
|
|
using Musify.Domain.ValueObjects;
|
|
using Musify.Infrastructure.MassTransit.Arguments;
|
|
using Musify.Infrastructure.MassTransit.RoutingSlip;
|
|
|
|
namespace Musify.Infrastructure.MassTransit.Consumers
|
|
{
|
|
internal static class ProcessingFailedCleanup
|
|
{
|
|
public static Task ExecuteAsync(
|
|
IBus bus,
|
|
Guid subjectId,
|
|
string markStepName,
|
|
string markEndpointName,
|
|
string? bucket,
|
|
params (string StepName, string? Key)[] files)
|
|
{
|
|
var builder = RoutingSlips.Create(correlationId: null);
|
|
|
|
if (!string.IsNullOrWhiteSpace(bucket))
|
|
{
|
|
foreach (var (stepName, key) in files)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(key))
|
|
builder.AddRemoveFile(stepName, bucket, key);
|
|
}
|
|
}
|
|
|
|
builder.AddStep(markStepName, markEndpointName, new MarkLifeCycleArguments(subjectId, LifeCycleStatus.Failed));
|
|
|
|
return bus.Execute(builder.Build());
|
|
}
|
|
}
|
|
}
|