From f7963237fdb37ac1ddfd3cafc1c3475e91b499ce Mon Sep 17 00:00:00 2001 From: amazing-username Date: Tue, 9 Jul 2019 21:03:52 -0400 Subject: [PATCH] Added TODO's for checking if Cover art already exists. Added functionality in DirectoryManager to switch to the CoverArt path when explicitly request, otherwise defaults to the music root path. Added skeleton function for CoverArtRepository in the CoverArtRepository and SongManager --- Controllers/Managers/DirectoryManager.cs | 21 ++++++++++++++-- Controllers/Managers/SongManager.cs | 3 ++- Controllers/v1/SongDataController.cs | 7 +++++- Database/Repositories/CoverArtRepository.cs | 27 +++++++++++++++++++++ 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/Controllers/Managers/DirectoryManager.cs b/Controllers/Managers/DirectoryManager.cs index 5216581..c7dfa1b 100644 --- a/Controllers/Managers/DirectoryManager.cs +++ b/Controllers/Managers/DirectoryManager.cs @@ -160,9 +160,17 @@ namespace Icarus.Controllers.Managers return songPath; } - private void Initialize() + private void Initialize(DirectoryTypes dirTypes = DirectoryTypes.Music) { - _rootSongDirectory = _config.GetValue("RootMusicPath"); + switch (dirTypes) + { + case DirectoryTypes.Music: + _rootSongDirectory = _config.GetValue("RootMusicPath"); + break; + case DirectoryTypes.CoverArt: + _rootSongDirectory = _config.GetValue("CoverArtPath"); + break; + } } private bool IsDirectoryEmpty(string path) @@ -201,5 +209,14 @@ namespace Icarus.Controllers.Managers return directory; } #endregion + + + #region enums + private enum DirectoryTypes + { + Music = 0, + CoverArt + }; + #endregion } } diff --git a/Controllers/Managers/SongManager.cs b/Controllers/Managers/SongManager.cs index bdef131..1dbd530 100644 --- a/Controllers/Managers/SongManager.cs +++ b/Controllers/Managers/SongManager.cs @@ -341,7 +341,8 @@ namespace Icarus.Controllers.Managers } public async Task SaveSongToFileSystem(IFormFile songFile, SongRepository songStore, AlbumRepository albumStore, ArtistRepository artistStore, - GenreRepository genreStore, YearRepository yearStore) + GenreRepository genreStore, YearRepository yearStore, + CoverArtRepository coverStore) { try { diff --git a/Controllers/v1/SongDataController.cs b/Controllers/v1/SongDataController.cs index 155adb9..6f89e5c 100644 --- a/Controllers/v1/SongDataController.cs +++ b/Controllers/v1/SongDataController.cs @@ -79,6 +79,11 @@ namespace Icarus.Controllers.V1 YearRepository yearStore = HttpContext.RequestServices .GetService(typeof(YearRepository)) as YearRepository; + CoverArtRepository CoverArtRepository = HttpContext + .RequestServices + .GetService + (typeof(CoverArtRepository)) as CoverArtRepository; + Console.WriteLine("Uploading song..."); _logger.LogInformation("Uploading song..."); @@ -92,7 +97,7 @@ namespace Icarus.Controllers.V1 await _songMgr.SaveSongToFileSystem(sng, songRepository, albumStoreContext, artistStoreContext, - genreStore, yearStore); + genreStore, yearStore, CoverArtRepository); } } catch (Exception ex) diff --git a/Database/Repositories/CoverArtRepository.cs b/Database/Repositories/CoverArtRepository.cs index a1fb553..4f172d5 100644 --- a/Database/Repositories/CoverArtRepository.cs +++ b/Database/Repositories/CoverArtRepository.cs @@ -75,6 +75,33 @@ namespace Icarus.Database.Repositories return null; } + public bool DoesCoverArtExist(CoverArt cover) + { + try + { + // TODO: Implement this + } + catch (Exception ex) + { + var msg = ex.Message; + } + + return false; + } + public bool DoesCoverArtExist(Song song) + { + try + { + // TODO: Implement this + } + catch (Exception ex) + { + var msg = ex.Message; + } + + return false; + } + public void SaveCoverArt(CoverArt coverArt) { try