diff --git a/Application/Application.csproj b/Application/Application.csproj
index cde91d6..0a86904 100644
--- a/Application/Application.csproj
+++ b/Application/Application.csproj
@@ -24,4 +24,8 @@
+
+
+
+
diff --git a/Application/Configuration/ConfigurationDependencyInjection.cs b/Application/Configuration/ConfigurationDependencyInjection.cs
index be5b37d..b82a141 100644
--- a/Application/Configuration/ConfigurationDependencyInjection.cs
+++ b/Application/Configuration/ConfigurationDependencyInjection.cs
@@ -10,7 +10,8 @@ namespace Musify.Application.Configuration
{
serviceDescriptors
.AddValidatedConfiguration(configuration, ApplicationStorageConfiguration.SectionName)
- .AddValidatedConfiguration(configuration, PlayListConfiguration.SectionName);
+ .AddValidatedConfiguration(configuration, PlayListConfiguration.SectionName)
+ .AddValidatedConfiguration(configuration, TrackConfiguration.SectionName);
return serviceDescriptors;
}
diff --git a/Application/Configuration/PlayListConfiguration.cs b/Application/Configuration/PlayListConfiguration.cs
index 18707cd..4effc04 100644
--- a/Application/Configuration/PlayListConfiguration.cs
+++ b/Application/Configuration/PlayListConfiguration.cs
@@ -7,14 +7,17 @@ namespace Musify.Application.Configuration
public const string SectionName = "PlayListConfiguration";
[Required]
- public Routes Routes { get; set; } = new Routes();
+ public PlayListRoutes Routes { get; set; } = new PlayListRoutes();
[Required]
- public PicturesSizes PicturesSizes { get; set; } = new PicturesSizes();
+ public PlayListPicturesSizes PicturesSizes { get; set; } = new PlayListPicturesSizes();
}
- public class Routes
+ public class PlayListRoutes
{
+ [Required]
+ public string ParentFolders { get; set; } = "PlayLists";
+
[Required]
public string OriginalPictures { get; set; } = "OriginalPictures";
@@ -37,7 +40,7 @@ namespace Musify.Application.Configuration
public string PresetLargePicture { get; set; } = "PresetLargePicture.webp";
}
- public class PicturesSizes
+ public class PlayListPicturesSizes
{
[Range(1, 1024)]
public int SmallPictureWidth { get; set; } = 128;
diff --git a/Application/Configuration/TrackConfiguration.cs b/Application/Configuration/TrackConfiguration.cs
new file mode 100644
index 0000000..298a66a
--- /dev/null
+++ b/Application/Configuration/TrackConfiguration.cs
@@ -0,0 +1,63 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Musify.Application.Configuration
+{
+ public class TrackConfiguration
+ {
+ public const string SectionName = "TrackConfiguration";
+
+ [Required]
+ public TrackRoutes Routes { get; set; } = new TrackRoutes();
+
+ [Required]
+ public TrackPicturesSizes PicturesSizes { get; set; } = new TrackPicturesSizes();
+ }
+
+ public class TrackRoutes
+ {
+ [Required]
+ public string ParentFolder { get; set; } = "Tracks";
+
+ [Required]
+ public string OriginalPictures { get; set; } = "OriginalTracks";
+
+ [Required]
+ public string SmallPictures { get; set; } = "SmallTracks";
+
+ [Required]
+ public string MediumPictures { get; set; } = "MediumTracks";
+
+ [Required]
+ public string LargePictures { get; set; } = "LargeTracks";
+
+ [Required]
+ public string PresetSmallPicture { get; set; } = "PresetSmallPicture.webp";
+
+ [Required]
+ public string PresetMediumPicture { get; set; } = "PresetMediumPicture.webp";
+
+ [Required]
+ public string PresetLargePicture { get; set; } = "PresetLargePicture.webp";
+ }
+
+ public class TrackPicturesSizes
+ {
+ [Range(1, 1024)]
+ public int SmallPictureWidth { get; set; } = 128;
+
+ [Range(1, 1024)]
+ public int SmallPictureHeight { get; set; } = 128;
+
+ [Range(1, 1024)]
+ public int MediumPictureWidth { get; private set; } = 256;
+
+ [Range(1, 1024)]
+ public int MediumPictureHeight { get; private set; } = 256;
+
+ [Range(1, 1024)]
+ public int LargePictureWidth { get; private set; } = 512;
+
+ [Range(1, 1024)]
+ public int LargePictureHeight { get; private set; } = 512;
+ }
+}
\ No newline at end of file
diff --git a/Application/Contracts/Infrastructure/IDatabase.cs b/Application/Contracts/Infrastructure/IDatabase.cs
index ab56211..9f49cf4 100644
--- a/Application/Contracts/Infrastructure/IDatabase.cs
+++ b/Application/Contracts/Infrastructure/IDatabase.cs
@@ -11,6 +11,8 @@ namespace Musify.Application.Contracts.Infrastructure
DbSet