This commit is contained in:
2026-03-29 19:10:24 +02:00
parent 12aa104d80
commit 9e4d5158e8
4 changed files with 13 additions and 14 deletions
@@ -99,7 +99,7 @@ namespace Musify.Application.PlayLists.Handlers
await eventBus.PublishAsync(new UpdatePlayListPictureEvent( await eventBus.PublishAsync(new UpdatePlayListPictureEvent(
playList.Id, playList.Id,
storageConfiguration.BucketName, storageConfiguration.BucketName,
playList.OriginalPictureName, Path.Combine(playListConfiguration.Routes.OriginalPicturesPath, playList.OriginalPictureName),
new ImageSize( new ImageSize(
playListConfiguration.Routes.SmallPicturesPath, playListConfiguration.Routes.SmallPicturesPath,
playListConfiguration.PicturesSizes.SmallPictureWidth, playListConfiguration.PicturesSizes.SmallPictureWidth,
@@ -37,18 +37,18 @@ namespace Musify.Application.PlayLists.Handlers
UpdateDescription(playListEntity, request.NewDescription); UpdateDescription(playListEntity, request.NewDescription);
var updatePictureResult = await UpdatePicture(playListEntity, request.NewPicture, cancellationToken); var updatePictureResult = await UpdatePicture(playListEntity, request.NewPicture, cancellationToken);
if (!updatePictureResult.IsSuccess) if (!updatePictureResult.IsSuccess)
return updatePictureResult.Map(_ => PlayListResponse.FromEntity(playListEntity)); return updatePictureResult;
try try
{ {
database.PlayLists.Update(playListEntity); database.PlayLists.Update(playListEntity);
await database.SaveChangesAsync(cancellationToken); await database.SaveChangesAsync(cancellationToken);
await PublishPlayListPictureEvent(playListEntity, updatePictureResult.Value, cancellationToken); await PublishPlayListPictureEvent(playListEntity, cancellationToken);
await RemoveOldPictures(playListEntity, cancellationToken); await RemoveOldPictures(playListEntity, cancellationToken);
} }
catch (Exception exception) catch (Exception exception)
{ {
await Rollback(updatePictureResult.Value, cancellationToken); await Rollback(playListEntity.OriginalPictureName, cancellationToken);
logger.LogError(exception, "Failed to update playlist {PlayListId}", playListEntity.Id); logger.LogError(exception, "Failed to update playlist {PlayListId}", playListEntity.Id);
return Result.Error($"Failed to update playlist {playListEntity.Id}"); return Result.Error($"Failed to update playlist {playListEntity.Id}");
} }
@@ -72,7 +72,7 @@ namespace Musify.Application.PlayLists.Handlers
playList.Description = newDescription; playList.Description = newDescription;
} }
async Task<Result<string>> UpdatePicture(PlayList playList, IFileData? newPicture, CancellationToken cancellationToken) async Task<Result> UpdatePicture(PlayList playList, IFileData? newPicture, CancellationToken cancellationToken)
{ {
if (newPicture is null) if (newPicture is null)
return Result.Success(); return Result.Success();
@@ -94,17 +94,17 @@ namespace Musify.Application.PlayLists.Handlers
} }
playList.OriginalPictureName = pictureName; playList.OriginalPictureName = pictureName;
return Result.Success(pictureKey); return Result.Success();
} }
async Task<Result> PublishPlayListPictureEvent(PlayList playList, string pictureKey, CancellationToken cancellationToken) async Task<Result> PublishPlayListPictureEvent(PlayList playList, CancellationToken cancellationToken)
{ {
try try
{ {
await eventBus.PublishAsync(new UpdatePlayListPictureEvent( await eventBus.PublishAsync(new UpdatePlayListPictureEvent(
playList.Id, playList.Id,
storageConfiguration.BucketName, storageConfiguration.BucketName,
pictureKey, Path.Combine(playListConfiguration.Routes.OriginalPicturesPath, playList.OriginalPictureName),
new ImageSize( new ImageSize(
playListConfiguration.Routes.SmallPicturesPath, playListConfiguration.Routes.SmallPicturesPath,
playListConfiguration.PicturesSizes.SmallPictureWidth, playListConfiguration.PicturesSizes.SmallPictureWidth,
@@ -94,17 +94,17 @@ namespace Musify.Application.Tracks.Handler
await eventBus.PublishAsync(new UpdateTrackPictureEvent( await eventBus.PublishAsync(new UpdateTrackPictureEvent(
track.Id, track.Id,
storageConfiguration.BucketName, storageConfiguration.BucketName,
track.OriginalPictureName, Path.Combine(trackConfiguration.Routes.OriginalPicturesPath, track.OriginalPictureName),
new ImageSize( new ImageSize(
trackConfiguration.Routes.PresetSmallPicture, trackConfiguration.Routes.SmallPicturesPath,
trackConfiguration.PicturesSizes.SmallPictureWidth, trackConfiguration.PicturesSizes.SmallPictureWidth,
trackConfiguration.PicturesSizes.SmallPictureHeight), trackConfiguration.PicturesSizes.SmallPictureHeight),
new ImageSize( new ImageSize(
trackConfiguration.Routes.PresetMediumPicture, trackConfiguration.Routes.MediumPicturesPath,
trackConfiguration.PicturesSizes.MediumPictureWidth, trackConfiguration.PicturesSizes.MediumPictureWidth,
trackConfiguration.PicturesSizes.MediumPictureHeight), trackConfiguration.PicturesSizes.MediumPictureHeight),
new ImageSize( new ImageSize(
trackConfiguration.Routes.PresetLargePicture, trackConfiguration.Routes.LargePicturesPath,
trackConfiguration.PicturesSizes.LargePictureWidth, trackConfiguration.PicturesSizes.LargePictureWidth,
trackConfiguration.PicturesSizes.LargePictureHeight)), cancellationToken); trackConfiguration.PicturesSizes.LargePictureHeight)), cancellationToken);
} }
@@ -124,7 +124,7 @@ namespace Musify.Application.Tracks.Handler
await eventBus.PublishAsync(new UpdateTrackAudioEvent( await eventBus.PublishAsync(new UpdateTrackAudioEvent(
track.Id, track.Id,
storageConfiguration.BucketName, storageConfiguration.BucketName,
track.OriginalAudioName, Path.Combine(trackConfiguration.Routes.OriginalAudiosPath, track.OriginalAudioName),
storageConfiguration.BucketName, storageConfiguration.BucketName,
destinationFolderAudio), cancellationToken); destinationFolderAudio), cancellationToken);
} }
@@ -54,7 +54,6 @@ namespace Musify.Application.Tracks.Handler
{ {
await RemoveFile(Path.Combine(trackConfiguration.Routes.OriginalAudiosPath, track.OriginalAudioName), await RemoveFile(Path.Combine(trackConfiguration.Routes.OriginalAudiosPath, track.OriginalAudioName),
cancellationToken); cancellationToken);
await RemoveFile(Path.Combine(trackConfiguration.Routes.ProcessedAudiosPath, track.AudioFolderName), await RemoveFile(Path.Combine(trackConfiguration.Routes.ProcessedAudiosPath, track.AudioFolderName),
cancellationToken); cancellationToken);
} }