Cover art image gets deleted when the song has been deleted #50

This commit is contained in:
amazing-username
2019-07-15 22:12:49 -04:00
parent e4be56101a
commit 84615472ef
3 changed files with 41 additions and 25 deletions
+25
View File
@@ -43,6 +43,31 @@ namespace Icarus.Controllers.Managers
Console.WriteLine("Nothing wrong here"); Console.WriteLine("Nothing wrong here");
Console.WriteLine($"song cover art id {song.CoverArtId}"); Console.WriteLine($"song cover art id {song.CoverArtId}");
} }
public void DeleteCoverArtFromDatabase(CoverArt coverArt,
CoverArtRepository coverArtRepository)
{
_logger.Info("Attempting to delete cover art from the database");
coverArtRepository.DeleteCoverArt(coverArt);
}
public void DeleteCoverArt(CoverArt coverArt)
{
try
{
var stockCoverArtPath = _rootCoverArtPath + "/CoverArt.png";
if (!string.Equals(stockCoverArtPath, coverArt.ImagePath,
StringComparison.CurrentCultureIgnoreCase))
{
_logger.Info("Song does not contain the stock cover art");
File.Delete(coverArt.ImagePath);
_logger.Info("Cover art deleted from the database");
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
}
public CoverArt SaveCoverArt(Song song) public CoverArt SaveCoverArt(Song song)
{ {
+10 -5
View File
@@ -160,8 +160,10 @@ namespace Icarus.Controllers.Managers
return successful; return successful;
} }
public void DeleteSong(Song song, SongRepository songStore, AlbumRepository albumStore, public void DeleteSong(Song song, SongRepository songStore,
ArtistRepository artistStore, GenreRepository genreStore, YearRepository yearStore) AlbumRepository albumStore, ArtistRepository artistStore,
GenreRepository genreStore, YearRepository yearStore,
CoverArtRepository coverStore)
{ {
try try
{ {
@@ -171,7 +173,12 @@ namespace Icarus.Controllers.Managers
throw new Exception("Failed to delete the song"); throw new Exception("Failed to delete the song");
} }
var coverMgr = new CoverArtManager(_config.GetValue<string>(
"CoverArtPath"));
var coverArt = coverStore.GetCoverArt(song);
coverMgr.DeleteCoverArt(coverArt);
coverMgr.DeleteCoverArtFromDatabase(coverArt, coverStore);
DeleteSongFromDatabase(song, songStore, albumStore, artistStore, DeleteSongFromDatabase(song, songStore, albumStore, artistStore,
genreStore, yearStore); genreStore, yearStore);
} }
@@ -799,9 +806,7 @@ namespace Icarus.Controllers.Managers
return false; return false;
} }
var result = DoesSongExistOnFilesystem(song); return DoesSongExistOnFilesystem(song);
return result;
} }
private bool DoesSongExistOnFilesystem(Song song) private bool DoesSongExistOnFilesystem(Song song)
{ {
+6 -20
View File
@@ -127,27 +127,11 @@ namespace Icarus.Controllers.V1
[Authorize("delete:songs")] [Authorize("delete:songs")]
public IActionResult Delete(int id) public IActionResult Delete(int id)
{ {
SongRepository context = HttpContext.RequestServices Initialize();
.GetService(typeof(SongRepository)) as SongRepository;
AlbumRepository albumStore = HttpContext.RequestServices
.GetService(typeof(AlbumRepository)) as AlbumRepository;
ArtistRepository artistStore = HttpContext.RequestServices
.GetService(typeof(ArtistRepository)) as ArtistRepository;
GenreRepository genreStore = HttpContext.RequestServices
.GetService(typeof(GenreRepository)) as GenreRepository;
YearRepository yearStore = HttpContext.RequestServices
.GetService(typeof(YearRepository)) as YearRepository;
CoverArtRepository coverArtRepository = HttpContext.RequestServices
.GetService(typeof(CoverArtRepository)) as CoverArtRepository;
var songMetaData = new Song{ Id = id }; var songMetaData = new Song{ Id = id };
Console.WriteLine($"Id {songMetaData.Id}"); Console.WriteLine($"Id {songMetaData.Id}");
songMetaData = context.GetSong(songMetaData); songMetaData = _songRepository.GetSong(songMetaData);
if (string.IsNullOrEmpty(songMetaData.Title)) if (string.IsNullOrEmpty(songMetaData.Title))
{ {
@@ -158,8 +142,10 @@ namespace Icarus.Controllers.V1
{ {
_logger.LogInformation("Starting process of deleting song from the filesystem and database"); _logger.LogInformation("Starting process of deleting song from the filesystem and database");
_songMgr.DeleteSong(songMetaData, context, albumStore, _songMgr.DeleteSong(songMetaData, _songRepository,
artistStore, genreStore, yearStore); _albumRepository, _artistRepository,
_genreRepository, _yearRepository,
_coverArtRepository);
return Ok(); return Ok();
} }