105 lines
3.0 KiB
C#
105 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Text;
|
|
|
|
using Icarus.Constants;
|
|
using Icarus.Controllers.Utilities;
|
|
using Icarus.Database.Repositories;
|
|
using Icarus.Models;
|
|
using Icarus.Types;
|
|
|
|
namespace Icarus.Controllers.Managers
|
|
{
|
|
public class CoverArtManager : BaseManager
|
|
{
|
|
#region Fields
|
|
private string _rootCoverArtPath;
|
|
#endregion
|
|
|
|
|
|
#region Constructors
|
|
public CoverArtManager(string rootPath)
|
|
{
|
|
_rootCoverArtPath = rootPath;
|
|
Initialize();
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region Methods
|
|
public void SaveCoverArtToDatabase(ref Song song, ref CoverArt coverArt,
|
|
CoverArtRepository coverArtRepository)
|
|
{
|
|
_logger.Info("Saving cover art record to the database");
|
|
coverArtRepository.SaveCoverArt(coverArt);
|
|
|
|
coverArt = coverArtRepository.GetCoverArt(CoverArtField.SongTitle,
|
|
coverArt);
|
|
|
|
song.CoverArtId = coverArt.CoverArtId;
|
|
_logger.Info("Cover art Process saving complete");
|
|
}
|
|
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)
|
|
{
|
|
var stockCoverArtPath = _rootCoverArtPath + "CoverArtPath.png";
|
|
DirectoryManager.delete_cover_art(coverArt.ImagePath, stockCoverArtPath);
|
|
}
|
|
|
|
public CoverArt SaveCoverArt(Song song)
|
|
{
|
|
var sng = SongManager.ConvertSongToSng(song);
|
|
|
|
var cov = ConvertCoverArtToCovArt(new CoverArt
|
|
{
|
|
SongTitle = song.Title,
|
|
ImagePath = _rootCoverArtPath
|
|
});
|
|
|
|
MetadataRetriever.update_cover_art(ref cov,
|
|
ref sng, _rootCoverArtPath);
|
|
|
|
return ConvertCovArtToCoverArt(cov);
|
|
}
|
|
|
|
public static CovArt ConvertCoverArtToCovArt(CoverArt cover)
|
|
{
|
|
return new CovArt
|
|
{
|
|
SongTitle = cover.SongTitle,
|
|
ImagePath = cover.ImagePath
|
|
};
|
|
}
|
|
public static CoverArt ConvertCovArtToCoverArt(CovArt cov)
|
|
{
|
|
return new CoverArt
|
|
{
|
|
SongTitle = cov.SongTitle,
|
|
ImagePath = cov.ImagePath
|
|
};
|
|
}
|
|
|
|
private void Initialize()
|
|
{
|
|
var stockCover = _rootCoverArtPath + "CoverArt.png";
|
|
DirectoryManager.copy_stock_cover_art(stockCover,
|
|
DirectoryPaths.CoverArtPath);
|
|
}
|
|
#region Testing
|
|
private void PrintCoverArtDetails(CoverArt cover)
|
|
{
|
|
Console.WriteLine("\nCover art");
|
|
Console.WriteLine($"Song Title: {cover.SongTitle}");
|
|
Console.WriteLine($"ImagePath: {cover.ImagePath}\n");
|
|
}
|
|
#endregion
|
|
#endregion
|
|
}
|
|
}
|