Update structure
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Application.Events
|
namespace Musify.Application.Common
|
||||||
{
|
{
|
||||||
public record ImageSize(
|
public record ImageSize(
|
||||||
string SavePath,
|
string SavePath,
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
namespace Musify.Application.Contracts.Application
|
|
||||||
{
|
|
||||||
public interface IFileData
|
|
||||||
{
|
|
||||||
Stream FileStream { get; }
|
|
||||||
|
|
||||||
string FileName { get; }
|
|
||||||
|
|
||||||
string FileType { get; }
|
|
||||||
|
|
||||||
string ContentType { get; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Application.Contracts.Infrastructure
|
namespace Musify.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IAudioTranscoderService
|
public interface IAudioTranscoderService
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
|
||||||
namespace Musify.Application.Contracts.Infrastructure
|
namespace Musify.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IDatabase
|
public interface IDatabase
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Application.Contracts.Infrastructure
|
namespace Musify.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IDatabaseTransaction : IAsyncDisposable
|
public interface IDatabaseTransaction : IAsyncDisposable
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Application.Contracts.Infrastructure
|
namespace Musify.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IEventBus
|
public interface IEventBus
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Application.Contracts.Infrastructure
|
namespace Musify.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IPictureService
|
public interface IPictureService
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
namespace Musify.Application.Contracts.Infrastructure
|
namespace Musify.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IStorageService
|
public interface IStorageService
|
||||||
{
|
{
|
||||||
Task<Stream> GetFileAsync(string bucket, string key, CancellationToken cancellationToken);
|
Task<Stream> GetFileAsync(string bucket, string key, CancellationToken cancellationToken);
|
||||||
|
|
||||||
// Returns null if the object does not exist
|
// Returns null if the object does not exist
|
||||||
Task<ObjectMetadata?> HeadObjectAsync(string bucket, string key, CancellationToken cancellationToken);
|
Task<ObjectMetaData?> HeadObjectAsync(string bucket, string key, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<string> GetUrlAsync(string bucket, string key, TimeSpan ExpirationTime, CancellationToken cancellationToken);
|
Task<string> GetUrlAsync(string bucket, string key, TimeSpan ExpirationTime, CancellationToken cancellationToken);
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
namespace Musify.Application.Contracts.Infrastructure
|
|
||||||
{
|
|
||||||
public record ObjectMetadata(string ContentType, long ContentLength);
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
namespace Musify.Application.Contracts
|
||||||
|
{
|
||||||
|
public record ObjectMetaData(string ContentType, long ContentLength);
|
||||||
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
|
|
||||||
namespace Musify.Application.Events
|
namespace Musify.Application.Events
|
||||||
{
|
{
|
||||||
public record CreatePlayListResourcesEvent(
|
public record CreatePlayListResourcesEvent(
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
|
|
||||||
namespace Musify.Application.Events
|
namespace Musify.Application.Events
|
||||||
{
|
{
|
||||||
public record CreateTrackResourcesEvent(
|
public record CreateTrackResourcesEvent(
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
|
|
||||||
namespace Musify.Application.Events
|
namespace Musify.Application.Events
|
||||||
{
|
{
|
||||||
public record UpdatePlayListPictureEvent(
|
public record UpdatePlayListPictureEvent(
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
|
|
||||||
namespace Musify.Application.Events
|
namespace Musify.Application.Events
|
||||||
{
|
{
|
||||||
public record UpdatePlayListPictureSourceEvent(
|
public record UpdatePlayListPictureSourceEvent(
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
|
|
||||||
namespace Musify.Application.Events
|
namespace Musify.Application.Events
|
||||||
{
|
{
|
||||||
public record UpdateTrackPictureEvent(
|
public record UpdateTrackPictureEvent(
|
||||||
|
|||||||
@@ -3,13 +3,15 @@ using Mediator;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Application.PlayLists.Commands;
|
using Musify.Application.PlayLists.Commands;
|
||||||
using Musify.Application.PlayLists.Responses;
|
using Musify.Application.PlayLists.Responses;
|
||||||
using Musify.Application.Extensions;
|
using Musify.Application.Extensions;
|
||||||
using Musify.Application.Services;
|
using Musify.Application.Services;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,10 +2,11 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Application.PlayLists.Commands;
|
using Musify.Application.PlayLists.Commands;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.PlayLists.Responses;
|
using Musify.Application.PlayLists.Responses;
|
||||||
using Musify.Application.PlayLists.Queries;
|
using Musify.Application.PlayLists.Queries;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Pagination;
|
using Musify.Application.Pagination;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.PlayLists.Responses;
|
using Musify.Application.PlayLists.Responses;
|
||||||
using Musify.Application.PlayLists.Queries;
|
using Musify.Application.PlayLists.Queries;
|
||||||
using X.PagedList.EF;
|
using X.PagedList.EF;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Pagination;
|
using Musify.Application.Pagination;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.PlayLists.Responses;
|
using Musify.Application.PlayLists.Responses;
|
||||||
using Musify.Application.PlayLists.Queries;
|
using Musify.Application.PlayLists.Queries;
|
||||||
using X.PagedList.EF;
|
using X.PagedList.EF;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,12 +2,13 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.PlayLists.Commands;
|
using Musify.Application.PlayLists.Commands;
|
||||||
using Musify.Application.PlayLists.Responses;
|
using Musify.Application.PlayLists.Responses;
|
||||||
using Musify.Application.Services;
|
using Musify.Application.Services;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,13 +3,15 @@ using Mediator;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Application.PlayLists.Commands;
|
using Musify.Application.PlayLists.Commands;
|
||||||
using Musify.Application.PlayLists.Responses;
|
using Musify.Application.PlayLists.Responses;
|
||||||
using Musify.Application.Extensions;
|
using Musify.Application.Extensions;
|
||||||
using Musify.Application.Services;
|
using Musify.Application.Services;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.PlayLists.Handlers
|
namespace Musify.Application.PlayLists.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Services;
|
namespace Musify.Application.Services;
|
||||||
|
|
||||||
|
|||||||
@@ -3,15 +3,17 @@ using Mediator;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Application.Tracks.Commands;
|
using Musify.Application.Tracks.Commands;
|
||||||
using Musify.Application.Tracks.Responses;
|
using Musify.Application.Tracks.Responses;
|
||||||
using Musify.Application.Extensions;
|
using Musify.Application.Extensions;
|
||||||
using Musify.Application.Services;
|
using Musify.Application.Services;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Tracks.Handler
|
namespace Musify.Application.Tracks.Handlers
|
||||||
{
|
{
|
||||||
public class CreateTrackCommandHandler(
|
public class CreateTrackCommandHandler(
|
||||||
IDatabase database,
|
IDatabase database,
|
||||||
|
|||||||
@@ -2,12 +2,13 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Tracks.Commands;
|
using Musify.Application.Tracks.Commands;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Tracks.Handler
|
namespace Musify.Application.Tracks.Handlers
|
||||||
{
|
{
|
||||||
public class DeleteTrackCommandHandler(
|
public class DeleteTrackCommandHandler(
|
||||||
IDatabase database,
|
IDatabase database,
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Application.Tracks.Queries;
|
using Musify.Application.Tracks.Queries;
|
||||||
using Musify.Application.Tracks.Responses;
|
using Musify.Application.Tracks.Responses;
|
||||||
|
|
||||||
namespace Musify.Application.Tracks.Handler
|
namespace Musify.Application.Tracks.Handlers
|
||||||
{
|
{
|
||||||
public class GetTrackByIdQueryHandler(IDatabase database)
|
public class GetTrackByIdQueryHandler(IDatabase database)
|
||||||
: IQueryHandler<GetTrackByIdQuery, Result<TrackApplicationResponse> >
|
: IQueryHandler<GetTrackByIdQuery, Result<TrackApplicationResponse> >
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Pagination;
|
using Musify.Application.Pagination;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Tracks.Queries;
|
using Musify.Application.Tracks.Queries;
|
||||||
using Musify.Application.Tracks.Responses;
|
using Musify.Application.Tracks.Responses;
|
||||||
using X.PagedList.EF;
|
using X.PagedList.EF;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Tracks.Handler
|
namespace Musify.Application.Tracks.Handlers
|
||||||
{
|
{
|
||||||
public class GetTracksByUserIdQueryHandler(IDatabase database)
|
public class GetTracksByUserIdQueryHandler(IDatabase database)
|
||||||
: IQueryHandler<GetTracksByUserIdQuery, Result<PaginatedResponse<TrackApplicationResponse>> >
|
: IQueryHandler<GetTracksByUserIdQuery, Result<PaginatedResponse<TrackApplicationResponse>> >
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Pagination;
|
using Musify.Application.Pagination;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Tracks.Queries;
|
using Musify.Application.Tracks.Queries;
|
||||||
using Musify.Application.Tracks.Responses;
|
using Musify.Application.Tracks.Responses;
|
||||||
using X.PagedList.EF;
|
using X.PagedList.EF;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Tracks.Handler
|
namespace Musify.Application.Tracks.Handlers
|
||||||
{
|
{
|
||||||
public class GetTracksQueryHandler(IDatabase database)
|
public class GetTracksQueryHandler(IDatabase database)
|
||||||
: IQueryHandler<GetTracksQuery, Result<PaginatedResponse<TrackApplicationResponse>> >
|
: IQueryHandler<GetTracksQuery, Result<PaginatedResponse<TrackApplicationResponse>> >
|
||||||
|
|||||||
@@ -2,14 +2,15 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Application.Services;
|
using Musify.Application.Services;
|
||||||
using Musify.Application.Tracks.Commands;
|
using Musify.Application.Tracks.Commands;
|
||||||
using Musify.Application.Tracks.Responses;
|
using Musify.Application.Tracks.Responses;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Tracks.Handler
|
namespace Musify.Application.Tracks.Handlers
|
||||||
{
|
{
|
||||||
public class RequestTrackUploadUrlsCommandHandler(
|
public class RequestTrackUploadUrlsCommandHandler(
|
||||||
IDatabase database,
|
IDatabase database,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Application.Users.Commands;
|
using Musify.Application.Users.Commands;
|
||||||
using Musify.Application.Users.Responses;
|
using Musify.Application.Users.Responses;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Application.Users.Queries;
|
using Musify.Application.Users.Queries;
|
||||||
using Musify.Application.Users.Responses;
|
using Musify.Application.Users.Responses;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Ardalis.Result;
|
using Ardalis.Result;
|
||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Application.Users.Queries;
|
using Musify.Application.Users.Queries;
|
||||||
using Musify.Application.Users.Responses;
|
using Musify.Application.Users.Responses;
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ using Ardalis.Result;
|
|||||||
using Mediator;
|
using Mediator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Pagination;
|
using Musify.Application.Pagination;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Users.Queries;
|
using Musify.Application.Users.Queries;
|
||||||
using Musify.Application.Users.Responses;
|
using Musify.Application.Users.Responses;
|
||||||
using X.PagedList.EF;
|
using X.PagedList.EF;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Application.Users.Handlers
|
namespace Musify.Application.Users.Handlers
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
|
||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.Entities
|
||||||
{
|
{
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
|
||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.Entities
|
||||||
{
|
{
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
|
||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.Entities
|
||||||
{
|
{
|
||||||
[Table("Upload")]
|
[Table("Upload")]
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
|
||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.Entities
|
||||||
{
|
{
|
||||||
[Table("UploadIntents")]
|
[Table("UploadIntents")]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.ValueObjects
|
||||||
{
|
{
|
||||||
public enum LifeCycleStatus
|
public enum LifeCycleStatus
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.ValueObjects
|
||||||
{
|
{
|
||||||
public enum ProcessingStatus
|
public enum ProcessingStatus
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.ValueObjects
|
||||||
{
|
{
|
||||||
public enum UploadIntentPurpose
|
public enum UploadIntentPurpose
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.ValueObjects
|
||||||
{
|
{
|
||||||
public enum UploadIntentStatus
|
public enum UploadIntentStatus
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Domain.Entities
|
namespace Musify.Domain.ValueObjects
|
||||||
{
|
{
|
||||||
public enum UploadState
|
public enum UploadState
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Jobs
|
namespace Musify.Infrastructure.Jobs
|
||||||
{
|
{
|
||||||
public class TemporalUploadsCleanupJob(
|
public class TemporalUploadsCleanUpJob(
|
||||||
IServiceScopeFactory scopeFactory,
|
IServiceScopeFactory scopeFactory,
|
||||||
ILogger<TemporalUploadsCleanupJob> logger,
|
ILogger<TemporalUploadsCleanUpJob> logger,
|
||||||
ApplicationStorageConfiguration storageConfiguration,
|
ApplicationStorageConfiguration storageConfiguration,
|
||||||
UploadIntentConfiguration uploadIntentConfiguration)
|
UploadIntentConfiguration uploadIntentConfiguration)
|
||||||
: BackgroundService
|
: BackgroundService
|
||||||
{
|
{
|
||||||
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||||
{
|
{
|
||||||
logger.LogInformation("TemporalUploadsCleanupJob started (interval: {Interval}s, prefix: {Prefix})",
|
logger.LogInformation("TemporalUploadsCleanUpJob started (interval: {Interval}s, prefix: {Prefix})",
|
||||||
uploadIntentConfiguration.TempCleanupJobIntervalSeconds,
|
uploadIntentConfiguration.TempCleanupJobIntervalSeconds,
|
||||||
uploadIntentConfiguration.TempRootPrefix);
|
uploadIntentConfiguration.TempRootPrefix);
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ namespace Musify.Infrastructure.Jobs
|
|||||||
}
|
}
|
||||||
catch (Exception exception) when (exception is not OperationCanceledException)
|
catch (Exception exception) when (exception is not OperationCanceledException)
|
||||||
{
|
{
|
||||||
logger.LogError(exception, "Error in TemporalUploadsCleanupJob");
|
logger.LogError(exception, "Error in TemporalUploadsCleanUpJob");
|
||||||
}
|
}
|
||||||
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(uploadIntentConfiguration.TempCleanupJobIntervalSeconds), stoppingToken);
|
await Task.Delay(TimeSpan.FromSeconds(uploadIntentConfiguration.TempCleanupJobIntervalSeconds), stoppingToken);
|
||||||
@@ -39,7 +39,7 @@ namespace Musify.Infrastructure.Jobs
|
|||||||
await using var scope = scopeFactory.CreateAsyncScope();
|
await using var scope = scopeFactory.CreateAsyncScope();
|
||||||
var storageService = scope.ServiceProvider.GetRequiredService<IStorageService>();
|
var storageService = scope.ServiceProvider.GetRequiredService<IStorageService>();
|
||||||
|
|
||||||
var cutoff = DateTime.UtcNow.AddDays(-uploadIntentConfiguration.TempUploadsRetentionDays);
|
var cutOff = DateTime.UtcNow.AddDays(-uploadIntentConfiguration.TempUploadsRetentionDays);
|
||||||
var deleted = 0;
|
var deleted = 0;
|
||||||
var errors = 0;
|
var errors = 0;
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ namespace Musify.Infrastructure.Jobs
|
|||||||
uploadIntentConfiguration.TempRootPrefix,
|
uploadIntentConfiguration.TempRootPrefix,
|
||||||
cancellationToken))
|
cancellationToken))
|
||||||
{
|
{
|
||||||
if (lastModified >= cutoff)
|
if (lastModified >= cutOff)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -64,7 +64,7 @@ namespace Musify.Infrastructure.Jobs
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (deleted > 0 || errors > 0)
|
if (deleted > 0 || errors > 0)
|
||||||
logger.LogInformation("TemporalUploadsCleanupJob: deleted {Deleted} orphaned objects, {Errors} errors", deleted, errors);
|
logger.LogInformation("TemporalUploadsCleanUpJob: deleted {Deleted} orphaned objects, {Errors} errors", deleted, errors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Jobs
|
namespace Musify.Infrastructure.Jobs
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Domain.ValueObjects;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
using Musify.Infrastructure.MassTransit.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities.Files
|
namespace Musify.Infrastructure.MassTransit.Activities.Files
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Amazon.S3;
|
using Amazon.S3;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities.Files
|
namespace Musify.Infrastructure.MassTransit.Activities.Files
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities
|
namespace Musify.Infrastructure.MassTransit.Activities
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities.PlayLists
|
namespace Musify.Infrastructure.MassTransit.Activities.PlayLists
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities.PlayLists
|
namespace Musify.Infrastructure.MassTransit.Activities.PlayLists
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities.Tracks
|
namespace Musify.Infrastructure.MassTransit.Activities.Tracks
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Activities.Tracks
|
namespace Musify.Infrastructure.MassTransit.Activities.Tracks
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
using Musify.Infrastructure.MassTransit.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Logs;
|
using Musify.Infrastructure.MassTransit.Logs;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.PlayLists
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
internal record DeletePlayListFromDbArguments(
|
internal record DeletePlayListFromDbArguments(
|
||||||
Guid PlayListId);
|
Guid PlayListId);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Tracks
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
internal record DeleteTrackFromDbArguments(
|
internal record DeleteTrackFromDbArguments(
|
||||||
Guid TrackId);
|
Guid TrackId);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record DownloadFileFromBucketArguments(
|
public record DownloadFileFromBucketArguments(
|
||||||
string Bucket,
|
string Bucket,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record GenerateAudioWorkflowPathsArguments(
|
public record GenerateAudioWorkflowPathsArguments(
|
||||||
Guid TrackId,
|
Guid TrackId,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record GeneratePictureWorkflowPathsArguments(
|
public record GeneratePictureWorkflowPathsArguments(
|
||||||
string TemporaryRootDirectory,
|
string TemporaryRootDirectory,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.PlayLists
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
internal record MarkPlayListAsRemovingArguments(
|
internal record MarkPlayListAsRemovingArguments(
|
||||||
Guid PlayListId);
|
Guid PlayListId);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Tracks
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
internal record MarkTrackAsRemovingArguments(
|
internal record MarkTrackAsRemovingArguments(
|
||||||
Guid TrackId);
|
Guid TrackId);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record RemoveFileFromBucketArguments(
|
public record RemoveFileFromBucketArguments(
|
||||||
string Bucket,
|
string Bucket,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record ResizePictureLocalArguments(
|
public record ResizePictureLocalArguments(
|
||||||
string SourceFilePathVariable,
|
string SourceFilePathVariable,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record TranscodeDashAudioArguments(
|
public record TranscodeDashAudioArguments(
|
||||||
Guid TrackId,
|
Guid TrackId,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record TransferFilesToBucketArguments(
|
public record TransferFilesToBucketArguments(
|
||||||
string DestinationBucket,
|
string DestinationBucket,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record UpdatePlayListPictureArguments(
|
public record UpdatePlayListPictureArguments(
|
||||||
Guid PlayListId,
|
Guid PlayListId,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Arguments
|
namespace Musify.Infrastructure.MassTransit.Arguments
|
||||||
{
|
{
|
||||||
public record UpdateTrackPictureArguments(
|
public record UpdateTrackPictureArguments(
|
||||||
Guid TrackId,
|
Guid TrackId,
|
||||||
|
|||||||
-2
@@ -2,10 +2,8 @@ using MassTransit;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using Musify.Infrastructure.MassTransit.Activities;
|
using Musify.Infrastructure.MassTransit.Activities;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Audio;
|
using Musify.Infrastructure.MassTransit.Activities.Audio;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Files;
|
using Musify.Infrastructure.MassTransit.Activities.Files;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Logs;
|
|
||||||
using Musify.Infrastructure.MassTransit.Activities.PlayLists;
|
using Musify.Infrastructure.MassTransit.Activities.PlayLists;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Tracks;
|
using Musify.Infrastructure.MassTransit.Activities.Tracks;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.UploadIntents;
|
using Musify.Infrastructure.MassTransit.Activities.UploadIntents;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using Musify.Infrastructure.Persistence;
|
using Musify.Infrastructure.Persistence;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record DownloadFileFromBucketLog(
|
public record DownloadFileFromBucketLog(
|
||||||
string Bucket,
|
string Bucket,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record GeneratePictureWorkflowPathsLog(string WorkingDirectory);
|
public record GeneratePictureWorkflowPathsLog(string WorkingDirectory);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record ResizePictureLog(string DestinationFilePath);
|
public record ResizePictureLog(string DestinationFilePath);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record TranscodeDashAudioLog(string WorkingDirectory);
|
public record TranscodeDashAudioLog(string WorkingDirectory);
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record TransferFilesToBucketLog(string DestinationBucket, string[] UploadedKeys);
|
public record TransferFilesToBucketLog(string DestinationBucket, string[] UploadedKeys);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record UpdatePlayListPictureLog(
|
public record UpdatePlayListPictureLog(
|
||||||
Guid PlayListId,
|
Guid PlayListId,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace Musify.Infrastructure.MassTransit.Activities.Logs
|
namespace Musify.Infrastructure.MassTransit.Logs
|
||||||
{
|
{
|
||||||
public record UpdateTrackPictureLog(
|
public record UpdateTrackPictureLog(
|
||||||
Guid TrackId,
|
Guid TrackId,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit
|
namespace Musify.Infrastructure.MassTransit
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,10 +4,9 @@ using Musify.Application.Events;
|
|||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Audio;
|
using Musify.Infrastructure.MassTransit.Activities.Audio;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Files;
|
using Musify.Infrastructure.MassTransit.Activities.Files;
|
||||||
|
using Musify.Infrastructure.MassTransit.Activities;
|
||||||
using Musify.Infrastructure.MassTransit.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Consumers;
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
using Musify.Infrastructure.MassTransit.Activities;
|
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using MassTransit.Courier.Contracts;
|
using MassTransit.Courier.Contracts;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Files;
|
using Musify.Infrastructure.MassTransit.Activities.Files;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
|
||||||
using Musify.Infrastructure.MassTransit.Activities.PlayLists;
|
using Musify.Infrastructure.MassTransit.Activities.PlayLists;
|
||||||
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Consumers;
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using MassTransit.Courier.Contracts;
|
using MassTransit.Courier.Contracts;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Files;
|
using Musify.Infrastructure.MassTransit.Activities.Files;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Tracks;
|
using Musify.Infrastructure.MassTransit.Activities.Tracks;
|
||||||
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Consumers;
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using MassTransit.Courier.Contracts;
|
using MassTransit.Courier.Contracts;
|
||||||
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using Musify.Infrastructure.MassTransit.Activities;
|
using Musify.Infrastructure.MassTransit.Activities;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Arguments;
|
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Files;
|
using Musify.Infrastructure.MassTransit.Activities.Files;
|
||||||
using Musify.Infrastructure.MassTransit.Arguments;
|
using Musify.Infrastructure.MassTransit.Arguments;
|
||||||
using Musify.Infrastructure.MassTransit.Consumers;
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
|
|||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using MassTransit.Courier.Contracts;
|
using MassTransit.Courier.Contracts;
|
||||||
|
using Musify.Application.Common;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.Files;
|
using Musify.Infrastructure.MassTransit.Activities.Files;
|
||||||
using Musify.Infrastructure.MassTransit.Activities.PlayLists;
|
using Musify.Infrastructure.MassTransit.Activities.PlayLists;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
using Microsoft.EntityFrameworkCore.Storage;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using AppIDatabase = Musify.Application.Contracts.Infrastructure.IDatabase;
|
using AppIDatabase = Musify.Application.Contracts.IDatabase;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence
|
namespace Musify.Infrastructure.Persistence
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Persistence
|
namespace Musify.Infrastructure.Persistence
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using SixLabors.ImageSharp;
|
using SixLabors.ImageSharp;
|
||||||
using SixLabors.ImageSharp.Processing;
|
using SixLabors.ImageSharp.Processing;
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ using Amazon.S3;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
|
||||||
using Musify.Application.Configuration;
|
using Musify.Application.Configuration;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using Musify.Infrastructure.Jobs;
|
using Musify.Infrastructure.Jobs;
|
||||||
using Musify.Application.Services;
|
using Musify.Application.Services;
|
||||||
|
using Musify.Application.Contracts;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Services
|
namespace Musify.Infrastructure.Services
|
||||||
{
|
{
|
||||||
@@ -66,7 +66,7 @@ namespace Musify.Infrastructure.Services
|
|||||||
serviceDescriptors.AddUploadIntentConfiguration(configuration);
|
serviceDescriptors.AddUploadIntentConfiguration(configuration);
|
||||||
|
|
||||||
serviceDescriptors.AddHostedService<UploadIntentExpirationJob>();
|
serviceDescriptors.AddHostedService<UploadIntentExpirationJob>();
|
||||||
serviceDescriptors.AddHostedService<TemporalUploadsCleanupJob>();
|
serviceDescriptors.AddHostedService<TemporalUploadsCleanUpJob>();
|
||||||
|
|
||||||
return serviceDescriptors;
|
return serviceDescriptors;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ using Amazon.S3.Model;
|
|||||||
using Amazon.S3.Transfer;
|
using Amazon.S3.Transfer;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using MimeMapping;
|
using MimeMapping;
|
||||||
using Musify.Application.Contracts.Infrastructure;
|
using Musify.Application.Contracts;
|
||||||
using Musify.Domain.Entities;
|
using Musify.Domain.Entities;
|
||||||
|
using Musify.Domain.ValueObjects;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
using ObjectMetadata = Musify.Application.Contracts.Infrastructure.ObjectMetadata;
|
using ObjectMetaData = Musify.Application.Contracts.ObjectMetaData;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Services
|
namespace Musify.Infrastructure.Services
|
||||||
{
|
{
|
||||||
@@ -70,12 +71,12 @@ namespace Musify.Infrastructure.Services
|
|||||||
return await amazonS3.GetPreSignedURLAsync(request);
|
return await amazonS3.GetPreSignedURLAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<ObjectMetadata?> HeadObjectAsync(string bucket, string key, CancellationToken cancellationToken)
|
public async Task<ObjectMetaData?> HeadObjectAsync(string bucket, string key, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var response = await amazonS3.GetObjectMetadataAsync(bucket, key, cancellationToken);
|
var response = await amazonS3.GetObjectMetadataAsync(bucket, key, cancellationToken);
|
||||||
return new ObjectMetadata(response.Headers.ContentType, response.ContentLength);
|
return new ObjectMetaData(response.Headers.ContentType, response.ContentLength);
|
||||||
}
|
}
|
||||||
catch (AmazonS3Exception ex) when (ex.StatusCode == System.Net.HttpStatusCode.NotFound)
|
catch (AmazonS3Exception ex) when (ex.StatusCode == System.Net.HttpStatusCode.NotFound)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user