Cover art image gets deleted when the song has been deleted #50
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user