@@ -279,6 +279,8 @@ namespace Icarus.Models.Context
|
||||
private List<Album> ParseData(MySqlDataReader reader)
|
||||
{
|
||||
List<Album> albums = new List<Album>();
|
||||
_logger.Info("Retrieving album records");
|
||||
|
||||
while (reader.Read())
|
||||
{
|
||||
var id = Convert.ToInt32(reader["AlbumId"]);
|
||||
@@ -294,12 +296,15 @@ namespace Icarus.Models.Context
|
||||
});
|
||||
}
|
||||
|
||||
_logger.Info("Album records retrieved");
|
||||
|
||||
return albums;
|
||||
}
|
||||
private Album ParseSingleData(MySqlDataReader reader)
|
||||
{
|
||||
Album album = new Album();
|
||||
_logger.Info("Retrieving single album record");
|
||||
|
||||
while (reader.Read())
|
||||
{
|
||||
var id = Convert.ToInt32(reader["AlbumId"]);
|
||||
|
||||
@@ -63,6 +63,7 @@ namespace Icarus.Models.Context
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.Info("Checking to see if Artist exists");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
@@ -70,7 +71,7 @@ namespace Icarus.Models.Context
|
||||
var query = "SELECT * FROM Artist WHERE ArtistId=@ArtistId";
|
||||
using (MySqlCommand cmd = new MySqlCommand(query, conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("@AlbumId", artist.ArtistId);
|
||||
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
|
||||
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
@@ -90,17 +91,21 @@ namespace Icarus.Models.Context
|
||||
var msg = ex.Message;
|
||||
_logger.Error(msg, "An error occurred");
|
||||
}
|
||||
|
||||
_logger.Info("Could not successfully retrieve Artist");
|
||||
|
||||
return false;
|
||||
}
|
||||
public bool DoesArtistExist(Song song)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.Info("Checking to see if Artist exists");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
|
||||
var query = "SELECT * FROM Album WHERE Name=@Name";
|
||||
var query = "SELECT * FROM Artist WHERE Name=@Name";
|
||||
using (MySqlCommand cmd = new MySqlCommand(query, conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("@Name", song.Artist);
|
||||
@@ -123,6 +128,9 @@ namespace Icarus.Models.Context
|
||||
var msg = ex.Message;
|
||||
_logger.Error(msg, "An error occurred");
|
||||
}
|
||||
|
||||
_logger.Info("Could not successfully retrieve Artist");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -131,6 +139,7 @@ namespace Icarus.Models.Context
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.Info("Saving artist record");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
@@ -145,6 +154,8 @@ namespace Icarus.Models.Context
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
_logger.Info("Artist record has successfully been saved");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -156,11 +167,24 @@ namespace Icarus.Models.Context
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.Info("Updating artist record");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
// TODO: Implement functionality
|
||||
var query = "UPDATE Artist SET Name=@Name, SongCount" +
|
||||
"=@SongCount WHERE ArtistId=@ArtistId";
|
||||
|
||||
using (MySqlCommand cmd = new MySqlCommand(query, conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("@Name", artist.Name);
|
||||
cmd.Parameters.AddWithValue("@SongCount", artist.SongCount);
|
||||
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
|
||||
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
_logger.Info("Artist record has successfully been saved");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -173,6 +197,7 @@ namespace Icarus.Models.Context
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.Info("Retrieving artist record from the database");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
@@ -181,6 +206,7 @@ namespace Icarus.Models.Context
|
||||
using (MySqlCommand cmd = new MySqlCommand(query, conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
|
||||
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
artist = ParseSingleData(reader);
|
||||
@@ -201,14 +227,16 @@ namespace Icarus.Models.Context
|
||||
Artist artist = new Artist();
|
||||
try
|
||||
{
|
||||
_logger.Info("Retrieving artist record from the database");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
|
||||
var query = "SELECT * FROM Artist WHERE ArtistId=@ArtistId";
|
||||
var query = "SELECT * FROM Artist WHERE Name=@Name";
|
||||
using (MySqlCommand cmd = new MySqlCommand(query, conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("@ArtistId", song.ArtistId);
|
||||
cmd.Parameters.AddWithValue("@Name", song.Artist);
|
||||
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
artist = ParseSingleData(reader);
|
||||
@@ -243,6 +271,8 @@ namespace Icarus.Models.Context
|
||||
});
|
||||
}
|
||||
|
||||
_logger.Info("Artist records retrieved");
|
||||
|
||||
return artists;
|
||||
}
|
||||
|
||||
@@ -260,6 +290,8 @@ namespace Icarus.Models.Context
|
||||
artist.SongCount = songCount;
|
||||
}
|
||||
|
||||
_logger.Info("Single artist record retrieved");
|
||||
|
||||
return artist;
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -30,13 +30,15 @@ namespace Icarus.Models.Context
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.Info("Saving song to the database");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
string query = "INSERT INTO Song(Title, AlbumTitle, Artist," +
|
||||
" Year, Genre, Duration, Filename, SongPath, AlbumId) " +
|
||||
"VALUES(@Title, @AlbumTitle, @Artist, @Year, @Genre, " +
|
||||
"@Duration, @Filename, @SongPath, @AlbumId)";
|
||||
" Year, Genre, Duration, Filename, SongPath, AlbumId, " +
|
||||
"ArtistId) VALUES(@Title, @AlbumTitle, @Artist, @Year, " +
|
||||
"@Genre, @Duration, @Filename, @SongPath, @AlbumId, " +
|
||||
"@ArtistId)";
|
||||
using (MySqlCommand cmd = new MySqlCommand(query, conn))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("@Title", song.Title);
|
||||
@@ -48,10 +50,12 @@ namespace Icarus.Models.Context
|
||||
cmd.Parameters.AddWithValue("@Filename", song.Filename);
|
||||
cmd.Parameters.AddWithValue("@SongPath", song.SongPath);
|
||||
cmd.Parameters.AddWithValue("@AlbumId", song.AlbumId);
|
||||
cmd.Parameters.AddWithValue("@ArtistId", song.ArtistId);
|
||||
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
_logger.Info("Successfully saved song to the database");
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
@@ -125,8 +129,10 @@ namespace Icarus.Models.Context
|
||||
public List<Song> GetAllSongs()
|
||||
{
|
||||
List<Song> songs = new List<Song>();
|
||||
|
||||
try
|
||||
{
|
||||
_logger.Info("Retrieving songs from the database");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
@@ -134,6 +140,8 @@ namespace Icarus.Models.Context
|
||||
MySqlCommand cmd = new MySqlCommand(query, conn);
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
songs = ParseData(reader);
|
||||
/**
|
||||
while (reader.Read())
|
||||
{
|
||||
songs.Add(new Song
|
||||
@@ -149,6 +157,7 @@ namespace Icarus.Models.Context
|
||||
SongPath = reader["SongPath"].ToString()
|
||||
});
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -169,6 +178,7 @@ namespace Icarus.Models.Context
|
||||
|
||||
try
|
||||
{
|
||||
_logger.Info("Retrieving song from database");
|
||||
using (MySqlConnection conn = GetConnection())
|
||||
{
|
||||
conn.Open();
|
||||
@@ -179,6 +189,8 @@ namespace Icarus.Models.Context
|
||||
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
song = ParseSingleData(reader);
|
||||
/**
|
||||
while (reader.Read())
|
||||
{
|
||||
song = new Song
|
||||
@@ -194,6 +206,7 @@ namespace Icarus.Models.Context
|
||||
SongPath = reader["SongPath"].ToString()
|
||||
};
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
_logger.Info("Song found");
|
||||
|
||||
Reference in New Issue
Block a user