From b16bcfc6cd9e3691006b19ddbb3e9ebddd61771c Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Sun, 7 Sep 2025 12:56:52 -0400 Subject: [PATCH] Backend Services Split into separate projects for reference from other front ends --- .claude/settings.local.json | 3 +- .../Constants/VaultConstants.cs | 2 +- .../DeepDrftContent.Services.csproj | 13 +++++++++ .../Abstractions/IIndexFactory.cs | 6 ++-- .../Abstractions/IMediaTypeRegistry.cs | 6 ++-- .../FileDatabase/Models/IIndex.cs | 2 +- .../FileDatabase/Models/IndexData.cs | 4 +-- .../FileDatabase/Models/MediaFactories.cs | 6 ++-- .../FileDatabase/Models/MediaModels.cs | 2 +- .../FileDatabase/Models/MediaVaultType.cs | 2 +- .../FileDatabase/Models/MetaData.cs | 2 +- .../FileDatabase/README.md | 0 .../FileDatabase/Services/FileDatabase.cs | 8 +++--- .../Services/IndexFactoryService.cs | 10 +++---- .../FileDatabase/Services/IndexSystem.cs | 8 +++--- .../FileDatabase/Services/MediaVault.cs | 6 ++-- .../Services/MediaVaultFactory.cs | 6 ++-- .../Services/SimpleMediaTypeRegistry.cs | 6 ++-- .../FileDatabase/Utils/FileUtils.cs | 4 +-- .../FileDatabase/Utils/StructuralMap.cs | 2 +- .../FileDatabase/Utils/StructuralSet.cs | 2 +- .../Processors/AudioProcessor.cs | 4 +-- .../TrackService.cs | 14 +++++----- .../Controllers/TrackController.cs | 8 +++--- DeepDrftContent/DeepDrftContent.csproj | 1 + DeepDrftContent/Program.cs | 2 +- DeepDrftContent/Startup.cs | 10 +++---- DeepDrftHome.sln | 28 +++++++++++++++++++ DeepDrftTests/DeepDrftTests.csproj | 2 +- DeepDrftTests/FileDatabaseTests.cs | 4 +-- DeepDrftTests/IndexSystemTests.cs | 8 +++--- DeepDrftTests/MediaVaultFactoryTests.cs | 4 +-- DeepDrftTests/MediaVaultTests.cs | 6 ++-- DeepDrftTests/ModelTests.cs | 2 +- DeepDrftTests/SimpleMediaTypeRegistryTests.cs | 4 +-- DeepDrftTests/TestData.cs | 2 +- DeepDrftTests/UtilityTests.cs | 4 +-- .../Data/Configurations/TrackConfiguration.cs | 2 +- .../Data/DeepDrftContext.cs | 4 +-- .../DeepDrftWeb.Services.csproj | 18 ++++++++++++ .../Repositories/TrackRepository.cs | 3 +- .../TrackService.cs | 4 +-- DeepDrftWeb/Data/DeepDrftContextFactory.cs | 24 ---------------- DeepDrftWeb/DeepDrftWeb.csproj | 1 + .../20250904233927_Initial.Designer.cs | 2 +- .../DeepDrftContextModelSnapshot.cs | 2 +- DeepDrftWeb/Startup.cs | 4 +-- 47 files changed, 153 insertions(+), 114 deletions(-) rename {DeepDrftContent => DeepDrftContent.Services}/Constants/VaultConstants.cs (83%) create mode 100644 DeepDrftContent.Services/DeepDrftContent.Services.csproj rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Abstractions/IIndexFactory.cs (88%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Abstractions/IMediaTypeRegistry.cs (93%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Models/IIndex.cs (96%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Models/IndexData.cs (97%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Models/MediaFactories.cs (96%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Models/MediaModels.cs (99%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Models/MediaVaultType.cs (72%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Models/MetaData.cs (96%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/README.md (100%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Services/FileDatabase.cs (95%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Services/IndexFactoryService.cs (93%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Services/IndexSystem.cs (92%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Services/MediaVault.cs (96%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Services/MediaVaultFactory.cs (68%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Services/SimpleMediaTypeRegistry.cs (98%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Utils/FileUtils.cs (97%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Utils/StructuralMap.cs (98%) rename {DeepDrftContent => DeepDrftContent.Services}/FileDatabase/Utils/StructuralSet.cs (98%) rename {DeepDrftContent => DeepDrftContent.Services}/Processors/AudioProcessor.cs (98%) rename {DeepDrftContent/Services => DeepDrftContent.Services}/TrackService.cs (87%) rename {DeepDrftWeb => DeepDrftWeb.Services}/Data/Configurations/TrackConfiguration.cs (96%) rename {DeepDrftWeb => DeepDrftWeb.Services}/Data/DeepDrftContext.cs (84%) create mode 100644 DeepDrftWeb.Services/DeepDrftWeb.Services.csproj rename {DeepDrftWeb/Data => DeepDrftWeb.Services}/Repositories/TrackRepository.cs (96%) rename {DeepDrftWeb/Services => DeepDrftWeb.Services}/TrackService.cs (98%) delete mode 100644 DeepDrftWeb/Data/DeepDrftContextFactory.cs diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 8425170..7e48cac 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -44,7 +44,8 @@ "Read(/F:\\Development\\DeepDrftHome\\DeepDrftModels\\DTOs/**)", "Read(/F:\\Development\\DeepDrftHome\\DeepDrftTests/**)", "Read(/F:\\Development\\DeepDrftHome\\DeepDrftTests/**)", - "Read(/F:\\Development\\DeepDrftHome\\DeepDrftTests/**)" + "Read(/F:\\Development\\DeepDrftHome\\DeepDrftTests/**)", + "Read(//f/Development/NetBlocks/**)" ], "deny": [], "ask": [] diff --git a/DeepDrftContent/Constants/VaultConstants.cs b/DeepDrftContent.Services/Constants/VaultConstants.cs similarity index 83% rename from DeepDrftContent/Constants/VaultConstants.cs rename to DeepDrftContent.Services/Constants/VaultConstants.cs index efd7596..83a6daf 100644 --- a/DeepDrftContent/Constants/VaultConstants.cs +++ b/DeepDrftContent.Services/Constants/VaultConstants.cs @@ -1,4 +1,4 @@ -namespace DeepDrftContent.Constants; +namespace DeepDrftContent.Services.Constants; /// /// Constants for FileDatabase vault names diff --git a/DeepDrftContent.Services/DeepDrftContent.Services.csproj b/DeepDrftContent.Services/DeepDrftContent.Services.csproj new file mode 100644 index 0000000..187de63 --- /dev/null +++ b/DeepDrftContent.Services/DeepDrftContent.Services.csproj @@ -0,0 +1,13 @@ + + + + net9.0 + enable + enable + + + + + + + diff --git a/DeepDrftContent/FileDatabase/Abstractions/IIndexFactory.cs b/DeepDrftContent.Services/FileDatabase/Abstractions/IIndexFactory.cs similarity index 88% rename from DeepDrftContent/FileDatabase/Abstractions/IIndexFactory.cs rename to DeepDrftContent.Services/FileDatabase/Abstractions/IIndexFactory.cs index 4d9ac57..8dc59a2 100644 --- a/DeepDrftContent/FileDatabase/Abstractions/IIndexFactory.cs +++ b/DeepDrftContent.Services/FileDatabase/Abstractions/IIndexFactory.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Models; -using IndexType = DeepDrftContent.FileDatabase.Services.IndexType; +using DeepDrftContent.Services.FileDatabase.Models; +using IndexType = DeepDrftContent.Services.FileDatabase.Services.IndexType; -namespace DeepDrftContent.FileDatabase.Abstractions; +namespace DeepDrftContent.Services.FileDatabase.Abstractions; /// /// Interface for creating index instances diff --git a/DeepDrftContent/FileDatabase/Abstractions/IMediaTypeRegistry.cs b/DeepDrftContent.Services/FileDatabase/Abstractions/IMediaTypeRegistry.cs similarity index 93% rename from DeepDrftContent/FileDatabase/Abstractions/IMediaTypeRegistry.cs rename to DeepDrftContent.Services/FileDatabase/Abstractions/IMediaTypeRegistry.cs index c7b9033..f7803bc 100644 --- a/DeepDrftContent/FileDatabase/Abstractions/IMediaTypeRegistry.cs +++ b/DeepDrftContent.Services/FileDatabase/Abstractions/IMediaTypeRegistry.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; -namespace DeepDrftContent.FileDatabase.Abstractions; +namespace DeepDrftContent.Services.FileDatabase.Abstractions; /// /// Interface for registering media type factories diff --git a/DeepDrftContent/FileDatabase/Models/IIndex.cs b/DeepDrftContent.Services/FileDatabase/Models/IIndex.cs similarity index 96% rename from DeepDrftContent/FileDatabase/Models/IIndex.cs rename to DeepDrftContent.Services/FileDatabase/Models/IIndex.cs index fe3bc57..2deddec 100644 --- a/DeepDrftContent/FileDatabase/Models/IIndex.cs +++ b/DeepDrftContent.Services/FileDatabase/Models/IIndex.cs @@ -1,4 +1,4 @@ -namespace DeepDrftContent.FileDatabase.Models; +namespace DeepDrftContent.Services.FileDatabase.Models; /// /// Base interface for all index types - minimal contract diff --git a/DeepDrftContent/FileDatabase/Models/IndexData.cs b/DeepDrftContent.Services/FileDatabase/Models/IndexData.cs similarity index 97% rename from DeepDrftContent/FileDatabase/Models/IndexData.cs rename to DeepDrftContent.Services/FileDatabase/Models/IndexData.cs index a2fd92a..8183c1e 100644 --- a/DeepDrftContent/FileDatabase/Models/IndexData.cs +++ b/DeepDrftContent.Services/FileDatabase/Models/IndexData.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Utils; +using DeepDrftContent.Services.FileDatabase.Utils; using System.Text.Json.Serialization; -namespace DeepDrftContent.FileDatabase.Models; +namespace DeepDrftContent.Services.FileDatabase.Models; /// /// Base class for index data used in serialization diff --git a/DeepDrftContent/FileDatabase/Models/MediaFactories.cs b/DeepDrftContent.Services/FileDatabase/Models/MediaFactories.cs similarity index 96% rename from DeepDrftContent/FileDatabase/Models/MediaFactories.cs rename to DeepDrftContent.Services/FileDatabase/Models/MediaFactories.cs index ac51a8f..e277f79 100644 --- a/DeepDrftContent/FileDatabase/Models/MediaFactories.cs +++ b/DeepDrftContent.Services/FileDatabase/Models/MediaFactories.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Abstractions; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Abstractions; +using DeepDrftContent.Services.FileDatabase.Services; -namespace DeepDrftContent.FileDatabase.Models; +namespace DeepDrftContent.Services.FileDatabase.Models; /// /// Type mappings for media vault types - simple dictionary-based approach diff --git a/DeepDrftContent/FileDatabase/Models/MediaModels.cs b/DeepDrftContent.Services/FileDatabase/Models/MediaModels.cs similarity index 99% rename from DeepDrftContent/FileDatabase/Models/MediaModels.cs rename to DeepDrftContent.Services/FileDatabase/Models/MediaModels.cs index 6bb0ecf..6a096b5 100644 --- a/DeepDrftContent/FileDatabase/Models/MediaModels.cs +++ b/DeepDrftContent.Services/FileDatabase/Models/MediaModels.cs @@ -1,4 +1,4 @@ -namespace DeepDrftContent.FileDatabase.Models; +namespace DeepDrftContent.Services.FileDatabase.Models; /// /// Parameters for creating a FileBinary diff --git a/DeepDrftContent/FileDatabase/Models/MediaVaultType.cs b/DeepDrftContent.Services/FileDatabase/Models/MediaVaultType.cs similarity index 72% rename from DeepDrftContent/FileDatabase/Models/MediaVaultType.cs rename to DeepDrftContent.Services/FileDatabase/Models/MediaVaultType.cs index a5f979a..ba60bd9 100644 --- a/DeepDrftContent/FileDatabase/Models/MediaVaultType.cs +++ b/DeepDrftContent.Services/FileDatabase/Models/MediaVaultType.cs @@ -1,4 +1,4 @@ -namespace DeepDrftContent.FileDatabase.Models; +namespace DeepDrftContent.Services.FileDatabase.Models; /// /// Enum representing different types of media vaults diff --git a/DeepDrftContent/FileDatabase/Models/MetaData.cs b/DeepDrftContent.Services/FileDatabase/Models/MetaData.cs similarity index 96% rename from DeepDrftContent/FileDatabase/Models/MetaData.cs rename to DeepDrftContent.Services/FileDatabase/Models/MetaData.cs index 9f8225c..ac9a837 100644 --- a/DeepDrftContent/FileDatabase/Models/MetaData.cs +++ b/DeepDrftContent.Services/FileDatabase/Models/MetaData.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace DeepDrftContent.FileDatabase.Models; +namespace DeepDrftContent.Services.FileDatabase.Models; /// /// Base metadata for media entries diff --git a/DeepDrftContent/FileDatabase/README.md b/DeepDrftContent.Services/FileDatabase/README.md similarity index 100% rename from DeepDrftContent/FileDatabase/README.md rename to DeepDrftContent.Services/FileDatabase/README.md diff --git a/DeepDrftContent/FileDatabase/Services/FileDatabase.cs b/DeepDrftContent.Services/FileDatabase/Services/FileDatabase.cs similarity index 95% rename from DeepDrftContent/FileDatabase/Services/FileDatabase.cs rename to DeepDrftContent.Services/FileDatabase/Services/FileDatabase.cs index 4146967..a429cac 100644 --- a/DeepDrftContent/FileDatabase/Services/FileDatabase.cs +++ b/DeepDrftContent.Services/FileDatabase/Services/FileDatabase.cs @@ -1,8 +1,8 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Utils; -using IndexType = DeepDrftContent.FileDatabase.Services.IndexType; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Utils; +using IndexType = DeepDrftContent.Services.FileDatabase.Services.IndexType; -namespace DeepDrftContent.FileDatabase.Services; +namespace DeepDrftContent.Services.FileDatabase.Services; /// /// Main file database class that orchestrates multiple media vaults diff --git a/DeepDrftContent/FileDatabase/Services/IndexFactoryService.cs b/DeepDrftContent.Services/FileDatabase/Services/IndexFactoryService.cs similarity index 93% rename from DeepDrftContent/FileDatabase/Services/IndexFactoryService.cs rename to DeepDrftContent.Services/FileDatabase/Services/IndexFactoryService.cs index 9e16bb7..9b88f1b 100644 --- a/DeepDrftContent/FileDatabase/Services/IndexFactoryService.cs +++ b/DeepDrftContent.Services/FileDatabase/Services/IndexFactoryService.cs @@ -1,9 +1,9 @@ -using DeepDrftContent.FileDatabase.Abstractions; -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Utils; -using IndexType = DeepDrftContent.FileDatabase.Services.IndexType; +using DeepDrftContent.Services.FileDatabase.Abstractions; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Utils; +using IndexType = DeepDrftContent.Services.FileDatabase.Services.IndexType; -namespace DeepDrftContent.FileDatabase.Services; +namespace DeepDrftContent.Services.FileDatabase.Services; /// /// Factory service for creating and managing indexes diff --git a/DeepDrftContent/FileDatabase/Services/IndexSystem.cs b/DeepDrftContent.Services/FileDatabase/Services/IndexSystem.cs similarity index 92% rename from DeepDrftContent/FileDatabase/Services/IndexSystem.cs rename to DeepDrftContent.Services/FileDatabase/Services/IndexSystem.cs index 43b2ad7..56ccd3d 100644 --- a/DeepDrftContent/FileDatabase/Services/IndexSystem.cs +++ b/DeepDrftContent.Services/FileDatabase/Services/IndexSystem.cs @@ -1,8 +1,8 @@ -using DeepDrftContent.FileDatabase.Abstractions; -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Utils; +using DeepDrftContent.Services.FileDatabase.Abstractions; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Utils; -namespace DeepDrftContent.FileDatabase.Services; +namespace DeepDrftContent.Services.FileDatabase.Services; /// /// Enum representing different types of indexes diff --git a/DeepDrftContent/FileDatabase/Services/MediaVault.cs b/DeepDrftContent.Services/FileDatabase/Services/MediaVault.cs similarity index 96% rename from DeepDrftContent/FileDatabase/Services/MediaVault.cs rename to DeepDrftContent.Services/FileDatabase/Services/MediaVault.cs index abbdbaa..059be78 100644 --- a/DeepDrftContent/FileDatabase/Services/MediaVault.cs +++ b/DeepDrftContent.Services/FileDatabase/Services/MediaVault.cs @@ -1,8 +1,8 @@ using System.Text.RegularExpressions; -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Utils; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Utils; -namespace DeepDrftContent.FileDatabase.Services; +namespace DeepDrftContent.Services.FileDatabase.Services; /// /// Abstract base class for media vaults that store and manage media files diff --git a/DeepDrftContent/FileDatabase/Services/MediaVaultFactory.cs b/DeepDrftContent.Services/FileDatabase/Services/MediaVaultFactory.cs similarity index 68% rename from DeepDrftContent/FileDatabase/Services/MediaVaultFactory.cs rename to DeepDrftContent.Services/FileDatabase/Services/MediaVaultFactory.cs index 68c9d78..63d53d1 100644 --- a/DeepDrftContent/FileDatabase/Services/MediaVaultFactory.cs +++ b/DeepDrftContent.Services/FileDatabase/Services/MediaVaultFactory.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Abstractions; -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Abstractions; +using DeepDrftContent.Services.FileDatabase.Models; -namespace DeepDrftContent.FileDatabase.Services; +namespace DeepDrftContent.Services.FileDatabase.Services; /// /// Factory for creating media vaults diff --git a/DeepDrftContent/FileDatabase/Services/SimpleMediaTypeRegistry.cs b/DeepDrftContent.Services/FileDatabase/Services/SimpleMediaTypeRegistry.cs similarity index 98% rename from DeepDrftContent/FileDatabase/Services/SimpleMediaTypeRegistry.cs rename to DeepDrftContent.Services/FileDatabase/Services/SimpleMediaTypeRegistry.cs index 585592f..986cdfd 100644 --- a/DeepDrftContent/FileDatabase/Services/SimpleMediaTypeRegistry.cs +++ b/DeepDrftContent.Services/FileDatabase/Services/SimpleMediaTypeRegistry.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Abstractions; -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Abstractions; +using DeepDrftContent.Services.FileDatabase.Models; -namespace DeepDrftContent.FileDatabase.Services; +namespace DeepDrftContent.Services.FileDatabase.Services; /// /// Simple dictionary-based registry for media type factories diff --git a/DeepDrftContent/FileDatabase/Utils/FileUtils.cs b/DeepDrftContent.Services/FileDatabase/Utils/FileUtils.cs similarity index 97% rename from DeepDrftContent/FileDatabase/Utils/FileUtils.cs rename to DeepDrftContent.Services/FileDatabase/Utils/FileUtils.cs index dbbe6ce..637478a 100644 --- a/DeepDrftContent/FileDatabase/Utils/FileUtils.cs +++ b/DeepDrftContent.Services/FileDatabase/Utils/FileUtils.cs @@ -1,7 +1,7 @@ using System.Text.Json; -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Models; -namespace DeepDrftContent.FileDatabase.Utils; +namespace DeepDrftContent.Services.FileDatabase.Utils; /// /// Utility class for file I/O operations, matching the TypeScript file utilities diff --git a/DeepDrftContent/FileDatabase/Utils/StructuralMap.cs b/DeepDrftContent.Services/FileDatabase/Utils/StructuralMap.cs similarity index 98% rename from DeepDrftContent/FileDatabase/Utils/StructuralMap.cs rename to DeepDrftContent.Services/FileDatabase/Utils/StructuralMap.cs index 3e0ec90..cde98b4 100644 --- a/DeepDrftContent/FileDatabase/Utils/StructuralMap.cs +++ b/DeepDrftContent.Services/FileDatabase/Utils/StructuralMap.cs @@ -1,7 +1,7 @@ using System.Collections; using System.Text.Json; -namespace DeepDrftContent.FileDatabase.Utils; +namespace DeepDrftContent.Services.FileDatabase.Utils; /// /// A map implementation that uses structural equality for keys by serializing them to JSON. diff --git a/DeepDrftContent/FileDatabase/Utils/StructuralSet.cs b/DeepDrftContent.Services/FileDatabase/Utils/StructuralSet.cs similarity index 98% rename from DeepDrftContent/FileDatabase/Utils/StructuralSet.cs rename to DeepDrftContent.Services/FileDatabase/Utils/StructuralSet.cs index 36a8751..6592c20 100644 --- a/DeepDrftContent/FileDatabase/Utils/StructuralSet.cs +++ b/DeepDrftContent.Services/FileDatabase/Utils/StructuralSet.cs @@ -1,7 +1,7 @@ using System.Collections; using System.Text.Json; -namespace DeepDrftContent.FileDatabase.Utils; +namespace DeepDrftContent.Services.FileDatabase.Utils; /// /// A set implementation that uses structural equality for values by serializing them to JSON. diff --git a/DeepDrftContent/Processors/AudioProcessor.cs b/DeepDrftContent.Services/Processors/AudioProcessor.cs similarity index 98% rename from DeepDrftContent/Processors/AudioProcessor.cs rename to DeepDrftContent.Services/Processors/AudioProcessor.cs index a9f77d2..ba22e46 100644 --- a/DeepDrftContent/Processors/AudioProcessor.cs +++ b/DeepDrftContent.Services/Processors/AudioProcessor.cs @@ -1,6 +1,6 @@ -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Models; -namespace DeepDrftContent.Processors; +namespace DeepDrftContent.Services.Processors; /// /// Service for processing audio files and extracting metadata diff --git a/DeepDrftContent/Services/TrackService.cs b/DeepDrftContent.Services/TrackService.cs similarity index 87% rename from DeepDrftContent/Services/TrackService.cs rename to DeepDrftContent.Services/TrackService.cs index 34dbde9..f6d5794 100644 --- a/DeepDrftContent/Services/TrackService.cs +++ b/DeepDrftContent.Services/TrackService.cs @@ -1,6 +1,6 @@ -using DeepDrftContent.Constants; -using DeepDrftContent.FileDatabase.Services; -using DeepDrftContent.Processors; +using DeepDrftContent.Services.Constants; +using DeepDrftContent.Services.FileDatabase.Services; +using DeepDrftContent.Services.Processors; using DeepDrftModels.Entities; namespace DeepDrftContent.Services; @@ -52,7 +52,7 @@ public class TrackService // Ensure tracks vault exists if (!_fileDatabase.HasVault(VaultConstants.Tracks)) { - await _fileDatabase.CreateVaultAsync(VaultConstants.Tracks, DeepDrftContent.FileDatabase.Models.MediaVaultType.Audio); + await _fileDatabase.CreateVaultAsync(VaultConstants.Tracks, DeepDrftContent.Services.FileDatabase.Models.MediaVaultType.Audio); } // Store the audio in FileDatabase @@ -86,9 +86,9 @@ public class TrackService /// /// Track ID (EntryKey) /// Audio binary or null if not found - public async Task GetAudioBinaryAsync(string trackId) + public async Task GetAudioBinaryAsync(string trackId) { - return await _fileDatabase.LoadResourceAsync(VaultConstants.Tracks, trackId); + return await _fileDatabase.LoadResourceAsync(VaultConstants.Tracks, trackId); } /// @@ -106,7 +106,7 @@ public class TrackService { if (!_fileDatabase.HasVault(VaultConstants.Tracks)) { - await _fileDatabase.CreateVaultAsync(VaultConstants.Tracks, DeepDrftContent.FileDatabase.Models.MediaVaultType.Audio); + await _fileDatabase.CreateVaultAsync(VaultConstants.Tracks, DeepDrftContent.Services.FileDatabase.Models.MediaVaultType.Audio); } } } \ No newline at end of file diff --git a/DeepDrftContent/Controllers/TrackController.cs b/DeepDrftContent/Controllers/TrackController.cs index 33e1ed3..2bbfbad 100644 --- a/DeepDrftContent/Controllers/TrackController.cs +++ b/DeepDrftContent/Controllers/TrackController.cs @@ -1,5 +1,5 @@ -using DeepDrftContent.Constants; -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.Constants; +using DeepDrftContent.Services.FileDatabase.Models; using DeepDrftContent.Middleware; using Microsoft.AspNetCore.Mvc; @@ -9,9 +9,9 @@ namespace DeepDrftContent.Controllers; [Route("api/[controller]")] public class TrackController : ControllerBase { - private readonly FileDatabase.Services.FileDatabase _fileDatabase; + private readonly DeepDrftContent.Services.FileDatabase.Services.FileDatabase _fileDatabase; - public TrackController(FileDatabase.Services.FileDatabase fileDatabase) + public TrackController(DeepDrftContent.Services.FileDatabase.Services.FileDatabase fileDatabase) { _fileDatabase = fileDatabase; } diff --git a/DeepDrftContent/DeepDrftContent.csproj b/DeepDrftContent/DeepDrftContent.csproj index 955a932..e24ad01 100644 --- a/DeepDrftContent/DeepDrftContent.csproj +++ b/DeepDrftContent/DeepDrftContent.csproj @@ -12,6 +12,7 @@ + diff --git a/DeepDrftContent/Program.cs b/DeepDrftContent/Program.cs index 15de146..b4ef3ed 100644 --- a/DeepDrftContent/Program.cs +++ b/DeepDrftContent/Program.cs @@ -1,5 +1,5 @@ using DeepDrftContent; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Services; using DeepDrftContent.Middleware; using DeepDrftContent.Models; using Microsoft.AspNetCore.HttpOverrides; diff --git a/DeepDrftContent/Startup.cs b/DeepDrftContent/Startup.cs index 9ce8121..6c1be81 100644 --- a/DeepDrftContent/Startup.cs +++ b/DeepDrftContent/Startup.cs @@ -1,6 +1,6 @@ -using DeepDrftContent.Constants; -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.Constants; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; using DeepDrftContent.Models; namespace DeepDrftContent @@ -14,13 +14,13 @@ namespace DeepDrftContent var fileDatabaseSettings = builder.Configuration.GetSection(nameof(FileDatabaseSettings)).Get(); if (fileDatabaseSettings is null) { throw new Exception("File database settings are not configured"); } - var fileDatabase = await FileDatabase.Services.FileDatabase.FromAsync(fileDatabaseSettings.VaultPath); + var fileDatabase = await FileDatabase.FromAsync(fileDatabaseSettings.VaultPath); if (fileDatabase is null) { throw new Exception("Unable to initialize file database"); } builder.Services.AddSingleton(fileDatabase); await InitializeTrackVault(fileDatabase); } - private static async Task InitializeTrackVault(FileDatabase.Services.FileDatabase fileDatabase) + private static async Task InitializeTrackVault(FileDatabase fileDatabase) { if (!fileDatabase.HasVault(VaultConstants.Tracks)) { diff --git a/DeepDrftHome.sln b/DeepDrftHome.sln index ab7cc36..e737e9d 100644 --- a/DeepDrftHome.sln +++ b/DeepDrftHome.sln @@ -14,6 +14,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeepDrftTests", "DeepDrftTe EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeepDrftCli", "DeepDrftCli\DeepDrftCli.csproj", "{E4C0ADD6-1264-47A5-98E1-0843AD14B7F9}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeepDrftWeb.Services", "DeepDrftWeb.Services\DeepDrftWeb.Services.csproj", "{1D1CE905-DAD0-4E93-9B09-326E8EC05877}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeepDrftContent.Services", "DeepDrftContent.Services\DeepDrftContent.Services.csproj", "{4D025326-7F27-4C42-BE0F-92C1E64E0696}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -108,6 +112,30 @@ Global {E4C0ADD6-1264-47A5-98E1-0843AD14B7F9}.Release|x64.Build.0 = Release|Any CPU {E4C0ADD6-1264-47A5-98E1-0843AD14B7F9}.Release|x86.ActiveCfg = Release|Any CPU {E4C0ADD6-1264-47A5-98E1-0843AD14B7F9}.Release|x86.Build.0 = Release|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Debug|x64.ActiveCfg = Debug|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Debug|x64.Build.0 = Debug|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Debug|x86.Build.0 = Debug|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Release|Any CPU.Build.0 = Release|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Release|x64.ActiveCfg = Release|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Release|x64.Build.0 = Release|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Release|x86.ActiveCfg = Release|Any CPU + {1D1CE905-DAD0-4E93-9B09-326E8EC05877}.Release|x86.Build.0 = Release|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Debug|x64.ActiveCfg = Debug|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Debug|x64.Build.0 = Debug|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Debug|x86.ActiveCfg = Debug|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Debug|x86.Build.0 = Debug|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Release|Any CPU.Build.0 = Release|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Release|x64.ActiveCfg = Release|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Release|x64.Build.0 = Release|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Release|x86.ActiveCfg = Release|Any CPU + {4D025326-7F27-4C42-BE0F-92C1E64E0696}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/DeepDrftTests/DeepDrftTests.csproj b/DeepDrftTests/DeepDrftTests.csproj index e007d13..66756b5 100644 --- a/DeepDrftTests/DeepDrftTests.csproj +++ b/DeepDrftTests/DeepDrftTests.csproj @@ -21,7 +21,7 @@ - + diff --git a/DeepDrftTests/FileDatabaseTests.cs b/DeepDrftTests/FileDatabaseTests.cs index d753e44..9f27315 100644 --- a/DeepDrftTests/FileDatabaseTests.cs +++ b/DeepDrftTests/FileDatabaseTests.cs @@ -1,5 +1,5 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; namespace DeepDrftTests; diff --git a/DeepDrftTests/IndexSystemTests.cs b/DeepDrftTests/IndexSystemTests.cs index 9ed8d1c..0449e12 100644 --- a/DeepDrftTests/IndexSystemTests.cs +++ b/DeepDrftTests/IndexSystemTests.cs @@ -1,7 +1,7 @@ -using DeepDrftContent.FileDatabase.Abstractions; -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; -using DeepDrftContent.FileDatabase.Utils; +using DeepDrftContent.Services.FileDatabase.Abstractions; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Utils; namespace DeepDrftTests; diff --git a/DeepDrftTests/MediaVaultFactoryTests.cs b/DeepDrftTests/MediaVaultFactoryTests.cs index f720fe6..b743620 100644 --- a/DeepDrftTests/MediaVaultFactoryTests.cs +++ b/DeepDrftTests/MediaVaultFactoryTests.cs @@ -1,5 +1,5 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; namespace DeepDrftTests; diff --git a/DeepDrftTests/MediaVaultTests.cs b/DeepDrftTests/MediaVaultTests.cs index 331ac1f..f9051bb 100644 --- a/DeepDrftTests/MediaVaultTests.cs +++ b/DeepDrftTests/MediaVaultTests.cs @@ -1,6 +1,6 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; -using DeepDrftContent.FileDatabase.Utils; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Utils; namespace DeepDrftTests; diff --git a/DeepDrftTests/ModelTests.cs b/DeepDrftTests/ModelTests.cs index 5afd8da..1fb7710 100644 --- a/DeepDrftTests/ModelTests.cs +++ b/DeepDrftTests/ModelTests.cs @@ -1,4 +1,4 @@ -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Models; namespace DeepDrftTests; diff --git a/DeepDrftTests/SimpleMediaTypeRegistryTests.cs b/DeepDrftTests/SimpleMediaTypeRegistryTests.cs index 1177464..62849d3 100644 --- a/DeepDrftTests/SimpleMediaTypeRegistryTests.cs +++ b/DeepDrftTests/SimpleMediaTypeRegistryTests.cs @@ -1,5 +1,5 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Services; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Services; namespace DeepDrftTests; diff --git a/DeepDrftTests/TestData.cs b/DeepDrftTests/TestData.cs index 3bc37bd..2464862 100644 --- a/DeepDrftTests/TestData.cs +++ b/DeepDrftTests/TestData.cs @@ -1,4 +1,4 @@ -using DeepDrftContent.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Models; namespace DeepDrftTests; diff --git a/DeepDrftTests/UtilityTests.cs b/DeepDrftTests/UtilityTests.cs index 65511f1..876e4ef 100644 --- a/DeepDrftTests/UtilityTests.cs +++ b/DeepDrftTests/UtilityTests.cs @@ -1,5 +1,5 @@ -using DeepDrftContent.FileDatabase.Models; -using DeepDrftContent.FileDatabase.Utils; +using DeepDrftContent.Services.FileDatabase.Models; +using DeepDrftContent.Services.FileDatabase.Utils; namespace DeepDrftTests; diff --git a/DeepDrftWeb/Data/Configurations/TrackConfiguration.cs b/DeepDrftWeb.Services/Data/Configurations/TrackConfiguration.cs similarity index 96% rename from DeepDrftWeb/Data/Configurations/TrackConfiguration.cs rename to DeepDrftWeb.Services/Data/Configurations/TrackConfiguration.cs index 13f3c81..03e920d 100644 --- a/DeepDrftWeb/Data/Configurations/TrackConfiguration.cs +++ b/DeepDrftWeb.Services/Data/Configurations/TrackConfiguration.cs @@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; -namespace DeepDrftWeb.Data.Configurations; +namespace DeepDrftWeb.Services.Data.Configurations; public class TrackConfiguration : IEntityTypeConfiguration { diff --git a/DeepDrftWeb/Data/DeepDrftContext.cs b/DeepDrftWeb.Services/Data/DeepDrftContext.cs similarity index 84% rename from DeepDrftWeb/Data/DeepDrftContext.cs rename to DeepDrftWeb.Services/Data/DeepDrftContext.cs index 0f40498..77017cb 100644 --- a/DeepDrftWeb/Data/DeepDrftContext.cs +++ b/DeepDrftWeb.Services/Data/DeepDrftContext.cs @@ -1,8 +1,8 @@ using DeepDrftModels.Entities; -using DeepDrftWeb.Data.Configurations; +using DeepDrftWeb.Services.Data.Configurations; using Microsoft.EntityFrameworkCore; -namespace DeepDrftWeb.Data; +namespace DeepDrftWeb.Services.Data; public class DeepDrftContext : DbContext { diff --git a/DeepDrftWeb.Services/DeepDrftWeb.Services.csproj b/DeepDrftWeb.Services/DeepDrftWeb.Services.csproj new file mode 100644 index 0000000..2fb360e --- /dev/null +++ b/DeepDrftWeb.Services/DeepDrftWeb.Services.csproj @@ -0,0 +1,18 @@ + + + + net9.0 + enable + enable + + + + + + + + + + + + diff --git a/DeepDrftWeb/Data/Repositories/TrackRepository.cs b/DeepDrftWeb.Services/Repositories/TrackRepository.cs similarity index 96% rename from DeepDrftWeb/Data/Repositories/TrackRepository.cs rename to DeepDrftWeb.Services/Repositories/TrackRepository.cs index 549e5bd..51fe378 100644 --- a/DeepDrftWeb/Data/Repositories/TrackRepository.cs +++ b/DeepDrftWeb.Services/Repositories/TrackRepository.cs @@ -1,8 +1,9 @@ using DeepDrftModels.Entities; using DeepDrftModels.Models; using Microsoft.EntityFrameworkCore; +using DeepDrftWeb.Services.Data; -namespace DeepDrftWeb.Data.Repositories; +namespace DeepDrftWeb.Services.Repositories; public class TrackRepository { diff --git a/DeepDrftWeb/Services/TrackService.cs b/DeepDrftWeb.Services/TrackService.cs similarity index 98% rename from DeepDrftWeb/Services/TrackService.cs rename to DeepDrftWeb.Services/TrackService.cs index 134dcf7..b2660d0 100644 --- a/DeepDrftWeb/Services/TrackService.cs +++ b/DeepDrftWeb.Services/TrackService.cs @@ -1,7 +1,7 @@ using DeepDrftModels.Entities; using DeepDrftModels.Models; -using DeepDrftWeb.Data; -using DeepDrftWeb.Data.Repositories; +using DeepDrftWeb.Services.Data; +using DeepDrftWeb.Services.Repositories; using NetBlocks.Models; namespace DeepDrftWeb.Services; diff --git a/DeepDrftWeb/Data/DeepDrftContextFactory.cs b/DeepDrftWeb/Data/DeepDrftContextFactory.cs deleted file mode 100644 index f60571b..0000000 --- a/DeepDrftWeb/Data/DeepDrftContextFactory.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Design; - -namespace DeepDrftWeb.Data; - -public static class DeepDrftContextFactory -{ - public class Factory : IDesignTimeDbContextFactory - { - public DeepDrftContext CreateDbContext(string[] args) - { - var configuration = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) - .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true) - .Build(); - - var optionsBuilder = new DbContextOptionsBuilder(); - optionsBuilder.UseSqlite(configuration.GetConnectionString("DefaultConnection")); - - return new DeepDrftContext(optionsBuilder.Options); - } - } -} \ No newline at end of file diff --git a/DeepDrftWeb/DeepDrftWeb.csproj b/DeepDrftWeb/DeepDrftWeb.csproj index e25e204..1f2023f 100644 --- a/DeepDrftWeb/DeepDrftWeb.csproj +++ b/DeepDrftWeb/DeepDrftWeb.csproj @@ -21,6 +21,7 @@ + diff --git a/DeepDrftWeb/Migrations/20250904233927_Initial.Designer.cs b/DeepDrftWeb/Migrations/20250904233927_Initial.Designer.cs index 9fc8ea2..b652a07 100644 --- a/DeepDrftWeb/Migrations/20250904233927_Initial.Designer.cs +++ b/DeepDrftWeb/Migrations/20250904233927_Initial.Designer.cs @@ -1,6 +1,6 @@ // using System; -using DeepDrftWeb.Data; +using DeepDrftWeb.Services.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/DeepDrftWeb/Migrations/DeepDrftContextModelSnapshot.cs b/DeepDrftWeb/Migrations/DeepDrftContextModelSnapshot.cs index b12ff47..36cb1f3 100644 --- a/DeepDrftWeb/Migrations/DeepDrftContextModelSnapshot.cs +++ b/DeepDrftWeb/Migrations/DeepDrftContextModelSnapshot.cs @@ -1,6 +1,6 @@ // using System; -using DeepDrftWeb.Data; +using DeepDrftWeb.Services.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; diff --git a/DeepDrftWeb/Startup.cs b/DeepDrftWeb/Startup.cs index f1c46d8..1466d7e 100644 --- a/DeepDrftWeb/Startup.cs +++ b/DeepDrftWeb/Startup.cs @@ -1,5 +1,5 @@ -using DeepDrftWeb.Data; -using DeepDrftWeb.Data.Repositories; +using DeepDrftWeb.Services.Data; +using DeepDrftWeb.Services.Repositories; using DeepDrftWeb.Services; using Microsoft.EntityFrameworkCore;