From 32d4c21dd7f3a0738d75c859a5036b40102ed0a2 Mon Sep 17 00:00:00 2001 From: XShine555 Date: Sat, 21 Mar 2026 00:04:19 +0100 Subject: [PATCH] Routes --- .../Events/UpdatePlayListPictureEvent.cs | 12 +++- .../CreatePlayListCommandHandler.cs | 27 ++++++++- .../UpdatePlayListCommandHandler.cs | 27 ++++++++- .../UpdatePlayListPictureConsumer.cs | 57 ++++++++----------- 4 files changed, 85 insertions(+), 38 deletions(-) diff --git a/Application/Events/UpdatePlayListPictureEvent.cs b/Application/Events/UpdatePlayListPictureEvent.cs index 258c790..f5590d9 100644 --- a/Application/Events/UpdatePlayListPictureEvent.cs +++ b/Application/Events/UpdatePlayListPictureEvent.cs @@ -2,5 +2,15 @@ { public record UpdatePlayListPictureEvent( Guid PlayListId, - string OriginalPictureKeyName); + string BucketName, + string OriginalPictureKeyName, + string SmallPictureKeyName, + int SmallPictureWidth, + int SmallPictureHeight, + string MediumPictureKeyName, + int MediumPictureWidth, + int MediumPictureHeight, + string LargePictureKeyName, + int LargePictureWidth, + int LargePictureHeight); } \ No newline at end of file diff --git a/Application/PlayLists/Commands/CreatePlayList/CreatePlayListCommandHandler.cs b/Application/PlayLists/Commands/CreatePlayList/CreatePlayListCommandHandler.cs index c5bad12..bea11d8 100644 --- a/Application/PlayLists/Commands/CreatePlayList/CreatePlayListCommandHandler.cs +++ b/Application/PlayLists/Commands/CreatePlayList/CreatePlayListCommandHandler.cs @@ -11,7 +11,8 @@ using Musify.Domain.Entities; namespace Musify.Application.PlayLists.Commands.CreatePlayList { public class CreatePlayListCommandHandler(IEventBus eventBus, IDatabase database, IStorageHandler storageHandler, - ILogger logger, ApplicationStorageConfiguration storageConfiguration, PlayListConfiguration playListConfiguration) + ILogger logger, ApplicationStorageConfiguration storageConfiguration, + PlayListConfiguration playListConfiguration, IPictureHandler pictureHandler) : IRequestHandler> > { public async Task> Handle(CreatePlayListCommand request, CancellationToken cancellationToken) @@ -58,9 +59,31 @@ namespace Musify.Application.PlayLists.Commands.CreatePlayList playList.OriginalPictureKeyName = pictureName; logger.LogInformation("Playlist image uploaded successfully for PlayList with Id={PlayListId}.", playList.Id); + var smallPictureKeyName = Path.Combine( + playListConfiguration.Routes.SmallPictures, + $"{playList.Id}.{pictureHandler.FileExtension}"); + var mediumPictureKeyName = Path.Combine( + playListConfiguration.Routes.MediumPictures, + $"{playList.Id}.{pictureHandler.FileExtension}"); + var largePictureKeyName = Path.Combine( + playListConfiguration.Routes.LargePictures, + $"{playList.Id}.{pictureHandler.FileExtension}"); + try { - await eventBus.PublishAsync(new UpdatePlayListPictureEvent(playList.Id, playList.OriginalPictureKeyName), cancellationToken); + await eventBus.PublishAsync(new UpdatePlayListPictureEvent( + playList.Id, + storageConfiguration.BucketName, + originalImageStorageKey, + smallPictureKeyName, + playListConfiguration.PicturesSizes.SmallPictureWidth, + playListConfiguration.PicturesSizes.SmallPictureHeight, + mediumPictureKeyName, + playListConfiguration.PicturesSizes.MediumPictureWidth, + playListConfiguration.PicturesSizes.MediumPictureHeight, + largePictureKeyName, + playListConfiguration.PicturesSizes.LargePictureWidth, + playListConfiguration.PicturesSizes.LargePictureHeight), cancellationToken); } catch (Exception exception) { diff --git a/Application/PlayLists/Commands/UpdatePlayList/UpdatePlayListCommandHandler.cs b/Application/PlayLists/Commands/UpdatePlayList/UpdatePlayListCommandHandler.cs index 8225c26..3429cfd 100644 --- a/Application/PlayLists/Commands/UpdatePlayList/UpdatePlayListCommandHandler.cs +++ b/Application/PlayLists/Commands/UpdatePlayList/UpdatePlayListCommandHandler.cs @@ -10,7 +10,8 @@ using Musify.Application.PlayLists.Contracts; namespace Musify.Application.PlayLists.Commands.UpdatePlayList { public class UpdatePlayListCommandHandler(IEventBus eventBus, IDatabase database, IStorageHandler storageHandler, - ILogger logger, ApplicationStorageConfiguration storageConfiguration, PlayListConfiguration playListConfiguration) + ILogger logger, ApplicationStorageConfiguration storageConfiguration, + PlayListConfiguration playListConfiguration, IPictureHandler pictureHandler) : IRequestHandler> > { public async Task> Handle(UpdatePlayListCommand request, CancellationToken cancellationToken) @@ -131,9 +132,31 @@ namespace Musify.Application.PlayLists.Commands.UpdatePlayList playList.OriginalPictureKeyName = pictureName; + var smallPictureKeyName = Path.Combine( + playListConfiguration.Routes.SmallPictures, + $"{playList.Id}.{pictureHandler.FileExtension}"); + var mediumPictureKeyName = Path.Combine( + playListConfiguration.Routes.MediumPictures, + $"{playList.Id}.{pictureHandler.FileExtension}"); + var largePictureKeyName = Path.Combine( + playListConfiguration.Routes.LargePictures, + $"{playList.Id}.{pictureHandler.FileExtension}"); + try { - await eventBus.PublishAsync(new UpdatePlayListPictureEvent(playList.Id, playList.OriginalPictureKeyName), cancellationToken); + await eventBus.PublishAsync(new UpdatePlayListPictureEvent( + playList.Id, + storageConfiguration.BucketName, + newImageStorageKey, + smallPictureKeyName, + playListConfiguration.PicturesSizes.SmallPictureWidth, + playListConfiguration.PicturesSizes.SmallPictureHeight, + mediumPictureKeyName, + playListConfiguration.PicturesSizes.MediumPictureWidth, + playListConfiguration.PicturesSizes.MediumPictureHeight, + largePictureKeyName, + playListConfiguration.PicturesSizes.LargePictureWidth, + playListConfiguration.PicturesSizes.LargePictureHeight), cancellationToken); } catch (Exception exception) { diff --git a/Infrastructure/Messaging/Consumers/UpdatePlayListPictureConsumer.cs b/Infrastructure/Messaging/Consumers/UpdatePlayListPictureConsumer.cs index a5deed2..ccf6b9a 100644 --- a/Infrastructure/Messaging/Consumers/UpdatePlayListPictureConsumer.cs +++ b/Infrastructure/Messaging/Consumers/UpdatePlayListPictureConsumer.cs @@ -1,14 +1,11 @@ using MassTransit; -using Musify.Application.Configuration; -using Musify.Application.Contracts.Infrastructure; using Musify.Application.Events; using Musify.Infrastructure.Messaging.Activities; using Musify.Infrastructure.Messaging.Activities.Arguments; namespace Musify.Infrastructure.Messaging.Consumers { - public class UpdatePlayListPictureConsumer(IBus bus, IPictureHandler pictureHandler, - ApplicationStorageConfiguration storageSettings, PlayListConfiguration playListConfiguration) + public class UpdatePlayListPictureConsumer(IBus bus) : IConsumer { public const string QueueName = "Update-PlayList-Picture"; @@ -17,53 +14,46 @@ namespace Musify.Infrastructure.Messaging.Consumers { var routingSlipBuilder = new RoutingSlipBuilder(NewId.NextGuid()); - var smallPictureKeyName = Path.Combine( - playListConfiguration.Routes.SmallPictures, - $"{consumeContext.Message.PlayListId}_small.{pictureHandler.FileExtension}"); - var mediumPictureKeyName = Path.Combine( - playListConfiguration.Routes.MediumPictures, - $"{consumeContext.Message.PlayListId}_medium.{pictureHandler.FileExtension}"); - var largePictureKeyName = Path.Combine( - playListConfiguration.Routes.LargePictures, - $"{consumeContext.Message.PlayListId}_large.{pictureHandler.FileExtension}"); - AddResizeActivity( routingSlipBuilder, "ResizeSmall", - smallPictureKeyName, - playListConfiguration.PicturesSizes.SmallPictureWidth, - playListConfiguration.PicturesSizes.SmallPictureHeight, - consumeContext.Message.OriginalPictureKeyName); + consumeContext.Message.SmallPictureKeyName, + consumeContext.Message.SmallPictureWidth, + consumeContext.Message.SmallPictureHeight, + consumeContext.Message.OriginalPictureKeyName, + consumeContext.Message.BucketName); AddResizeActivity( routingSlipBuilder, "ResizeMedium", - mediumPictureKeyName, - playListConfiguration.PicturesSizes.MediumPictureWidth, - playListConfiguration.PicturesSizes.MediumPictureHeight, - consumeContext.Message.OriginalPictureKeyName); + consumeContext.Message.MediumPictureKeyName, + consumeContext.Message.MediumPictureWidth, + consumeContext.Message.MediumPictureHeight, + consumeContext.Message.OriginalPictureKeyName, + consumeContext.Message.BucketName); AddResizeActivity( routingSlipBuilder, "ResizeLarge", - largePictureKeyName, - playListConfiguration.PicturesSizes.LargePictureWidth, - playListConfiguration.PicturesSizes.LargePictureHeight, - consumeContext.Message.OriginalPictureKeyName); + consumeContext.Message.LargePictureKeyName, + consumeContext.Message.LargePictureWidth, + consumeContext.Message.LargePictureHeight, + consumeContext.Message.OriginalPictureKeyName, + consumeContext.Message.BucketName); routingSlipBuilder.AddActivity( "DeleteOriginal", BuildExecuteUri(RemoveFilesActivity.ExecuteEndpointName), - new RemoveFileArguments(storageSettings.BucketName, consumeContext.Message.OriginalPictureKeyName)); + new RemoveFileArguments(consumeContext.Message.BucketName, consumeContext.Message.OriginalPictureKeyName)); routingSlipBuilder.AddActivity( "UpdatePlayListPicture", BuildExecuteUri(UpdatePlayListPictureActivity.ExecuteEndpointName), new UpdatePlayListPictureArguments( consumeContext.Message.PlayListId, - smallPictureKeyName, - mediumPictureKeyName, - largePictureKeyName)); + consumeContext.Message.SmallPictureKeyName, + consumeContext.Message.MediumPictureKeyName, + consumeContext.Message.LargePictureKeyName)); var routingSlip = routingSlipBuilder.Build(); await bus.Execute(routingSlip); @@ -75,15 +65,16 @@ namespace Musify.Infrastructure.Messaging.Consumers string destinationKeyName, int width, int height, - string originalPictureKeyName) + string originalPictureKeyName, + string bucketName) { routingSlipBuilder.AddActivity( activityName, BuildExecuteUri(ResizePictureActivity.ExecuteEndpointName), new ResizePictureArgument( - storageSettings.BucketName, + bucketName, originalPictureKeyName, - storageSettings.BucketName, + bucketName, destinationKeyName, width, height));