diff --git a/Application/Abstractions/Application/IUploadIntentService.cs b/Application/Abstractions/Application/IUploadIntentService.cs deleted file mode 100644 index 91c0bb7..0000000 --- a/Application/Abstractions/Application/IUploadIntentService.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Ardalis.Result; -using Microsoft.Extensions.Logging; -using Musify.Application.Configuration; -using Musify.Domain.Entities; - -namespace Musify.Application.Abstractions.Application; - -public interface IUploadIntentService -{ - Task CheckQuotaAsync( - UploadIntentConfiguration config, - ILogger logger, - Guid userId, - long requiredBytes, - int requiredIntentCount, - CancellationToken cancellationToken); - - Task> ValidateAndLoadAsync( - UploadIntentConfiguration config, - Guid intentId, - Guid userId, - CancellationToken cancellationToken); -} diff --git a/Application/Abstractions/Application/IFileData.cs b/Application/Contracts/Application/IFileData.cs similarity index 76% rename from Application/Abstractions/Application/IFileData.cs rename to Application/Contracts/Application/IFileData.cs index 8d92e55..af7438c 100644 --- a/Application/Abstractions/Application/IFileData.cs +++ b/Application/Contracts/Application/IFileData.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Application +namespace Musify.Application.Contracts.Application { public interface IFileData { diff --git a/Application/Abstractions/Infrastructure/IAudioTranscoderService.cs b/Application/Contracts/Infrastructure/IAudioTranscoderService.cs similarity index 82% rename from Application/Abstractions/Infrastructure/IAudioTranscoderService.cs rename to Application/Contracts/Infrastructure/IAudioTranscoderService.cs index 69b86b3..41ec61d 100644 --- a/Application/Abstractions/Infrastructure/IAudioTranscoderService.cs +++ b/Application/Contracts/Infrastructure/IAudioTranscoderService.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public interface IAudioTranscoderService { diff --git a/Application/Abstractions/Infrastructure/IDatabase.cs b/Application/Contracts/Infrastructure/IDatabase.cs similarity index 86% rename from Application/Abstractions/Infrastructure/IDatabase.cs rename to Application/Contracts/Infrastructure/IDatabase.cs index 9d87904..bf75e6a 100644 --- a/Application/Abstractions/Infrastructure/IDatabase.cs +++ b/Application/Contracts/Infrastructure/IDatabase.cs @@ -1,7 +1,7 @@ -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using Musify.Domain.Entities; -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public interface IDatabase { diff --git a/Application/Abstractions/Infrastructure/IDatabaseTransaction.cs b/Application/Contracts/Infrastructure/IDatabaseTransaction.cs similarity index 72% rename from Application/Abstractions/Infrastructure/IDatabaseTransaction.cs rename to Application/Contracts/Infrastructure/IDatabaseTransaction.cs index 9e5cddc..1aedc2e 100644 --- a/Application/Abstractions/Infrastructure/IDatabaseTransaction.cs +++ b/Application/Contracts/Infrastructure/IDatabaseTransaction.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public interface IDatabaseTransaction : IAsyncDisposable { diff --git a/Application/Abstractions/Infrastructure/IEventBus.cs b/Application/Contracts/Infrastructure/IEventBus.cs similarity index 70% rename from Application/Abstractions/Infrastructure/IEventBus.cs rename to Application/Contracts/Infrastructure/IEventBus.cs index 18925d0..2d41fea 100644 --- a/Application/Abstractions/Infrastructure/IEventBus.cs +++ b/Application/Contracts/Infrastructure/IEventBus.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public interface IEventBus { diff --git a/Application/Abstractions/Infrastructure/IPictureService.cs b/Application/Contracts/Infrastructure/IPictureService.cs similarity index 75% rename from Application/Abstractions/Infrastructure/IPictureService.cs rename to Application/Contracts/Infrastructure/IPictureService.cs index 666f6e5..f881fc7 100644 --- a/Application/Abstractions/Infrastructure/IPictureService.cs +++ b/Application/Contracts/Infrastructure/IPictureService.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public interface IPictureService { diff --git a/Application/Abstractions/Infrastructure/IStorageService.cs b/Application/Contracts/Infrastructure/IStorageService.cs similarity index 96% rename from Application/Abstractions/Infrastructure/IStorageService.cs rename to Application/Contracts/Infrastructure/IStorageService.cs index cb1c49d..f58df25 100644 --- a/Application/Abstractions/Infrastructure/IStorageService.cs +++ b/Application/Contracts/Infrastructure/IStorageService.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public interface IStorageService { diff --git a/Application/Abstractions/Infrastructure/ObjectMetadata.cs b/Application/Contracts/Infrastructure/ObjectMetadata.cs similarity index 57% rename from Application/Abstractions/Infrastructure/ObjectMetadata.cs rename to Application/Contracts/Infrastructure/ObjectMetadata.cs index f92904e..13061c9 100644 --- a/Application/Abstractions/Infrastructure/ObjectMetadata.cs +++ b/Application/Contracts/Infrastructure/ObjectMetadata.cs @@ -1,4 +1,4 @@ -namespace Musify.Application.Abstractions.Infrastructure +namespace Musify.Application.Contracts.Infrastructure { public record ObjectMetadata(string ContentType, long ContentLength); } diff --git a/Application/Abstractions/Application/PaginatedResponse.cs b/Application/Pagination/PaginatedResponse.cs similarity index 89% rename from Application/Abstractions/Application/PaginatedResponse.cs rename to Application/Pagination/PaginatedResponse.cs index fe38d61..57a24ab 100644 --- a/Application/Abstractions/Application/PaginatedResponse.cs +++ b/Application/Pagination/PaginatedResponse.cs @@ -1,6 +1,6 @@ -using X.PagedList; +using X.PagedList; -namespace Musify.Application.Abstractions.Application +namespace Musify.Application.Pagination { public record PaginatedResponse( IReadOnlyCollection Items, diff --git a/Application/PlayLists/Handlers/CreatePlayListCommandHandler.cs b/Application/PlayLists/Handlers/CreatePlayListCommandHandler.cs index 930a718..13e67e4 100644 --- a/Application/PlayLists/Handlers/CreatePlayListCommandHandler.cs +++ b/Application/PlayLists/Handlers/CreatePlayListCommandHandler.cs @@ -3,13 +3,13 @@ using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Musify.Application.Configuration; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Events; using Musify.Application.PlayLists.Commands; using Musify.Application.PlayLists.Responses; using Musify.Application.UploadIntents; using Musify.Application.Extensions; -using Musify.Application.Abstractions.Application; +using Musify.Application.Services; using Musify.Domain.Entities; namespace Musify.Application.PlayLists.Handlers @@ -17,7 +17,7 @@ namespace Musify.Application.PlayLists.Handlers public class CreatePlayListCommandHandler( IEventBus eventBus, IDatabase database, - IUploadIntentService uploadIntentService, + UploadIntentValidator uploadIntentValidator, IStorageService storageService, ILogger logger, ApplicationStorageConfiguration storageConfiguration, @@ -41,7 +41,7 @@ namespace Musify.Application.PlayLists.Handlers if (request.PictureIntentId.HasValue) { - var validation = await uploadIntentService.ValidateAndLoadAsync( + var validation = await uploadIntentValidator.ValidateAndLoadAsync( uploadIntentConfiguration, request.PictureIntentId.Value, request.UserId, cancellationToken); if (!validation.IsSuccess) diff --git a/Application/PlayLists/Handlers/DeletePlayListCommandHandler.cs b/Application/PlayLists/Handlers/DeletePlayListCommandHandler.cs index e7be170..dbb6acb 100644 --- a/Application/PlayLists/Handlers/DeletePlayListCommandHandler.cs +++ b/Application/PlayLists/Handlers/DeletePlayListCommandHandler.cs @@ -2,7 +2,7 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Events; using Musify.Application.PlayLists.Commands; using Musify.Domain.Entities; diff --git a/Application/PlayLists/Handlers/GetPlayListByIdQueryHandler.cs b/Application/PlayLists/Handlers/GetPlayListByIdQueryHandler.cs index f54ae91..3c65440 100644 --- a/Application/PlayLists/Handlers/GetPlayListByIdQueryHandler.cs +++ b/Application/PlayLists/Handlers/GetPlayListByIdQueryHandler.cs @@ -1,6 +1,6 @@ using Ardalis.Result; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.PlayLists.Responses; using Musify.Application.PlayLists.Queries; using Mediator; diff --git a/Application/PlayLists/Handlers/GetPlayListsByUserIdQueryHandler.cs b/Application/PlayLists/Handlers/GetPlayListsByUserIdQueryHandler.cs index 8cfd94d..b493509 100644 --- a/Application/PlayLists/Handlers/GetPlayListsByUserIdQueryHandler.cs +++ b/Application/PlayLists/Handlers/GetPlayListsByUserIdQueryHandler.cs @@ -1,7 +1,7 @@ -using Ardalis.Result; +using Ardalis.Result; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Application; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Pagination; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.PlayLists.Responses; using Musify.Application.PlayLists.Queries; using X.PagedList.EF; diff --git a/Application/PlayLists/Handlers/GetPlayListsQueryHandler.cs b/Application/PlayLists/Handlers/GetPlayListsQueryHandler.cs index e05fbe2..89b3b24 100644 --- a/Application/PlayLists/Handlers/GetPlayListsQueryHandler.cs +++ b/Application/PlayLists/Handlers/GetPlayListsQueryHandler.cs @@ -1,7 +1,7 @@ -using Ardalis.Result; +using Ardalis.Result; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Application; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Pagination; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.PlayLists.Responses; using Musify.Application.PlayLists.Queries; using X.PagedList.EF; diff --git a/Application/PlayLists/Handlers/RequestPlayListPictureUploadCommandHandler.cs b/Application/PlayLists/Handlers/RequestPlayListPictureUploadCommandHandler.cs index ee6b51b..77de4cb 100644 --- a/Application/PlayLists/Handlers/RequestPlayListPictureUploadCommandHandler.cs +++ b/Application/PlayLists/Handlers/RequestPlayListPictureUploadCommandHandler.cs @@ -2,19 +2,18 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; -using Musify.Application.Abstractions.Application; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; using Musify.Application.PlayLists.Commands; using Musify.Application.PlayLists.Responses; -using Musify.Application.UploadIntents; +using Musify.Application.Services; using Musify.Domain.Entities; namespace Musify.Application.PlayLists.Handlers { public class RequestPlayListPictureUploadCommandHandler( IDatabase database, - IUploadIntentService uploadIntentService, + UploadIntentValidator uploadIntentValidator, IStorageService storageService, ILogger logger, ApplicationStorageConfiguration storageConfiguration, @@ -22,8 +21,6 @@ namespace Musify.Application.PlayLists.Handlers UploadIntentConfiguration uploadIntentConfiguration) : ICommandHandler> { - static readonly string[] AllowedExtensions = [".webp", ".png", ".jpg", ".jpeg"]; - public async ValueTask> Handle(RequestPlayListPictureUploadCommand request, CancellationToken cancellationToken) { var userExists = await database.Users @@ -35,14 +32,10 @@ namespace Musify.Application.PlayLists.Handlers return Result.NotFound($"User {request.UserId} not found"); } - var extensionResult = UploadIntentHelpers.ValidateExtension(request.FileType, AllowedExtensions); - if (!extensionResult.IsSuccess) - return Result.Invalid(extensionResult.Errors.Select(error => new ValidationError(error)).ToArray()); - var effectiveSizeBytes = request.ExpectedSizeBytes ?? uploadIntentConfiguration.DefaultExpectedPictureSizeBytes; - var objectName = Guid.NewGuid() + extensionResult.Value; + var objectName = $"{Guid.NewGuid()}.{request.FileType.TrimStart('.').ToLowerInvariant()}"; var tempKey = playListConfiguration.Routes.BuildTempPicturePath( uploadIntentConfiguration.TempRootPrefix, request.UserId, objectName); @@ -59,11 +52,14 @@ namespace Musify.Application.PlayLists.Handlers await using var transaction = await database.BeginTransactionAsync( System.Data.IsolationLevel.Serializable, cancellationToken); - var quotaCheck = await uploadIntentService.CheckQuotaAsync( - uploadIntentConfiguration, logger, + var quotaCheck = await uploadIntentValidator.CheckQuotaAsync( + uploadIntentConfiguration, request.UserId, effectiveSizeBytes, 1, cancellationToken); if (!quotaCheck.IsSuccess) + { + logger.LogWarning("User {UserId} failed upload intent quota check", request.UserId); return quotaCheck; + } var intent = new UploadIntent { diff --git a/Application/PlayLists/Handlers/UpdatePlayListCommandHandler.cs b/Application/PlayLists/Handlers/UpdatePlayListCommandHandler.cs index 70b064a..e4e3464 100644 --- a/Application/PlayLists/Handlers/UpdatePlayListCommandHandler.cs +++ b/Application/PlayLists/Handlers/UpdatePlayListCommandHandler.cs @@ -3,13 +3,13 @@ using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Musify.Application.Configuration; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Events; using Musify.Application.PlayLists.Commands; using Musify.Application.PlayLists.Responses; using Musify.Application.UploadIntents; using Musify.Application.Extensions; -using Musify.Application.Abstractions.Application; +using Musify.Application.Services; using Musify.Domain.Entities; namespace Musify.Application.PlayLists.Handlers @@ -17,7 +17,7 @@ namespace Musify.Application.PlayLists.Handlers public class UpdatePlayListCommandHandler( IEventBus eventBus, IDatabase database, - IUploadIntentService uploadIntentService, + UploadIntentValidator uploadIntentValidator, IStorageService storageService, ILogger logger, ApplicationStorageConfiguration storageConfiguration, @@ -53,7 +53,7 @@ namespace Musify.Application.PlayLists.Handlers if (request.NewPictureIntentId.HasValue) { - var validation = await uploadIntentService.ValidateAndLoadAsync( + var validation = await uploadIntentValidator.ValidateAndLoadAsync( uploadIntentConfiguration, request.NewPictureIntentId.Value, request.UserId, cancellationToken); if (!validation.IsSuccess) diff --git a/Application/PlayLists/Queries/GetPlayListsByUserIdQuery.cs b/Application/PlayLists/Queries/GetPlayListsByUserIdQuery.cs index 788853c..c2e9da5 100644 --- a/Application/PlayLists/Queries/GetPlayListsByUserIdQuery.cs +++ b/Application/PlayLists/Queries/GetPlayListsByUserIdQuery.cs @@ -1,6 +1,6 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; -using Musify.Application.Abstractions.Application; +using Musify.Application.Pagination; using Musify.Application.PlayLists.Responses; namespace Musify.Application.PlayLists.Queries diff --git a/Application/PlayLists/Queries/GetPlayListsQuery.cs b/Application/PlayLists/Queries/GetPlayListsQuery.cs index f532d99..18d7b44 100644 --- a/Application/PlayLists/Queries/GetPlayListsQuery.cs +++ b/Application/PlayLists/Queries/GetPlayListsQuery.cs @@ -1,6 +1,6 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; -using Musify.Application.Abstractions.Application; +using Musify.Application.Pagination; using Musify.Application.PlayLists.Responses; namespace Musify.Application.PlayLists.Queries diff --git a/Application/Services/UploadIntentService.cs b/Application/Services/UploadIntentValidator.cs similarity index 81% rename from Application/Services/UploadIntentService.cs rename to Application/Services/UploadIntentValidator.cs index f3c736f..aeb43aa 100644 --- a/Application/Services/UploadIntentService.cs +++ b/Application/Services/UploadIntentValidator.cs @@ -1,20 +1,17 @@ using Ardalis.Result; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; -using Musify.Application.Abstractions.Application; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; using Musify.Domain.Entities; namespace Musify.Application.Services; -public sealed class UploadIntentService( +public sealed class UploadIntentValidator( IDatabase database, - IStorageService storageService) : IUploadIntentService + IStorageService storageService) { public async Task CheckQuotaAsync( UploadIntentConfiguration config, - ILogger logger, Guid userId, long requiredBytes, int requiredIntentCount, @@ -26,17 +23,11 @@ public sealed class UploadIntentService( .ToListAsync(cancellationToken); if (activeIntents.Count + requiredIntentCount > config.MaxActiveUploadIntentsPerUser) - { - logger.LogWarning("User {UserId} exceeded max active upload intents ({Max})", userId, config.MaxActiveUploadIntentsPerUser); return Result.Invalid(new ValidationError("Upload intent limit exceeded. Wait for existing uploads to complete or expire.")); - } var activeBytes = activeIntents.Sum(i => i.ExpectedSizeBytes ?? config.DefaultExpectedPictureSizeBytes); if (activeBytes + requiredBytes > config.MaxActiveUploadBytesPerUser) - { - logger.LogWarning("User {UserId} exceeded max active upload bytes ({Max})", userId, config.MaxActiveUploadBytesPerUser); return Result.Invalid(new ValidationError("Upload byte quota exceeded. Wait for existing uploads to complete or expire.")); - } return Result.Success(); } diff --git a/Application/Tracks/Handler/CreateTrackCommandHandler.cs b/Application/Tracks/Handler/CreateTrackCommandHandler.cs index 7578ed3..fc58123 100644 --- a/Application/Tracks/Handler/CreateTrackCommandHandler.cs +++ b/Application/Tracks/Handler/CreateTrackCommandHandler.cs @@ -3,13 +3,13 @@ using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Musify.Application.Configuration; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Events; using Musify.Application.Tracks.Commands; using Musify.Application.Tracks.Responses; using Musify.Application.UploadIntents; using Musify.Application.Extensions; -using Musify.Application.Abstractions.Application; +using Musify.Application.Services; using Musify.Domain.Entities; namespace Musify.Application.Tracks.Handler @@ -17,7 +17,7 @@ namespace Musify.Application.Tracks.Handler public class CreateTrackCommandHandler( IDatabase database, IEventBus eventBus, - IUploadIntentService uploadIntentService, + UploadIntentValidator uploadIntentValidator, IStorageService storageService, ILogger logger, ApplicationStorageConfiguration storageConfiguration, @@ -35,13 +35,13 @@ namespace Musify.Application.Tracks.Handler return Result.NotFound($"User {request.UserId} not found"); } - var pictureValidation = await uploadIntentService.ValidateAndLoadAsync( + var pictureValidation = await uploadIntentValidator.ValidateAndLoadAsync( uploadIntentConfiguration, request.PictureIntentId, request.UserId, cancellationToken); if (!pictureValidation.IsSuccess) return pictureValidation.As(); - var audioValidation = await uploadIntentService.ValidateAndLoadAsync( + var audioValidation = await uploadIntentValidator.ValidateAndLoadAsync( uploadIntentConfiguration, request.AudioIntentId, request.UserId, cancellationToken); if (!audioValidation.IsSuccess) diff --git a/Application/Tracks/Handler/DeleteTrackCommandHandler.cs b/Application/Tracks/Handler/DeleteTrackCommandHandler.cs index 069254a..66a85c5 100644 --- a/Application/Tracks/Handler/DeleteTrackCommandHandler.cs +++ b/Application/Tracks/Handler/DeleteTrackCommandHandler.cs @@ -2,7 +2,7 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Tracks.Commands; using Musify.Domain.Entities; using Musify.Application.Events; diff --git a/Application/Tracks/Handler/GetTrackByIdQueryHandler.cs b/Application/Tracks/Handler/GetTrackByIdQueryHandler.cs index 85607e3..df277c0 100644 --- a/Application/Tracks/Handler/GetTrackByIdQueryHandler.cs +++ b/Application/Tracks/Handler/GetTrackByIdQueryHandler.cs @@ -1,7 +1,7 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Tracks.Queries; using Musify.Application.Tracks.Responses; diff --git a/Application/Tracks/Handler/GetTracksByUserIdQueryHandler.cs b/Application/Tracks/Handler/GetTracksByUserIdQueryHandler.cs index 9710a2b..6412908 100644 --- a/Application/Tracks/Handler/GetTracksByUserIdQueryHandler.cs +++ b/Application/Tracks/Handler/GetTracksByUserIdQueryHandler.cs @@ -1,8 +1,8 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Application; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Pagination; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Tracks.Queries; using Musify.Application.Tracks.Responses; using X.PagedList.EF; diff --git a/Application/Tracks/Handler/GetTracksQueryHandler.cs b/Application/Tracks/Handler/GetTracksQueryHandler.cs index c1875d1..2219fda 100644 --- a/Application/Tracks/Handler/GetTracksQueryHandler.cs +++ b/Application/Tracks/Handler/GetTracksQueryHandler.cs @@ -1,8 +1,8 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Application; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Pagination; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Tracks.Queries; using Musify.Application.Tracks.Responses; using X.PagedList.EF; diff --git a/Application/Tracks/Handler/RequestTrackUploadUrlsCommandHandler.cs b/Application/Tracks/Handler/RequestTrackUploadUrlsCommandHandler.cs index d40fbf8..22cf8a4 100644 --- a/Application/Tracks/Handler/RequestTrackUploadUrlsCommandHandler.cs +++ b/Application/Tracks/Handler/RequestTrackUploadUrlsCommandHandler.cs @@ -2,19 +2,18 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Application; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; +using Musify.Application.Services; using Musify.Application.Tracks.Commands; using Musify.Application.Tracks.Responses; -using Musify.Application.UploadIntents; using Musify.Domain.Entities; namespace Musify.Application.Tracks.Handler { public class RequestTrackUploadUrlsCommandHandler( IDatabase database, - IUploadIntentService uploadIntentService, + UploadIntentValidator uploadIntentValidator, IStorageService storageService, ILogger logger, ApplicationStorageConfiguration storageConfiguration, @@ -22,9 +21,6 @@ namespace Musify.Application.Tracks.Handler UploadIntentConfiguration uploadIntentConfiguration) : ICommandHandler> { - static readonly string[] AllowedPictureExtensions = [".webp", ".png", ".jpg", ".jpeg"]; - static readonly string[] AllowedAudioExtensions = [".mp3", ".wav", ".m4a", ".flac", ".ogg", ".aac", ".opus"]; - public async ValueTask> Handle(RequestTrackUploadUrlsCommand request, CancellationToken cancellationToken) { var userExists = await database.Users @@ -36,21 +32,13 @@ namespace Musify.Application.Tracks.Handler return Result.NotFound($"User {request.UserId} not found"); } - var pictureExtensionResult = UploadIntentHelpers.ValidateExtension(request.PictureFileType, AllowedPictureExtensions); - if (!pictureExtensionResult.IsSuccess) - return Result.Invalid(pictureExtensionResult.Errors.Select(error => new ValidationError(error)).ToArray()); - - var audioExtensionResult = UploadIntentHelpers.ValidateExtension(request.AudioFileType, AllowedAudioExtensions); - if (!audioExtensionResult.IsSuccess) - return Result.Invalid(audioExtensionResult.Errors.Select(error => new ValidationError(error)).ToArray()); - var effectivePictureSize = request.ExpectedPictureSizeBytes ?? uploadIntentConfiguration.DefaultExpectedPictureSizeBytes; var effectiveAudioSize = request.ExpectedAudioSizeBytes ?? uploadIntentConfiguration.DefaultExpectedAudioSizeBytes; - var pictureObjectName = Guid.NewGuid() + pictureExtensionResult.Value; - var audioObjectName = Guid.NewGuid() + audioExtensionResult.Value; + var pictureObjectName = $"{Guid.NewGuid()}.{request.PictureFileType.TrimStart('.').ToLowerInvariant()}"; + var audioObjectName = $"{Guid.NewGuid()}.{request.AudioFileType.TrimStart('.').ToLowerInvariant()}"; var tempPictureKey = trackConfiguration.Routes.BuildTempPicturePath( uploadIntentConfiguration.TempRootPrefix, request.UserId, pictureObjectName); @@ -80,11 +68,14 @@ namespace Musify.Application.Tracks.Handler await using var transaction = await database.BeginTransactionAsync( System.Data.IsolationLevel.Serializable, cancellationToken); - var quotaCheck = await uploadIntentService.CheckQuotaAsync( - uploadIntentConfiguration, logger, + var quotaCheck = await uploadIntentValidator.CheckQuotaAsync( + uploadIntentConfiguration, request.UserId, effectivePictureSize + effectiveAudioSize, 2, cancellationToken); if (!quotaCheck.IsSuccess) + { + logger.LogWarning("User {UserId} failed upload intent quota check", request.UserId); return quotaCheck; + } var pictureIntent = new UploadIntent { diff --git a/Application/Tracks/Queries/GetTracksByUserIdQuery.cs b/Application/Tracks/Queries/GetTracksByUserIdQuery.cs index 21c378e..00a00f6 100644 --- a/Application/Tracks/Queries/GetTracksByUserIdQuery.cs +++ b/Application/Tracks/Queries/GetTracksByUserIdQuery.cs @@ -1,6 +1,6 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; -using Musify.Application.Abstractions.Application; +using Musify.Application.Pagination; using Musify.Application.Tracks.Responses; namespace Musify.Application.Tracks.Queries diff --git a/Application/Tracks/Queries/GetTracksQuery.cs b/Application/Tracks/Queries/GetTracksQuery.cs index 8b0dd64..b483e56 100644 --- a/Application/Tracks/Queries/GetTracksQuery.cs +++ b/Application/Tracks/Queries/GetTracksQuery.cs @@ -1,6 +1,6 @@ -using Ardalis.Result; +using Ardalis.Result; using Mediator; -using Musify.Application.Abstractions.Application; +using Musify.Application.Pagination; using Musify.Application.Tracks.Responses; namespace Musify.Application.Tracks.Queries diff --git a/Application/UploadIntents/UploadIntentHelpers.cs b/Application/UploadIntents/UploadIntentHelpers.cs deleted file mode 100644 index 8551a27..0000000 --- a/Application/UploadIntents/UploadIntentHelpers.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Ardalis.Result; - -namespace Musify.Application.UploadIntents -{ - internal static class UploadIntentHelpers - { - internal static Result ValidateExtension(string fileType, string[] allowedExtensions) - { - var extension = fileType.Trim(); - if (!extension.StartsWith('.')) - extension = "." + extension; - - extension = extension.ToLowerInvariant(); - - if (extension.Contains('/') || extension.Contains('\\')) - return Result.Error("Invalid FileType"); - - if (!allowedExtensions.Contains(extension)) - return Result.Error($"Unsupported FileType '{extension}'"); - - return Result.Success(extension); - } - } -} diff --git a/Application/Users/Handlers/CreateUserCommandHandler.cs b/Application/Users/Handlers/CreateUserCommandHandler.cs index 3fd02cf..84a9c0e 100644 --- a/Application/Users/Handlers/CreateUserCommandHandler.cs +++ b/Application/Users/Handlers/CreateUserCommandHandler.cs @@ -2,7 +2,7 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Users.Commands; using Musify.Application.Users.Responses; diff --git a/Application/Users/Handlers/GetUserByIdQueryHandler.cs b/Application/Users/Handlers/GetUserByIdQueryHandler.cs index 6441884..1d14715 100644 --- a/Application/Users/Handlers/GetUserByIdQueryHandler.cs +++ b/Application/Users/Handlers/GetUserByIdQueryHandler.cs @@ -1,7 +1,7 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Users.Queries; using Musify.Application.Users.Responses; diff --git a/Application/Users/Handlers/GetUserByKeycloakQueryHandler.cs b/Application/Users/Handlers/GetUserByKeycloakQueryHandler.cs index 26c3c51..10fb204 100644 --- a/Application/Users/Handlers/GetUserByKeycloakQueryHandler.cs +++ b/Application/Users/Handlers/GetUserByKeycloakQueryHandler.cs @@ -1,7 +1,7 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Users.Queries; using Musify.Application.Users.Responses; diff --git a/Application/Users/Handlers/GetUsersQueryHandler.cs b/Application/Users/Handlers/GetUsersQueryHandler.cs index 4d474c2..4688869 100644 --- a/Application/Users/Handlers/GetUsersQueryHandler.cs +++ b/Application/Users/Handlers/GetUsersQueryHandler.cs @@ -1,8 +1,8 @@ using Ardalis.Result; using Mediator; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Application; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Pagination; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Users.Queries; using Musify.Application.Users.Responses; using X.PagedList.EF; diff --git a/Application/Users/Queries/GetUsersQuery.cs b/Application/Users/Queries/GetUsersQuery.cs index 5d78679..edc2e7b 100644 --- a/Application/Users/Queries/GetUsersQuery.cs +++ b/Application/Users/Queries/GetUsersQuery.cs @@ -1,6 +1,6 @@ using Ardalis.Result; using Mediator; -using Musify.Application.Abstractions.Application; +using Musify.Application.Pagination; using Musify.Application.Users.Responses; namespace Musify.Application.Users.Queries diff --git a/Domain/Domain.csproj b/Domain/Domain.csproj index 879a55c..6338edf 100644 --- a/Domain/Domain.csproj +++ b/Domain/Domain.csproj @@ -11,4 +11,5 @@ https://github.com/XShine555/MusifyBackend + diff --git a/Infrastructure/Jobs/TempUploadsCleanupJob.cs b/Infrastructure/Jobs/TempUploadsCleanupJob.cs index ac83776..745b6bc 100644 --- a/Infrastructure/Jobs/TempUploadsCleanupJob.cs +++ b/Infrastructure/Jobs/TempUploadsCleanupJob.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; namespace Musify.Infrastructure.Jobs diff --git a/Infrastructure/Jobs/UploadIntentExpirationJob.cs b/Infrastructure/Jobs/UploadIntentExpirationJob.cs index 3b46a44..ce74e86 100644 --- a/Infrastructure/Jobs/UploadIntentExpirationJob.cs +++ b/Infrastructure/Jobs/UploadIntentExpirationJob.cs @@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; using Musify.Domain.Entities; diff --git a/Infrastructure/MassTransit/Activities/Audio/GenerateAudioWorkflowPathsActivity.cs b/Infrastructure/MassTransit/Activities/Audio/GenerateAudioWorkflowPathsActivity.cs index 606f66e..73f4dcc 100644 --- a/Infrastructure/MassTransit/Activities/Audio/GenerateAudioWorkflowPathsActivity.cs +++ b/Infrastructure/MassTransit/Activities/Audio/GenerateAudioWorkflowPathsActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; using Musify.Infrastructure.MassTransit.Activities.Arguments; diff --git a/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs b/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs index 6da0ffb..4766ae5 100644 --- a/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs +++ b/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; using Musify.Infrastructure.MassTransit.Activities.Arguments; using Musify.Infrastructure.MassTransit.Activities.Logs; diff --git a/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs b/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs index 7fc302d..cf32e81 100644 --- a/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs +++ b/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; using Musify.Infrastructure.MassTransit.Arguments; using Musify.Infrastructure.MassTransit.Logs; diff --git a/Infrastructure/MassTransit/Activities/Files/DownloadFileFromBucketActivity.cs b/Infrastructure/MassTransit/Activities/Files/DownloadFileFromBucketActivity.cs index 3612ffa..f7d7db8 100644 --- a/Infrastructure/MassTransit/Activities/Files/DownloadFileFromBucketActivity.cs +++ b/Infrastructure/MassTransit/Activities/Files/DownloadFileFromBucketActivity.cs @@ -1,6 +1,6 @@ using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; using Musify.Infrastructure.MassTransit.Activities.Logs; diff --git a/Infrastructure/MassTransit/Activities/Files/RemoveFileFromBucketActivity.cs b/Infrastructure/MassTransit/Activities/Files/RemoveFileFromBucketActivity.cs index a28baa9..911baf9 100644 --- a/Infrastructure/MassTransit/Activities/Files/RemoveFileFromBucketActivity.cs +++ b/Infrastructure/MassTransit/Activities/Files/RemoveFileFromBucketActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Amazon.S3; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; using System.Net; diff --git a/Infrastructure/MassTransit/Activities/Files/RemoveFolderFromBucketActivity.cs b/Infrastructure/MassTransit/Activities/Files/RemoveFolderFromBucketActivity.cs index 6170921..91addc2 100644 --- a/Infrastructure/MassTransit/Activities/Files/RemoveFolderFromBucketActivity.cs +++ b/Infrastructure/MassTransit/Activities/Files/RemoveFolderFromBucketActivity.cs @@ -1,6 +1,6 @@ -using MassTransit; +using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Arguments; namespace Musify.Infrastructure.MassTransit.Activities.Files diff --git a/Infrastructure/MassTransit/Activities/Files/TransferFilesToBucketActivity.cs b/Infrastructure/MassTransit/Activities/Files/TransferFilesToBucketActivity.cs index 70dd5b5..5f6ceb8 100644 --- a/Infrastructure/MassTransit/Activities/Files/TransferFilesToBucketActivity.cs +++ b/Infrastructure/MassTransit/Activities/Files/TransferFilesToBucketActivity.cs @@ -1,6 +1,6 @@ using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; using Musify.Infrastructure.MassTransit.Activities.Logs; diff --git a/Infrastructure/MassTransit/Activities/Files/UploadFileToBucketActivity.cs b/Infrastructure/MassTransit/Activities/Files/UploadFileToBucketActivity.cs index 286feff..d3e18b6 100644 --- a/Infrastructure/MassTransit/Activities/Files/UploadFileToBucketActivity.cs +++ b/Infrastructure/MassTransit/Activities/Files/UploadFileToBucketActivity.cs @@ -1,6 +1,6 @@ using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Arguments; using Musify.Infrastructure.MassTransit.Logs; diff --git a/Infrastructure/MassTransit/Activities/Pictures/ResizePictureActivity.cs b/Infrastructure/MassTransit/Activities/Pictures/ResizePictureActivity.cs index 90b9c3c..941132b 100644 --- a/Infrastructure/MassTransit/Activities/Pictures/ResizePictureActivity.cs +++ b/Infrastructure/MassTransit/Activities/Pictures/ResizePictureActivity.cs @@ -1,6 +1,6 @@ using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; using Musify.Infrastructure.MassTransit.Activities.Logs; diff --git a/Infrastructure/MassTransit/Activities/Pictures/UpdatePlayListPictureActivity.cs b/Infrastructure/MassTransit/Activities/Pictures/UpdatePlayListPictureActivity.cs index 2a7afb2..c6df282 100644 --- a/Infrastructure/MassTransit/Activities/Pictures/UpdatePlayListPictureActivity.cs +++ b/Infrastructure/MassTransit/Activities/Pictures/UpdatePlayListPictureActivity.cs @@ -1,6 +1,6 @@ using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; using Musify.Infrastructure.MassTransit.Activities.Logs; diff --git a/Infrastructure/MassTransit/Activities/Pictures/UpdateTrackPictureActivity.cs b/Infrastructure/MassTransit/Activities/Pictures/UpdateTrackPictureActivity.cs index 8f56c5c..3c807b8 100644 --- a/Infrastructure/MassTransit/Activities/Pictures/UpdateTrackPictureActivity.cs +++ b/Infrastructure/MassTransit/Activities/Pictures/UpdateTrackPictureActivity.cs @@ -1,6 +1,6 @@ using MassTransit; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.MassTransit.Activities.Arguments; using Musify.Infrastructure.MassTransit.Activities.Logs; diff --git a/Infrastructure/MassTransit/Activities/PlayLists/DeletePlayListFromDbActivity.cs b/Infrastructure/MassTransit/Activities/PlayLists/DeletePlayListFromDbActivity.cs index e929f29..8cff6f7 100644 --- a/Infrastructure/MassTransit/Activities/PlayLists/DeletePlayListFromDbActivity.cs +++ b/Infrastructure/MassTransit/Activities/PlayLists/DeletePlayListFromDbActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; namespace Musify.Infrastructure.MassTransit.Activities.PlayLists { diff --git a/Infrastructure/MassTransit/Activities/PlayLists/MarkPlayListAsRemovingActivity.cs b/Infrastructure/MassTransit/Activities/PlayLists/MarkPlayListAsRemovingActivity.cs index 67d09ad..0f6084a 100644 --- a/Infrastructure/MassTransit/Activities/PlayLists/MarkPlayListAsRemovingActivity.cs +++ b/Infrastructure/MassTransit/Activities/PlayLists/MarkPlayListAsRemovingActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; namespace Musify.Infrastructure.MassTransit.Activities.PlayLists diff --git a/Infrastructure/MassTransit/Activities/Tracks/DeleteTrackFromDbActivity.cs b/Infrastructure/MassTransit/Activities/Tracks/DeleteTrackFromDbActivity.cs index f1a5d0d..5e3cbf3 100644 --- a/Infrastructure/MassTransit/Activities/Tracks/DeleteTrackFromDbActivity.cs +++ b/Infrastructure/MassTransit/Activities/Tracks/DeleteTrackFromDbActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; namespace Musify.Infrastructure.MassTransit.Activities.Tracks { diff --git a/Infrastructure/MassTransit/Activities/Tracks/MarkTrackAsRemovingActivity.cs b/Infrastructure/MassTransit/Activities/Tracks/MarkTrackAsRemovingActivity.cs index 4290155..9f07a62 100644 --- a/Infrastructure/MassTransit/Activities/Tracks/MarkTrackAsRemovingActivity.cs +++ b/Infrastructure/MassTransit/Activities/Tracks/MarkTrackAsRemovingActivity.cs @@ -1,7 +1,7 @@ using MassTransit; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; namespace Musify.Infrastructure.MassTransit.Activities.Tracks diff --git a/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs b/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs index 1bc01e6..1c497ce 100644 --- a/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs +++ b/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs @@ -1,7 +1,7 @@ -using MassTransit; +using MassTransit; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.Configuration; using Musify.Infrastructure.Persistence; diff --git a/Infrastructure/MassTransit/EventBus/MassTransitEventBus.cs b/Infrastructure/MassTransit/EventBus/MassTransitEventBus.cs index 50b398c..23f69de 100644 --- a/Infrastructure/MassTransit/EventBus/MassTransitEventBus.cs +++ b/Infrastructure/MassTransit/EventBus/MassTransitEventBus.cs @@ -1,5 +1,5 @@ -using MassTransit; -using Musify.Application.Abstractions.Infrastructure; +using MassTransit; +using Musify.Application.Contracts.Infrastructure; namespace Musify.Infrastructure.MassTransit { diff --git a/Infrastructure/MassTransit/RoutingSlip/Builders/DeletePlayListRoutingSlipBuilder.cs b/Infrastructure/MassTransit/RoutingSlip/Builders/DeletePlayListRoutingSlipBuilder.cs index 232744c..f12750d 100644 --- a/Infrastructure/MassTransit/RoutingSlip/Builders/DeletePlayListRoutingSlipBuilder.cs +++ b/Infrastructure/MassTransit/RoutingSlip/Builders/DeletePlayListRoutingSlipBuilder.cs @@ -1,7 +1,7 @@ using MassTransit; using MassTransit.Courier.Contracts; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; using Musify.Infrastructure.MassTransit.Activities.Files; using Musify.Infrastructure.MassTransit.Activities.Arguments; diff --git a/Infrastructure/MassTransit/RoutingSlip/Builders/DeleteTrackRoutingSlipBuilder.cs b/Infrastructure/MassTransit/RoutingSlip/Builders/DeleteTrackRoutingSlipBuilder.cs index 6da734e..ca161aa 100644 --- a/Infrastructure/MassTransit/RoutingSlip/Builders/DeleteTrackRoutingSlipBuilder.cs +++ b/Infrastructure/MassTransit/RoutingSlip/Builders/DeleteTrackRoutingSlipBuilder.cs @@ -1,7 +1,7 @@ using MassTransit; using MassTransit.Courier.Contracts; using Microsoft.EntityFrameworkCore; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; using Musify.Infrastructure.MassTransit.Activities.Files; using Musify.Infrastructure.MassTransit.Activities.Arguments; diff --git a/Infrastructure/Persistence/Database.cs b/Infrastructure/Persistence/Database.cs index c4df933..f74cf4f 100644 --- a/Infrastructure/Persistence/Database.cs +++ b/Infrastructure/Persistence/Database.cs @@ -1,10 +1,10 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; using MassTransit; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; using Musify.Infrastructure.Configuration; -using AppIDatabase = Musify.Application.Abstractions.Infrastructure.IDatabase; +using AppIDatabase = Musify.Application.Contracts.Infrastructure.IDatabase; namespace Musify.Infrastructure.Persistence { diff --git a/Infrastructure/Persistence/DatabaseDependencyInjection.cs b/Infrastructure/Persistence/DatabaseDependencyInjection.cs index c5db7ac..a5eb939 100644 --- a/Infrastructure/Persistence/DatabaseDependencyInjection.cs +++ b/Infrastructure/Persistence/DatabaseDependencyInjection.cs @@ -1,7 +1,7 @@ -using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.Configuration; namespace Musify.Infrastructure.Persistence diff --git a/Infrastructure/Services/AudioTranscoderService.cs b/Infrastructure/Services/AudioTranscoderService.cs index f7086ac..1bec040 100644 --- a/Infrastructure/Services/AudioTranscoderService.cs +++ b/Infrastructure/Services/AudioTranscoderService.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Infrastructure.Configuration; using System.Diagnostics; diff --git a/Infrastructure/Services/PictureService.cs b/Infrastructure/Services/PictureService.cs index 390a487..f50f9ba 100644 --- a/Infrastructure/Services/PictureService.cs +++ b/Infrastructure/Services/PictureService.cs @@ -1,5 +1,5 @@ using Microsoft.Extensions.Logging; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Processing; diff --git a/Infrastructure/Services/ServicesDependencyInjection.cs b/Infrastructure/Services/ServicesDependencyInjection.cs index 47fa365..04176c5 100644 --- a/Infrastructure/Services/ServicesDependencyInjection.cs +++ b/Infrastructure/Services/ServicesDependencyInjection.cs @@ -1,9 +1,8 @@ -using Amazon.S3; +using Amazon.S3; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using Musify.Application.Abstractions.Infrastructure; -using Musify.Application.Abstractions.Application; +using Musify.Application.Contracts.Infrastructure; using Musify.Application.Configuration; using Musify.Infrastructure.Configuration; using Musify.Infrastructure.Jobs; @@ -56,7 +55,7 @@ namespace Musify.Infrastructure.Services serviceDescriptors.AddSingleton(serviceProvider => serviceProvider.GetRequiredService>().Value); - serviceDescriptors.AddScoped(); + serviceDescriptors.AddScoped(); return serviceDescriptors; } diff --git a/Infrastructure/Services/StorageService.cs b/Infrastructure/Services/StorageService.cs index 3c2efaf..757499c 100644 --- a/Infrastructure/Services/StorageService.cs +++ b/Infrastructure/Services/StorageService.cs @@ -3,10 +3,10 @@ using Amazon.S3.Model; using Amazon.S3.Transfer; using Microsoft.Extensions.Logging; using MimeMapping; -using Musify.Application.Abstractions.Infrastructure; +using Musify.Application.Contracts.Infrastructure; using Musify.Domain.Entities; using Musify.Infrastructure.Configuration; -using ObjectMetadata = Musify.Application.Abstractions.Infrastructure.ObjectMetadata; +using ObjectMetadata = Musify.Application.Contracts.Infrastructure.ObjectMetadata; namespace Musify.Infrastructure.Services {