Change editor rule

This commit is contained in:
2026-09-24 13:24:43 +02:00
parent 16478678b5
commit 73e37dbecd
401 changed files with 14735 additions and 12995 deletions
@@ -3,16 +3,17 @@ using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.Activities.LifeCycle;
using Musify.Infrastructure.MassTransit.RoutingSlip;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class AlbumProcessingFailedConsumer(IBus bus) : IConsumer<AlbumProcessingFailed>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<AlbumProcessingFailed> context)
public class AlbumProcessingFailedConsumer(IBus bus) : IConsumer<AlbumProcessingFailed>
{
var message = context.Message;
public Task Consume(ConsumeContext<AlbumProcessingFailed> context)
{
var message = context.Message;
return ProcessingFailedCleanup.ExecuteAsync(
bus, message.AlbumId, ActivityNames.MarkAlbumAsFailed, MarkAlbumLifeCycleActivity.ExecuteEndpointName, message.Bucket,
(ActivityNames.RemoveAlbumOriginalPicture, message.PictureKey));
return ProcessingFailedCleanup.ExecuteAsync(
bus, message.AlbumId, ActivityNames.MarkAlbumAsFailed, MarkAlbumLifeCycleActivity.ExecuteEndpointName, message.Bucket,
(ActivityNames.RemoveAlbumOriginalPicture, message.PictureKey));
}
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class CreateAlbumConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<CreateAlbumResourcesEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<CreateAlbumResourcesEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class CreateAlbumConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<CreateAlbumResourcesEvent>
{
public Task Consume(ConsumeContext<CreateAlbumResourcesEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class CreatePlayListConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<CreatePlayListResourcesEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<CreatePlayListResourcesEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class CreatePlayListConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<CreatePlayListResourcesEvent>
{
public Task Consume(ConsumeContext<CreatePlayListResourcesEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class CreateTrackConsumer(IBus bus, CreateTrackRoutingSlipBuilder routingSlipBuilder)
: IConsumer<CreateTrackResourcesEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<CreateTrackResourcesEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class CreateTrackConsumer(IBus bus, CreateTrackRoutingSlipBuilder routingSlipBuilder)
: IConsumer<CreateTrackResourcesEvent>
{
public Task Consume(ConsumeContext<CreateTrackResourcesEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,17 +2,18 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class DeleteAlbumConsumer(IBus bus, DeleteRoutingSlipBuilder routingSlipBuilder)
: IConsumer<DeleteAlbumEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public async Task Consume(ConsumeContext<DeleteAlbumEvent> context)
public class DeleteAlbumConsumer(IBus bus, DeleteRoutingSlipBuilder routingSlipBuilder)
: IConsumer<DeleteAlbumEvent>
{
var message = context.Message;
var routingSlip = await routingSlipBuilder.BuildAlbumAsync(
message.AlbumId, message.UserId, context.CorrelationId, context.CancellationToken);
public async Task Consume(ConsumeContext<DeleteAlbumEvent> context)
{
var message = context.Message;
var routingSlip = await routingSlipBuilder.BuildAlbumAsync(
message.AlbumId, message.UserId, context.CorrelationId, context.CancellationToken);
await bus.Execute(routingSlip.Build());
await bus.Execute(routingSlip.Build());
}
}
}
@@ -2,17 +2,18 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class DeletePlayListConsumer(IBus bus, DeleteRoutingSlipBuilder routingSlipBuilder)
: IConsumer<DeletePlayListEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public async Task Consume(ConsumeContext<DeletePlayListEvent> context)
public class DeletePlayListConsumer(IBus bus, DeleteRoutingSlipBuilder routingSlipBuilder)
: IConsumer<DeletePlayListEvent>
{
var message = context.Message;
var routingSlip = await routingSlipBuilder.BuildPlayListAsync(
message.PlayListId, message.UserId, context.CorrelationId, context.CancellationToken);
public async Task Consume(ConsumeContext<DeletePlayListEvent> context)
{
var message = context.Message;
var routingSlip = await routingSlipBuilder.BuildPlayListAsync(
message.PlayListId, message.UserId, context.CorrelationId, context.CancellationToken);
await bus.Execute(routingSlip.Build());
await bus.Execute(routingSlip.Build());
}
}
}
@@ -2,17 +2,18 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class DeleteTrackConsumer(IBus bus, DeleteRoutingSlipBuilder routingSlipBuilder)
: IConsumer<DeleteTrackEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public async Task Consume(ConsumeContext<DeleteTrackEvent> context)
public class DeleteTrackConsumer(IBus bus, DeleteRoutingSlipBuilder routingSlipBuilder)
: IConsumer<DeleteTrackEvent>
{
var message = context.Message;
var routingSlip = await routingSlipBuilder.BuildTrackAsync(
message.TrackId, message.UserId, context.CorrelationId, context.CancellationToken);
public async Task Consume(ConsumeContext<DeleteTrackEvent> context)
{
var message = context.Message;
var routingSlip = await routingSlipBuilder.BuildTrackAsync(
message.TrackId, message.UserId, context.CorrelationId, context.CancellationToken);
await bus.Execute(routingSlip.Build());
await bus.Execute(routingSlip.Build());
}
}
}
@@ -3,16 +3,17 @@ using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.Activities.LifeCycle;
using Musify.Infrastructure.MassTransit.RoutingSlip;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class PlayListProcessingFailedConsumer(IBus bus) : IConsumer<PlayListProcessingFailed>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<PlayListProcessingFailed> context)
public class PlayListProcessingFailedConsumer(IBus bus) : IConsumer<PlayListProcessingFailed>
{
var message = context.Message;
public Task Consume(ConsumeContext<PlayListProcessingFailed> context)
{
var message = context.Message;
return ProcessingFailedCleanup.ExecuteAsync(
bus, message.PlayListId, ActivityNames.MarkPlayListAsFailed, MarkPlayListLifeCycleActivity.ExecuteEndpointName, message.Bucket,
(ActivityNames.RemovePlayListOriginalPicture, message.PictureKey));
return ProcessingFailedCleanup.ExecuteAsync(
bus, message.PlayListId, ActivityNames.MarkPlayListAsFailed, MarkPlayListLifeCycleActivity.ExecuteEndpointName, message.Bucket,
(ActivityNames.RemovePlayListOriginalPicture, message.PictureKey));
}
}
}
@@ -3,32 +3,33 @@ using Musify.Domain.ValueObjects;
using Musify.Infrastructure.MassTransit.Arguments;
using Musify.Infrastructure.MassTransit.RoutingSlip;
namespace Musify.Infrastructure.MassTransit.Consumers;
internal static class ProcessingFailedCleanup
namespace Musify.Infrastructure.MassTransit.Consumers
{
/// <summary>Removes whatever files were left behind and marks the entity as failed.</summary>
public static Task ExecuteAsync(
IBus bus,
Guid subjectId,
string markStepName,
string markEndpointName,
string? bucket,
params (string StepName, string? Key)[] files)
internal static class ProcessingFailedCleanup
{
var builder = RoutingSlips.Create(correlationId: null);
if (!string.IsNullOrWhiteSpace(bucket))
/// <summary>Removes whatever files were left behind and marks the entity as failed.</summary>
public static Task ExecuteAsync(
IBus bus,
Guid subjectId,
string markStepName,
string markEndpointName,
string? bucket,
params (string StepName, string? Key)[] files)
{
foreach (var (stepName, key) in files)
var builder = RoutingSlips.Create(correlationId: null);
if (!string.IsNullOrWhiteSpace(bucket))
{
if (!string.IsNullOrWhiteSpace(key))
builder.AddRemoveFile(stepName, bucket, key);
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());
}
builder.AddStep(markStepName, markEndpointName, new MarkLifeCycleArguments(subjectId, LifeCycleStatus.Failed));
return bus.Execute(builder.Build());
}
}
@@ -3,58 +3,59 @@ using MassTransit.Courier.Contracts;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class ProcessingSlipFaultConsumer : IConsumer<RoutingSlipFaulted>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public const string QueueName = "processing-slip-fault";
public async Task Consume(ConsumeContext<RoutingSlipFaulted> context)
public class ProcessingSlipFaultConsumer : IConsumer<RoutingSlipFaulted>
{
var variables = context.Message.Variables;
public const string QueueName = "processing-slip-fault";
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.ProcessKind, out var kindObject))
return;
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.SubjectId, out var subjectObject)
|| !Guid.TryParse(subjectObject?.ToString(), out var subjectId))
public async Task Consume(ConsumeContext<RoutingSlipFaulted> context)
{
return;
var variables = context.Message.Variables;
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.ProcessKind, out var kindObject))
return;
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.SubjectId, out var subjectObject)
|| !Guid.TryParse(subjectObject?.ToString(), out var subjectId))
{
return;
}
switch (kindObject?.ToString())
{
case RoutingSlipVariableNames.ProcessKinds.TrackPicture:
await context.Publish(new TrackPictureProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.TrackAudio:
await context.Publish(new TrackAudioProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.PlayListPicture:
await context.Publish(new PlayListPictureProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.AlbumPicture:
await context.Publish(new AlbumPictureProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.TrackCreation:
await context.Publish(new TrackProcessingFailed(
subjectId, Variable(variables, RoutingSlipVariableNames.Workflow.Bucket),
Variable(variables, RoutingSlipVariableNames.Workflow.PictureKey),
Variable(variables, RoutingSlipVariableNames.Workflow.AudioKey)));
break;
case RoutingSlipVariableNames.ProcessKinds.AlbumCreation:
await context.Publish(new AlbumProcessingFailed(
subjectId, Variable(variables, RoutingSlipVariableNames.Workflow.Bucket),
Variable(variables, RoutingSlipVariableNames.Workflow.PictureKey)));
break;
case RoutingSlipVariableNames.ProcessKinds.PlayListCreation:
await context.Publish(new PlayListProcessingFailed(
subjectId, Variable(variables, RoutingSlipVariableNames.Workflow.Bucket),
Variable(variables, RoutingSlipVariableNames.Workflow.PictureKey)));
break;
}
}
switch (kindObject?.ToString())
{
case RoutingSlipVariableNames.ProcessKinds.TrackPicture:
await context.Publish(new TrackPictureProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.TrackAudio:
await context.Publish(new TrackAudioProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.PlayListPicture:
await context.Publish(new PlayListPictureProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.AlbumPicture:
await context.Publish(new AlbumPictureProcessingFailed(subjectId));
break;
case RoutingSlipVariableNames.ProcessKinds.TrackCreation:
await context.Publish(new TrackProcessingFailed(
subjectId, Variable(variables, RoutingSlipVariableNames.Workflow.Bucket),
Variable(variables, RoutingSlipVariableNames.Workflow.PictureKey),
Variable(variables, RoutingSlipVariableNames.Workflow.AudioKey)));
break;
case RoutingSlipVariableNames.ProcessKinds.AlbumCreation:
await context.Publish(new AlbumProcessingFailed(
subjectId, Variable(variables, RoutingSlipVariableNames.Workflow.Bucket),
Variable(variables, RoutingSlipVariableNames.Workflow.PictureKey)));
break;
case RoutingSlipVariableNames.ProcessKinds.PlayListCreation:
await context.Publish(new PlayListProcessingFailed(
subjectId, Variable(variables, RoutingSlipVariableNames.Workflow.Bucket),
Variable(variables, RoutingSlipVariableNames.Workflow.PictureKey)));
break;
}
private static string? Variable(IDictionary<string, object> variables, string name) =>
variables.TryGetValue(name, out var value) ? value?.ToString() : null;
}
private static string? Variable(IDictionary<string, object> variables, string name) =>
variables.TryGetValue(name, out var value) ? value?.ToString() : null;
}
@@ -3,41 +3,42 @@ using MassTransit.Courier.Contracts;
using Microsoft.Extensions.Logging;
using Musify.Infrastructure.MassTransit.RoutingSlip;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class RoutingSlipCleanUpConsumer(
ILogger<RoutingSlipCleanUpConsumer> logger) :
IConsumer<RoutingSlipCompleted>,
IConsumer<RoutingSlipFaulted>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public const string QueueName = "routing-slip-clean-up";
public Task Consume(ConsumeContext<RoutingSlipCompleted> context)
=> DeleteFolder(context.Message.Variables);
public Task Consume(ConsumeContext<RoutingSlipFaulted> context)
=> DeleteFolder(context.Message.Variables);
private Task DeleteFolder(IDictionary<string, object> variables)
public class RoutingSlipCleanUpConsumer(
ILogger<RoutingSlipCleanUpConsumer> logger) :
IConsumer<RoutingSlipCompleted>,
IConsumer<RoutingSlipFaulted>
{
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.TemporalDirectory, out var pathObject))
return Task.CompletedTask;
public const string QueueName = "routing-slip-clean-up";
var pathString = pathObject.ToString();
public Task Consume(ConsumeContext<RoutingSlipCompleted> context)
=> DeleteFolder(context.Message.Variables);
if (string.IsNullOrEmpty(pathString))
return Task.CompletedTask;
public Task Consume(ConsumeContext<RoutingSlipFaulted> context)
=> DeleteFolder(context.Message.Variables);
try
private Task DeleteFolder(IDictionary<string, object> variables)
{
Directory.Delete(pathString, recursive: true);
logger.LogInformation("Deleted temporal directory at path {Path}", pathString);
}
catch (DirectoryNotFoundException)
{
logger.LogWarning("Temporal directory at path {Path} was not found for deletion", pathString);
}
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.TemporalDirectory, out var pathObject))
return Task.CompletedTask;
return Task.CompletedTask;
var pathString = pathObject.ToString();
if (string.IsNullOrEmpty(pathString))
return Task.CompletedTask;
try
{
Directory.Delete(pathString, recursive: true);
logger.LogInformation("Deleted temporal directory at path {Path}", pathString);
}
catch (DirectoryNotFoundException)
{
logger.LogWarning("Temporal directory at path {Path} was not found for deletion", pathString);
}
return Task.CompletedTask;
}
}
}
@@ -3,17 +3,18 @@ using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.Activities.LifeCycle;
using Musify.Infrastructure.MassTransit.RoutingSlip;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class TrackProcessingFailedConsumer(IBus bus) : IConsumer<TrackProcessingFailed>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<TrackProcessingFailed> context)
public class TrackProcessingFailedConsumer(IBus bus) : IConsumer<TrackProcessingFailed>
{
var message = context.Message;
public Task Consume(ConsumeContext<TrackProcessingFailed> context)
{
var message = context.Message;
return ProcessingFailedCleanup.ExecuteAsync(
bus, message.TrackId, ActivityNames.MarkTrackAsFailed, MarkTrackLifeCycleActivity.ExecuteEndpointName, message.Bucket,
(ActivityNames.RemoveTrackOriginalPicture, message.PictureKey),
(ActivityNames.RemoveTrackOriginalAudio, message.AudioKey));
return ProcessingFailedCleanup.ExecuteAsync(
bus, message.TrackId, ActivityNames.MarkTrackAsFailed, MarkTrackLifeCycleActivity.ExecuteEndpointName, message.Bucket,
(ActivityNames.RemoveTrackOriginalPicture, message.PictureKey),
(ActivityNames.RemoveTrackOriginalAudio, message.AudioKey));
}
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class UpdateAlbumPictureConsumer(IBus bus, PictureWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateAlbumPictureEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<UpdateAlbumPictureEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class UpdateAlbumPictureConsumer(IBus bus, PictureWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateAlbumPictureEvent>
{
public Task Consume(ConsumeContext<UpdateAlbumPictureEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class UpdateAlbumPictureSourceConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateAlbumPictureSourceEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<UpdateAlbumPictureSourceEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class UpdateAlbumPictureSourceConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateAlbumPictureSourceEvent>
{
public Task Consume(ConsumeContext<UpdateAlbumPictureSourceEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class UpdatePlayListPictureConsumer(IBus bus, PictureWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdatePlayListPictureEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<UpdatePlayListPictureEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class UpdatePlayListPictureConsumer(IBus bus, PictureWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdatePlayListPictureEvent>
{
public Task Consume(ConsumeContext<UpdatePlayListPictureEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class UpdatePlayListPictureSourceConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdatePlayListPictureSourceEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<UpdatePlayListPictureSourceEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class UpdatePlayListPictureSourceConsumer(IBus bus, PictureSourceRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdatePlayListPictureSourceEvent>
{
public Task Consume(ConsumeContext<UpdatePlayListPictureSourceEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class UpdateTrackAudioConsumer(IBus bus, AudioWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateTrackAudioEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<UpdateTrackAudioEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class UpdateTrackAudioConsumer(IBus bus, AudioWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateTrackAudioEvent>
{
public Task Consume(ConsumeContext<UpdateTrackAudioEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}
@@ -2,11 +2,12 @@ using MassTransit;
using Musify.Application.Events;
using Musify.Infrastructure.MassTransit.RoutingSlip.Builders;
namespace Musify.Infrastructure.MassTransit.Consumers;
public class UpdateTrackPictureConsumer(IBus bus, PictureWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateTrackPictureEvent>
namespace Musify.Infrastructure.MassTransit.Consumers
{
public Task Consume(ConsumeContext<UpdateTrackPictureEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
public class UpdateTrackPictureConsumer(IBus bus, PictureWorkflowRoutingSlipBuilder routingSlipBuilder)
: IConsumer<UpdateTrackPictureEvent>
{
public Task Consume(ConsumeContext<UpdateTrackPictureEvent> context) =>
bus.Execute(routingSlipBuilder.Build(context.Message, context.CorrelationId).Build());
}
}