Song Count for corresponding tables are calcuated when retrieved #47

This commit is contained in:
amazing-username
2019-05-25 20:48:40 +00:00
parent e1627b04b9
commit c8578ae8c8
7 changed files with 478 additions and 164 deletions
+16 -14
View File
@@ -673,6 +673,7 @@ namespace Icarus.Controllers.Managers
album.SongCount = 1; album.SongCount = 1;
albumStore.SaveAlbum(album); albumStore.SaveAlbum(album);
album = albumStore.GetAlbum(song); album = albumStore.GetAlbum(song);
Console.WriteLine($"Album Id {album.AlbumId}");
} }
else else
{ {
@@ -724,6 +725,7 @@ namespace Icarus.Controllers.Managers
if (!genreStore.DoesGenreExist(song)) if (!genreStore.DoesGenreExist(song))
{ {
genreStore.SaveGenre(genre); genreStore.SaveGenre(genre);
Console.WriteLine("Going to find genre");
genre = genreStore.GetGenre(song); genre = genreStore.GetGenre(song);
var genreDump = $"Genre id {genre.GenreId} GenreName {genre.GenreName}" + var genreDump = $"Genre id {genre.GenreId} GenreName {genre.GenreName}" +
$" Genre song Count {genre.SongCount}"; $" Genre song Count {genre.SongCount}";
@@ -807,7 +809,7 @@ namespace Icarus.Controllers.Managers
private Album UpdateAlbumInDatabase(Song oldSongRecord, Song newSongRecord, AlbumStoreContext albumStore) private Album UpdateAlbumInDatabase(Song oldSongRecord, Song newSongRecord, AlbumStoreContext albumStore)
{ {
var albumRecord = albumStore.GetAlbum(oldSongRecord); var albumRecord = albumStore.GetAlbum(oldSongRecord, true);
var oldAlbumTitle = oldSongRecord.AlbumTitle; var oldAlbumTitle = oldSongRecord.AlbumTitle;
var oldAlbumArtist = oldSongRecord.Artist; var oldAlbumArtist = oldSongRecord.Artist;
var newAlbumTitle = newSongRecord.AlbumTitle; var newAlbumTitle = newSongRecord.AlbumTitle;
@@ -838,7 +840,7 @@ namespace Icarus.Controllers.Managers
{ {
_logger.Info("Decrementing existing album's song count"); _logger.Info("Decrementing existing album's song count");
albumRecord.SongCount -= 1; //albumRecord.SongCount -= 1;
albumStore.UpdateAlbum(albumRecord); albumStore.UpdateAlbum(albumRecord);
} }
else else
@@ -867,16 +869,16 @@ namespace Icarus.Controllers.Managers
var existingAlbumRecord = albumStore.GetAlbum(newSongRecord); var existingAlbumRecord = albumStore.GetAlbum(newSongRecord);
existingAlbumRecord.AlbumArtist = newAlbumArtist; existingAlbumRecord.AlbumArtist = newAlbumArtist;
existingAlbumRecord.SongCount += 1; //existingAlbumRecord.SongCount += 1;
albumStore.UpdateAlbum(existingAlbumRecord); albumStore.UpdateAlbum(existingAlbumRecord);
} }
return albumStore.GetAlbum(newSongRecord); return albumStore.GetAlbum(newSongRecord, true);
} }
private Artist UpdateArtistInDatabase(Song oldSongRecord, Song newSongRecord, ArtistStoreContext artistStore) private Artist UpdateArtistInDatabase(Song oldSongRecord, Song newSongRecord, ArtistStoreContext artistStore)
{ {
var oldArtistRecord = artistStore.GetArtist(oldSongRecord); var oldArtistRecord = artistStore.GetArtist(oldSongRecord, true);
var oldArtistName = oldArtistRecord.Name; var oldArtistName = oldArtistRecord.Name;
var newArtistName = newSongRecord.Artist; var newArtistName = newSongRecord.Artist;
@@ -892,7 +894,7 @@ namespace Icarus.Controllers.Managers
{ {
_logger.Info("Decrementing existing artist's song count"); _logger.Info("Decrementing existing artist's song count");
oldArtistRecord.SongCount -= 1; //oldArtistRecord.SongCount -= 1;
artistStore.UpdateArtist(oldArtistRecord); artistStore.UpdateArtist(oldArtistRecord);
} }
else else
@@ -919,16 +921,16 @@ namespace Icarus.Controllers.Managers
_logger.Info("Updating existing artist record"); _logger.Info("Updating existing artist record");
var existingArtistRecord = artistStore.GetArtist(newSongRecord); var existingArtistRecord = artistStore.GetArtist(newSongRecord);
existingArtistRecord.SongCount += 1; //existingArtistRecord.SongCount += 1;
artistStore.UpdateArtist(existingArtistRecord); artistStore.UpdateArtist(existingArtistRecord);
} }
return artistStore.GetArtist(newSongRecord); return artistStore.GetArtist(newSongRecord, true);
} }
private Genre UpdateGenreInDatabase(Song oldSongRecord, Song newSongRecord, GenreStoreContext genreStore) private Genre UpdateGenreInDatabase(Song oldSongRecord, Song newSongRecord, GenreStoreContext genreStore)
{ {
var oldGenreRecord = genreStore.GetGenre(oldSongRecord); var oldGenreRecord = genreStore.GetGenre(oldSongRecord, true);
var oldGenreName = oldGenreRecord.GenreName; var oldGenreName = oldGenreRecord.GenreName;
var newGenreName = newSongRecord.Genre; var newGenreName = newSongRecord.Genre;
@@ -971,17 +973,17 @@ namespace Icarus.Controllers.Managers
_logger.Info("Updating existing genre record"); _logger.Info("Updating existing genre record");
var existingGenreRecord = genreStore.GetGenre(newSongRecord); var existingGenreRecord = genreStore.GetGenre(newSongRecord);
existingGenreRecord.SongCount += 1; //existingGenreRecord.SongCount += 1;
genreStore.UpdateGenre(existingGenreRecord); genreStore.UpdateGenre(existingGenreRecord);
} }
return genreStore.GetGenre(newSongRecord); return genreStore.GetGenre(newSongRecord, true);
} }
private Year UpdateYearInDatabase(Song oldSongRecord, Song newSongRecord, YearStoreContext yearStore) private Year UpdateYearInDatabase(Song oldSongRecord, Song newSongRecord, YearStoreContext yearStore)
{ {
var oldYearRecord = yearStore.GetSongYear(oldSongRecord); var oldYearRecord = yearStore.GetSongYear(oldSongRecord, true);
var oldYearValue = oldYearRecord.YearValue; var oldYearValue = oldYearRecord.YearValue;
var newYearValue = newSongRecord.Year; var newYearValue = newSongRecord.Year;
@@ -1024,12 +1026,12 @@ namespace Icarus.Controllers.Managers
_logger.Info("Updating existing year record"); _logger.Info("Updating existing year record");
var existingYearRecord = yearStore.GetSongYear(newSongRecord); var existingYearRecord = yearStore.GetSongYear(newSongRecord);
existingYearRecord.SongCount += 1; //existingYearRecord.SongCount += 1;
yearStore.UpdateYear(existingYearRecord); yearStore.UpdateYear(existingYearRecord);
} }
return yearStore.GetSongYear(newSongRecord); return yearStore.GetSongYear(newSongRecord, true);
} }
private void UpdateSongInDatabase(ref Song oldSongRecord, ref Song newSongRecord, MusicStoreContext songStore, private void UpdateSongInDatabase(ref Song oldSongRecord, ref Song newSongRecord, MusicStoreContext songStore,
ref SongResult result) ref SongResult result)
+3 -2
View File
@@ -75,6 +75,8 @@ namespace Icarus.Controllers
Song song = context.GetSong(id); Song song = context.GetSong(id);
Console.WriteLine("Here");
if (song.Id != 0) if (song.Id != 0)
{ {
return Ok(song); return Ok(song);
@@ -85,9 +87,8 @@ namespace Icarus.Controllers
} }
} }
[HttpPut("{id}")]
[Authorize("update:songs")] [Authorize("update:songs")]
[HttpPut("{id}")]
public IActionResult Put(int id, [FromBody] Song song) public IActionResult Put(int id, [FromBody] Song song)
{ {
MusicStoreContext context = HttpContext MusicStoreContext context = HttpContext
+104 -32
View File
@@ -27,6 +27,36 @@ namespace Icarus.Models.Context
#region Methods #region Methods
public List<Album> GetAlbumWithoutCount()
{
var albums = new List<Album>();
if (AnyAlbums())
{
try
{
using (MySqlConnection conn = GetConnection())
{
conn.Open();
var query = "SELECT * FROM Album";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
using (var reader = cmd.ExecuteReader())
{
albums = ParseData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
}
return albums;
}
public List<Album> GetAlbums() public List<Album> GetAlbums()
{ {
List<Album> albums = new List<Album>(); List<Album> albums = new List<Album>();
@@ -96,13 +126,54 @@ namespace Icarus.Models.Context
using (MySqlConnection conn = GetConnection()) using (MySqlConnection conn = GetConnection())
{ {
conn.Open(); conn.Open();
var query = "SELECT alb.*, COUNT(*) AS SongCount FROM Album alb " + var query = "SELECT alb.*, 0 AS SongCount FROM Album alb " +
"LEFT JOIN Song sng ON alb.AlbumId=sng.AlbumId WHERE " + "WHERE alb.Title=@Title LIMIT 1";
"sng.Id=@Id LIMIT 1";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@Id", song.Id); Console.WriteLine($"Album title {song.AlbumTitle}");
cmd.Parameters.AddWithValue("@Title", song.AlbumTitle);
using (var reader = cmd.ExecuteReader())
{
album = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return album;
}
public Album GetAlbum(Song song, bool retrieveCount)
{
var album = new Album();
try
{
using (MySqlConnection conn = GetConnection())
{
conn.Open();
var query = string.Empty;
if (retrieveCount)
{
query = "SELECT alb.*, COUNT(*) AS SongCount FROM Album alb " +
"LEFT JOIN Song sng ON alb.AlbumId=sng.AlbumId WHERE " +
"alb.Title=@Title GROUP BY alb.AlbumId LIMIT 1";
}
else
{
query = "SELECT alb.*, 0 AS SongCount FROM Album alb WHERE " +
"alb.Title=@Title LIMIT 1";
}
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@Title", song.AlbumTitle);
using (var reader = cmd.ExecuteReader()) using (var reader = cmd.ExecuteReader())
{ {
@@ -124,23 +195,11 @@ namespace Icarus.Models.Context
{ {
try try
{ {
album = GetAlbum(album);
if (!string.IsNullOrEmpty(album.Title))
{
_logger.Info("Album exists");
return true;
}
else
{
_logger.Info("Album does not exist");
}
/**
using (MySqlConnection conn = GetConnection()) using (MySqlConnection conn = GetConnection())
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Album WHERE AlbumId=@AlbumId"; var query = "SELECT alb.*, 0 AS SongCount FROM Album alb WHERE alb.AlbumId=@AlbumId";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@AlbumId", album.AlbumId); cmd.Parameters.AddWithValue("@AlbumId", album.AlbumId);
@@ -157,7 +216,6 @@ namespace Icarus.Models.Context
} }
} }
} }
*/
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -170,23 +228,11 @@ namespace Icarus.Models.Context
{ {
try try
{ {
var album = GetAlbum(song);
if (!string.IsNullOrEmpty(album.Title))
{
_logger.Info("Album exists");
return true;
}
else
{
_logger.Info("Album does not exist");
}
/**
using (MySqlConnection conn = GetConnection()) using (MySqlConnection conn = GetConnection())
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Album WHERE Title=@Title"; var query = "SELECT alb.*, 0 AS SongCount FROM Album alb WHERE alb.Title=@Title";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@Title", song.AlbumTitle); cmd.Parameters.AddWithValue("@Title", song.AlbumTitle);
@@ -203,7 +249,6 @@ namespace Icarus.Models.Context
} }
} }
} }
*/
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -334,6 +379,33 @@ namespace Icarus.Models.Context
return album; return album;
} }
private bool AnyAlbums()
{
var albums = new List<Album>();
using (var conn = GetConnection())
{
conn.Open();
var query = "SELECT * FROM Album";
using (var cmd = new MySqlCommand(query, conn))
{
using (var reader = cmd.ExecuteReader())
{
albums = ParseData(reader);
}
}
}
if (albums.Count > 0)
{
return true;
}
return false;
}
#endregion #endregion
} }
} }
+114 -64
View File
@@ -37,7 +37,10 @@ namespace Icarus.Models.Context
using (MySqlConnection conn = GetConnection()) using (MySqlConnection conn = GetConnection())
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Artist"; var query = "SELECT art.*, COUNT(*) AS SongCount FROM Artist " +
"art LEFT JOIN Song sng ON art.ArtistId=sng.ArtistId " +
"GROUPY BY art.ArtistId";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
using (var reader = cmd.ExecuteReader()) using (var reader = cmd.ExecuteReader())
@@ -57,6 +60,113 @@ namespace Icarus.Models.Context
return artists; return artists;
} }
public Artist GetArtist(Artist artist)
{
try
{
_logger.Info("Retrieving artist record from the database");
using (MySqlConnection conn = GetConnection())
{
conn.Open();
var query = "SELECT art.*, COUNT(*) AS SongCount FROM Artist " +
"art LEFT JOIN Song sng ON art.ArtistId=sng.ArtistId " +
"WHERE ArtistId=@ArtistId";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
using (var reader = cmd.ExecuteReader())
{
artist = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return artist;
}
public Artist GetArtist(Song song)
{
Artist artist = new Artist();
try
{
_logger.Info("Retrieving artist record from the database");
using (MySqlConnection conn = GetConnection())
{
conn.Open();
var query = "SELECT art.*, 0 AS SongCount FROM Artist " +
"art WHERE Name=@Name";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@Name", song.Artist);
using (var reader = cmd.ExecuteReader())
{
artist = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return artist;
}
public Artist GetArtist(Song song, bool retrieveCount)
{
var artist = new Artist();
try
{
_logger.Info("Retrieving artist record from the database");
using (MySqlConnection conn = GetConnection())
{
conn.Open();
var query = string.Empty;
if (retrieveCount)
{
query = "SELECT art.*, COUNT(*) AS SongCount FROM Artist " +
"art LEFT JOIN Song sng ON art.ArtistId=sng.ArtistId " +
"WHERE art.Name=@Name GROUP BY art.ArtistId LIMIT 1";
}
else
{
query = "SELECT art.*, 0 AS SongCount FROM Artist art " +
"WHERE art.Name=@Name LIMIT 1";
}
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@Name", song.Artist);
using (var reader = cmd.ExecuteReader())
{
artist = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return artist;
}
public bool DoesArtistExist(Artist artist) public bool DoesArtistExist(Artist artist)
{ {
@@ -67,7 +177,8 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Artist WHERE ArtistId=@ArtistId"; var query = "SELECT art.*, 0 AS SongCount FROM Artist art WHERE art.ArtistId=@ArtistId";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId); cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
@@ -104,7 +215,7 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Artist WHERE Name=@Name"; var query = "SELECT art.*, 0 AS SongCount FROM Artist art WHERE art.Name=@Name";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@Name", song.Artist); cmd.Parameters.AddWithValue("@Name", song.Artist);
@@ -214,67 +325,6 @@ namespace Icarus.Models.Context
} }
} }
public Artist GetArtist(Artist artist)
{
try
{
_logger.Info("Retrieving artist record from the database");
using (MySqlConnection conn = GetConnection())
{
conn.Open();
var query = "SELECT * FROM Artist WHERE ArtistId=@ArtistId";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
using (var reader = cmd.ExecuteReader())
{
artist = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return artist;
}
public Artist GetArtist(Song song)
{
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 Name=@Name";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@Name", song.Artist);
using (var reader = cmd.ExecuteReader())
{
artist = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return artist;
}
private List<Artist> ParseData(MySqlDataReader reader) private List<Artist> ParseData(MySqlDataReader reader)
{ {
List<Artist> artists = new List<Artist>(); List<Artist> artists = new List<Artist>();
+183 -47
View File
@@ -28,33 +28,74 @@ namespace Icarus.Models.Context
#region Methods #region Methods
public List<Genre> GetGenresWithoutCount()
{
_logger.Info("Retrieving all genre records without song counts");
var genres = new List<Genre>();
if (AnyGenre())
{
try
{
using (var conn = GetConnection())
{
conn.Open();
var query = "SELECT * FROM Genre";
using (var cmd = new MySqlCommand(query, conn))
{
using (var reader = cmd.ExecuteReader())
{
genres = ParseData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
}
return genres;
}
public List<Genre> GetGenres() public List<Genre> GetGenres()
{ {
_logger.Info("Retrieving Genre records"); _logger.Info("Retrieving Genre records");
var genres = new List<Genre>(); var genres = new List<Genre>();
try if (AnyGenre())
{ {
using (var conn = GetConnection())
try
{ {
conn.Open(); using (var conn = GetConnection())
var query = "SELECT * FROM Genre";
using (var cmd = new MySqlCommand(query, conn))
{ {
using (var reader = cmd.ExecuteReader()) conn.Open();
var query = "SELECT gnr.*, COUNT(*) AS SongCount FROM Genre " +
"gnr LEFt JOIN Song sng ON gnr.GenreId=sng.GenreId " +
"GROUP BY gnr.GenreId";
using (var cmd = new MySqlCommand(query, conn))
{ {
genres = ParseData(reader); using (var reader = cmd.ExecuteReader())
{
genres = ParseData(reader);
}
} }
} }
} }
} catch (Exception ex)
catch (Exception ex) {
{ var msg = ex.Message;
var msg = ex.Message; _logger.Error(msg, "An error occurred");
_logger.Error(msg, "An error occurred"); }
} }
return genres; return genres;
@@ -64,29 +105,34 @@ namespace Icarus.Models.Context
{ {
_logger.Info("Retrieving Genre record"); _logger.Info("Retrieving Genre record");
try if (DoesGenreExist(genre))
{ {
using (var conn = GetConnection()) try
{ {
conn.Open(); using (var conn = GetConnection())
var query = "SELECT * FROM Genre WHERE GenreId=@GenreId";
using (var cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@GenreId", genre.GenreId); conn.Open();
using (var reader = cmd.ExecuteReader()) var query = "SELECT gnr.*, COUNT(*) AS SongCount FROM Genre " +
"gnr LEFT JOIN Song sng ON gnr.GenreId=sng.GenreId " +
"WHERE gnr.GenreId=@GenreId";
using (var cmd = new MySqlCommand(query, conn))
{ {
genre = ParseSingleData(reader); cmd.Parameters.AddWithValue("@GenreId", genre.GenreId);
using (var reader = cmd.ExecuteReader())
{
genre = ParseSingleData(reader);
}
} }
} }
} }
} catch (Exception ex)
catch (Exception ex) {
{ var msg = ex.Message;
var msg = ex.Message; _logger.Error(msg, "An error occurred");
_logger.Error(msg, "An error occurred"); }
} }
return genre; return genre;
@@ -97,29 +143,84 @@ namespace Icarus.Models.Context
var genre = new Genre(); var genre = new Genre();
try if (DoesGenreExist(song))
{ {
using (var conn = GetConnection()) try
{ {
conn.Open(); using (var conn = GetConnection())
var query = "SELECT * FROM Genre WHERE GenreName=@GenreName";
using (var cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@GenreName", song.Genre); conn.Open();
using (var reader = cmd.ExecuteReader()) var query = "SELECT gnr.*, 0 AS SongCount FROM Genre " +
"gnr WHERE gnr.GenreName=@GenreName";
using (var cmd = new MySqlCommand(query, conn))
{ {
genre = ParseSingleData(reader); cmd.Parameters.AddWithValue("@GenreName", song.Genre);
_logger.Info($"Song genre:\n\n\n {song.Genre}");
using (var reader = cmd.ExecuteReader())
{
genre = ParseSingleData(reader);
}
} }
} }
} }
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
} }
catch (Exception ex)
return genre;
}
public Genre GetGenre(Song song, bool retrieveCount)
{
_logger.Info("Retrieving Genre record");
var genre = new Genre();
if (DoesGenreExist(song))
{ {
var msg = ex.Message; try
_logger.Error(msg, "An error occurred"); {
using (var conn = GetConnection())
{
conn.Open();
var query = string.Empty;
if (retrieveCount)
{
query = "SELECT gnr.*, 0 AS SongCount FROM Genre gnr " +
"LEFT JOIN Song sng ON gnr.GenreId=sng.GenreId " +
"WHERE gnr.GenreName=@GenreName GROUP BY gnr.GenreId " +
"LIMIT 1";
}
else
{
query = "SELECT gnr.*, 0 AS SongCount FROM Genre gnr " +
"WHERE gnr.GenreName=@GenreName LIMIT 1";
}
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@GenreName", song.Genre);
_logger.Info($"Song genre:\n\n\n {song.Genre}");
using (var reader = cmd.ExecuteReader())
{
genre = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
} }
return genre; return genre;
@@ -135,7 +236,8 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Genre WHERE GenreId=@GenreId"; var query = "SELECT gnr.*, 0 AS SongCount FROM Genre gnr WHERE " +
"gnr.GenreId=@GenreId";
using (var cmd = new MySqlCommand(query, conn)) using (var cmd = new MySqlCommand(query, conn))
{ {
@@ -172,13 +274,12 @@ namespace Icarus.Models.Context
try try
{ {
var genre = ParseSingleData(song);
using (var conn = GetConnection()) using (var conn = GetConnection())
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Genre WHERE GenreName=@GenreName"; var query = "SELECT gnr.*, 0 AS SongCount FROM Genre gnr WHERE " +
"gnr.GenreName=@GenreName";
using (var cmd = new MySqlCommand(query, conn)) using (var cmd = new MySqlCommand(query, conn))
{ {
@@ -198,7 +299,6 @@ namespace Icarus.Models.Context
} }
} }
} }
*/
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -335,6 +435,42 @@ namespace Icarus.Models.Context
return genre; return genre;
} }
private bool AnyGenre()
{
try
{
using (var conn = GetConnection())
{
conn.Open();
var query = "SELECT * FROM Genre";
using (var cmd = new MySqlCommand(query, conn))
{
using (var reader = cmd.ExecuteReader())
{
var genres = ParseData(reader);
if (genres.Count > 0)
{
_logger.Info("Genres records");
return true;
}
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
_logger.Info("No genre records found");
return false;
}
#endregion #endregion
} }
} }
+1
View File
@@ -40,6 +40,7 @@ namespace Icarus.Models.Context
", PhoneNumber, Firstname, Lastname, EmailVerified) " + ", PhoneNumber, Firstname, Lastname, EmailVerified) " +
"VALUES(@Username, @Password, @Nickname, @Email, @PhoneNumber," + "VALUES(@Username, @Password, @Nickname, @Email, @PhoneNumber," +
" @Firstname, @Lastname, @EmailVerified)"; " @Firstname, @Lastname, @EmailVerified)";
using (MySqlCommand cmd = new MySqlCommand(query, conn)) using (MySqlCommand cmd = new MySqlCommand(query, conn))
{ {
cmd.Parameters.AddWithValue("@Username", user.Username); cmd.Parameters.AddWithValue("@Username", user.Username);
+57 -5
View File
@@ -40,7 +40,9 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Year"; var query = "SELECT yr.*, COUNT(*) AS SongCount FROM Year " +
"yr LEFT JOIN Song sng ON yr.YearId=sng.YearId " +
"GROUP BY gnr.YearId";
using (var cmd = new MySqlCommand(query, conn)) using (var cmd = new MySqlCommand(query, conn))
{ {
@@ -70,7 +72,9 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Year WHERE YearId=@YearId"; var query = "SELECT yr.*, COUNT(*) AS SongCount FROM Year " +
"yr LEFT JOIN Song sng ON yr.YearId=sng.YearId WHERE " +
"YearId=@YearId GROUP BY yr.YearId";
using (var cmd = new MySqlCommand(query, conn)) using (var cmd = new MySqlCommand(query, conn))
{ {
@@ -103,7 +107,53 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Year WHERE YearValue=@YearValue"; var query = "SELECT yr.*, 0 AS SongCount FROM Year " +
"yr WHERE yr.YearValue=@YearValue";
using(var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@YearValue", song.Year);
using (var reader = cmd.ExecuteReader())
{
year = ParseSingleData(reader);
}
}
}
}
catch (Exception ex)
{
var msg = ex.Message;
_logger.Error(msg, "An error occurred");
}
return year;
}
public Year GetSongYear(Song song, bool retrieveCount)
{
var year = new Year();
_logger.Info("Retrieving year record");
try
{
using (var conn = GetConnection())
{
conn.Open();
var query = string.Empty;
if (retrieveCount)
{
query = "SELECT yr.*, COUNT(*) AS SongCount FROM Year yr " +
"LEFT JOIN Song sng ON yr.YearValue=sng.Year WHERE " +
"yr.YearValue=@YearValue GROUP BY yr.YearId LIMIT 1";
}
else
{
query = "SELECT yr.*, 0 AS SongCount FROM Year yr " +
"WHERE yr.YearValue=@YearValue LIMIT 1";
}
using(var cmd = new MySqlCommand(query, conn)) using(var cmd = new MySqlCommand(query, conn))
{ {
@@ -135,7 +185,8 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Year WHERE YearId=@YearId"; var query = "SELECT yr.*, 0 AS SongCount FROM Year yr WHERE " +
"yr.YearId=@YearId";
using (var cmd = new MySqlCommand(query, conn)) using (var cmd = new MySqlCommand(query, conn))
{ {
@@ -175,7 +226,8 @@ namespace Icarus.Models.Context
{ {
conn.Open(); conn.Open();
var query = "SELECT * FROM Year WHERE YearValue=@YearValue"; var query = "SELECT yr.*, 0 AS SongCount FROM Year yr WHERE " +
"yr.YearValue=@YearValue";
using (var cmd = new MySqlCommand(query, conn)) using (var cmd = new MySqlCommand(query, conn))
{ {