Can successfully save the coverart record, now need to work on downloading the cover art #50

This commit is contained in:
amazing-username
2019-07-13 10:13:15 -04:00
parent 026a528a81
commit 1004f6c93d
5 changed files with 78 additions and 9 deletions
+7 -4
View File
@@ -5,6 +5,7 @@ using System.IO;
using Icarus.Controllers.Utilities;
using Icarus.Database.Repositories;
using Icarus.Models;
using Icarus.Types;
namespace Icarus.Controllers.Managers
{
@@ -27,8 +28,12 @@ namespace Icarus.Controllers.Managers
public void SaveCoverArtToDatabase(ref Song song, ref CoverArt coverArt,
CoverArtRepository coverArtRepository)
{
// TODO: Implement saving Cover Art record to
// the database.
coverArtRepository.SaveCoverArt(coverArt);
coverArt = coverArtRepository.GetCoverArt(CoverArtField.SongTitle,
coverArt);
song.CoverArtId = coverArt.CoverArtId;
}
public CoverArt SaveCoverArt(Song song)
{
@@ -43,11 +48,9 @@ namespace Icarus.Controllers.Managers
ImagePath = imagePath
};
Console.WriteLine($"Cover path {imagePath}");
var metaData = new MetadataRetriever();
var imgBytes = metaData.RetrieveCoverArtBytes(song);
Console.WriteLine("Saving image");
File.WriteAllBytes(imagePath, imgBytes);
return coverArt;
+51 -1
View File
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using MySql.Data.MySqlClient;
using Icarus.Models;
using Icarus.Types;
namespace Icarus.Database.Repositories
{
@@ -74,6 +75,41 @@ namespace Icarus.Database.Repositories
return null;
}
public CoverArt GetCoverArt(CoverArtField field, CoverArt cover)
{
try
{
using (var conn = GetConnection())
{
conn.Open();
using (var cmd = new MySqlCommand(BuildQuery(field),
conn))
{
switch (field)
{
case CoverArtField.SongTitle:
cmd.Parameters.AddWithValue("@SongTitle",
cover.SongTitle);
break;
case CoverArtField.ImagePath:
cmd.Parameters.AddWithValue("@ImagePath",
cover.ImagePath);
break;
}
using (var reader = cmd.ExecuteReader())
return ParseSingleData(reader);
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
}
return null;
}
public bool DoesCoverArtExist(CoverArt cover)
{
@@ -165,13 +201,27 @@ namespace Icarus.Database.Repositories
{
CoverArtId = Convert.ToInt32(reader["CoverArtId"]),
SongTitle = reader["SongTitle"].ToString(),
ImagePath = reader["ImagePath}"].ToString()
ImagePath = reader["ImagePath"].ToString()
};
}
return null;
}
private string BuildQuery(CoverArtField field)
{
switch (field)
{
case CoverArtField.SongTitle:
return "SELECT * FROM CoverArt WHERE SongTitle=@SongTitle";
case CoverArtField.ImagePath:
return "SELECT * FROM CoverArt WHERE ImagePath=" +
"@ImagePath";
}
return null;
}
private bool? AnyCoverArt()
{
using (var conn = GetConnection())
+4 -1
View File
@@ -53,6 +53,7 @@ namespace Icarus.Database.Repositories
cmd.Parameters.AddWithValue("@ArtistId", song.ArtistId);
cmd.Parameters.AddWithValue("@GenreId", song.GenreId);
cmd.Parameters.AddWithValue("@YearId", song.YearId);
cmd.Parameters.AddWithValue("@CoverArtId", song.CoverArtId);
cmd.ExecuteNonQuery();
}
@@ -284,7 +285,8 @@ namespace Icarus.Database.Repositories
AlbumId = Convert.ToInt32(reader["AlbumId"].ToString()),
ArtistId = Convert.ToInt32(reader["ArtistId"].ToString()),
GenreId = Convert.ToInt32(reader["GenreId"].ToString()),
YearId = Convert.ToInt32(reader["YearId"].ToString())
YearId = Convert.ToInt32(reader["YearId"].ToString()),
CoverArtId = Convert.ToInt32(reader["CoverArtId"].ToString())
});
}
@@ -310,6 +312,7 @@ namespace Icarus.Database.Repositories
song.ArtistId = Convert.ToInt32(reader["ArtistId"].ToString());
song.GenreId = Convert.ToInt32(reader["GenreId"].ToString());
song.YearId = Convert.ToInt32(reader["YearId"].ToString());
song.CoverArtId = Convert.ToInt32(reader["CoverArtId"].ToString());
}
return song;
+6 -3
View File
@@ -1,3 +1,6 @@
delete from Song where Id>0;
delete from Album where AlbumId>0;
delete from Artist where ArtistId>0;
delete from Song;
delete from Album;
delete from Artist;
delete from Genre;
delete from Year;
delete from CoverArt;
+10
View File
@@ -0,0 +1,10 @@
using System;
namespace Icarus.Types
{
public enum CoverArtField
{
SongTitle = 0,
ImagePath
};
}