58 lines
1.9 KiB
C#
58 lines
1.9 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.Globalization;
|
|
using Musify.Application.Shared;
|
|
|
|
namespace Musify.Application.Configuration
|
|
{
|
|
public class TrackConfiguration : IConfigurationOptions, IPictureOwnerConfiguration
|
|
{
|
|
public static string SectionName => "Track";
|
|
|
|
[Required]
|
|
public TrackRoutes Routes { get; set; } = new();
|
|
|
|
[Required]
|
|
public PictureSizes PicturesSizes { get; set; } = new();
|
|
|
|
PictureRoutes IPictureOwnerConfiguration.Routes => Routes;
|
|
}
|
|
|
|
public class TrackRoutes : PictureRoutes
|
|
{
|
|
public TrackRoutes()
|
|
{
|
|
ParentFolder = "Tracks";
|
|
}
|
|
|
|
[Required]
|
|
public string PresetOriginalPicture { get; set; } = "PresetOriginalPicture.webp";
|
|
|
|
[Required]
|
|
public string PresetSmallPicture { get; set; } = "PresetSmallPicture.webp";
|
|
|
|
[Required]
|
|
public string PresetMediumPicture { get; set; } = "PresetMediumPicture.webp";
|
|
|
|
[Required]
|
|
public string PresetLargePicture { get; set; } = "PresetLargePicture.webp";
|
|
|
|
[Required]
|
|
public string OriginalAudiosFolder { get; set; } = "OriginalAudios";
|
|
|
|
[Required]
|
|
public string ProcessedAudiosFolder { get; set; } = "ProcessedAudios";
|
|
|
|
public string PresetSmallPicturePath => StorageKey.Combine(ParentFolder, PresetSmallPicture);
|
|
|
|
public string PresetMediumPicturePath => StorageKey.Combine(ParentFolder, PresetMediumPicture);
|
|
|
|
public string PresetLargePicturePath => StorageKey.Combine(ParentFolder, PresetLargePicture);
|
|
|
|
public string BuildOriginalAudioPath(long userId, string audioName) =>
|
|
StorageKey.Combine(UploadsFolder, userId.ToString(CultureInfo.InvariantCulture), ParentFolder, OriginalAudiosFolder, audioName);
|
|
|
|
public string BuildProcessedAudioPath(string folderName) =>
|
|
StorageKey.Combine(ParentFolder, ProcessedAudiosFolder, folderName);
|
|
}
|
|
}
|