This commit is contained in:
@@ -273,6 +273,29 @@ namespace Icarus.Models.Context
|
|||||||
_logger.Error(msg, "An error occurred");
|
_logger.Error(msg, "An error occurred");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public void DeleteAlbum(Album album)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
var query = "DELETE Album WHERE AlbumId=@AlbumId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@AlbumId", album.AlbumId);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private List<Album> ParseData(MySqlDataReader reader)
|
private List<Album> ParseData(MySqlDataReader reader)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -192,6 +192,32 @@ namespace Icarus.Models.Context
|
|||||||
_logger.Error(msg, "An error occurred");
|
_logger.Error(msg, "An error occurred");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public void DeleteArtist(Artist artist)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.Info("Deleting artist record");
|
||||||
|
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
var query = "DELETE Artist WHERE ArtistId=@ArtistId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@ArtistId", artist.ArtistId);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Artist GetArtist(Artist artist)
|
public Artist GetArtist(Artist artist)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -123,6 +123,8 @@ namespace Icarus.Models.Context
|
|||||||
_logger.Error(msg, "An error occurred");
|
_logger.Error(msg, "An error occurred");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_logger.Info("Genre does not exist");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public bool DoesGenreExist(Song song)
|
public bool DoesGenreExist(Song song)
|
||||||
@@ -133,11 +135,11 @@ namespace Icarus.Models.Context
|
|||||||
{
|
{
|
||||||
conn.Open();
|
conn.Open();
|
||||||
|
|
||||||
var query = "SELECT * FROM Genre WHERE GenreName=@GenreName";
|
var query = "SELECT * FROM Song WHERE Genre=@Genre";
|
||||||
|
|
||||||
using (var cmd = new MySqlCommand(query, conn))
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
{
|
{
|
||||||
cmd.Parameters.AddWithValue("@GenreName", song.Genre);
|
cmd.Parameters.AddWithValue("@Genre", song.Genre);
|
||||||
|
|
||||||
using (var reader = cmd.ExecuteReader())
|
using (var reader = cmd.ExecuteReader())
|
||||||
{
|
{
|
||||||
@@ -160,9 +162,83 @@ namespace Icarus.Models.Context
|
|||||||
_logger.Error(msg, "An error occurred");
|
_logger.Error(msg, "An error occurred");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_logger.Info("Genre does not exist");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SaveGenre(Genre genre)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
var query = "INSERT INTO Genre(GenreName, SongCount) VALUES(" +
|
||||||
|
"@GenreName, @SongCount)";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@GenreName", genre.GenreName);
|
||||||
|
cmd.Parameters.AddWithValue("@SongCount", genre.SongCount);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void UpdateGenre(Genre genre)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
var query = "UPDATE Genre SET GenreName=@GenreName, " +
|
||||||
|
"SongCount=@SongCount WHERE GenreId=@GenreId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@GenreName", genre.GenreName);
|
||||||
|
cmd.Parameters.AddWithValue("@SongCount", genre.SongCount);
|
||||||
|
cmd.Parameters.AddWithValue("@GenreId", genre.GenreId);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void DeleteGenre(Genre genre)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
var query = "DELETE Genre WHERE GenreId=@GenreId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@GenreId", genre.GenreId);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private List<Genre> ParseData(MySqlDataReader reader)
|
private List<Genre> ParseData(MySqlDataReader reader)
|
||||||
{
|
{
|
||||||
var genres = new List<Genre>();
|
var genres = new List<Genre>();
|
||||||
|
|||||||
@@ -28,20 +28,245 @@ namespace Icarus.Models.Context
|
|||||||
|
|
||||||
|
|
||||||
#region Methods
|
#region Methods
|
||||||
public List<Year> GetSongYear()
|
public List<Year> GetSongYears()
|
||||||
{
|
{
|
||||||
var yearValues = new List<Year>();
|
var yearValues = new List<Year>();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
using (var conn = GetConnection())
|
using (var conn = GetConnection())
|
||||||
{
|
{
|
||||||
conn.Open();
|
conn.Open();
|
||||||
|
|
||||||
var query = "SELECT * FROM Year";
|
var query = "SELECT * FROM Year";
|
||||||
// TODO: Left off here for the YearStore
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
yearValues = ParseData(reader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
}
|
}
|
||||||
|
|
||||||
return yearValues;
|
return yearValues;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Year GetSongYear(Year year)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
var query = "SELECT * FROM Year WHERE YearId=@YearId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@YearId", year.YearId);
|
||||||
|
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
year = ParseSingleData(reader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
|
||||||
|
return year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool DoesYearExist(Year year)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
var query = "SELECT * FROM Year WHERE YearId=@YearId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@YearId", year.YearId);
|
||||||
|
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
year = ParseSingleData(reader);
|
||||||
|
|
||||||
|
if (year.YearValue > 0)
|
||||||
|
{
|
||||||
|
_logger.Info("Year record exists");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger.Info("Year record does not exist");
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public bool DoesYearExist(Song song)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
var query = "SELECT * FROM Song WHERE Year=@Year";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@Year", song.Year);
|
||||||
|
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
var year = ParseSingleData(reader);
|
||||||
|
|
||||||
|
if (year.YearValue > 0)
|
||||||
|
{
|
||||||
|
_logger.Info("Year record exists");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger.Info("Year record does not exist");
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveYear(Year year)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
var query = "INSERT INTO Year(YearValue, SongCount) VALUES(" +
|
||||||
|
"@YearValue, @SongCount)";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@YearValue", year.YearValue);
|
||||||
|
cmd.Parameters.AddWithValue("@SongCount", year.SongCount);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void UpdateYear(Year year)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO: Add functionality for updating the Year record
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void DeleteYear(Year year)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var conn = GetConnection())
|
||||||
|
{
|
||||||
|
conn.Open();
|
||||||
|
|
||||||
|
var query = "DELETE Year WHERE YearId=@YearId";
|
||||||
|
|
||||||
|
using (var cmd = new MySqlCommand(query, conn))
|
||||||
|
{
|
||||||
|
cmd.Parameters.AddWithValue("@YearId", year.YearId);
|
||||||
|
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var msg = ex.Message;
|
||||||
|
_logger.Error(msg, "An error occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Year> ParseData(MySqlDataReader reader)
|
||||||
|
{
|
||||||
|
var yearValues = new List<Year>();
|
||||||
|
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var id = Convert.ToInt32(reader["YearId"].ToString());
|
||||||
|
var year = Convert.ToInt32(reader["YearValue"].ToString());
|
||||||
|
var songCount = Convert.ToInt32(reader["SongCount"].ToString());
|
||||||
|
|
||||||
|
yearValues.Add(new Year
|
||||||
|
{
|
||||||
|
YearId = id,
|
||||||
|
YearValue = year,
|
||||||
|
SongCount = songCount
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return yearValues;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Year ParseSingleData(MySqlDataReader reader)
|
||||||
|
{
|
||||||
|
var yearValue = new Year();
|
||||||
|
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var id = Convert.ToInt32(reader["YearId"].ToString());
|
||||||
|
var year = Convert.ToInt32(reader["YearValue"].ToString());
|
||||||
|
var songCount = Convert.ToInt32(reader["SongCount"].ToString());
|
||||||
|
|
||||||
|
yearValue.YearId = id;
|
||||||
|
yearValue.YearValue = year;
|
||||||
|
yearValue.SongCount = songCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
return yearValue;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-2
@@ -98,7 +98,6 @@ namespace Icarus
|
|||||||
|
|
||||||
var connString = Configuration.GetConnectionString("DefaultConnection");
|
var connString = Configuration.GetConnectionString("DefaultConnection");
|
||||||
|
|
||||||
// TODO: Add the Genre and Year stores #41 and #42.
|
|
||||||
services.Add(new ServiceDescriptor(typeof(MusicStoreContext),
|
services.Add(new ServiceDescriptor(typeof(MusicStoreContext),
|
||||||
new MusicStoreContext(Configuration
|
new MusicStoreContext(Configuration
|
||||||
.GetConnectionString("DefaultConnection"))));
|
.GetConnectionString("DefaultConnection"))));
|
||||||
@@ -111,6 +110,14 @@ namespace Icarus
|
|||||||
new ArtistStoreContext(Configuration
|
new ArtistStoreContext(Configuration
|
||||||
.GetConnectionString("DefaultConnection"))));
|
.GetConnectionString("DefaultConnection"))));
|
||||||
|
|
||||||
|
services.Add(new ServiceDescriptor(typeof(GenreStoreContext),
|
||||||
|
new GenreStoreContext(Configuration
|
||||||
|
.GetConnectionString("DefaultConnection"))));
|
||||||
|
|
||||||
|
services.Add(new ServiceDescriptor(typeof(YearStoreContext),
|
||||||
|
new YearStoreContext(Configuration
|
||||||
|
.GetConnectionString("DefaultConnection"))));
|
||||||
|
|
||||||
services.Add(new ServiceDescriptor(typeof(UserStoreContext),
|
services.Add(new ServiceDescriptor(typeof(UserStoreContext),
|
||||||
new UserStoreContext(Configuration
|
new UserStoreContext(Configuration
|
||||||
.GetConnectionString("DefaultConnection"))));
|
.GetConnectionString("DefaultConnection"))));
|
||||||
@@ -119,7 +126,8 @@ namespace Icarus
|
|||||||
services.AddDbContext<AlbumContext>(options => options.UseMySQL(connString));
|
services.AddDbContext<AlbumContext>(options => options.UseMySQL(connString));
|
||||||
services.AddDbContext<ArtistContext>(options => options.UseMySQL(connString));
|
services.AddDbContext<ArtistContext>(options => options.UseMySQL(connString));
|
||||||
services.AddDbContext<UserContext>(options => options.UseMySQL(connString));
|
services.AddDbContext<UserContext>(options => options.UseMySQL(connString));
|
||||||
// TODO: Add the Genre and Year contexts #41 and #42
|
services.AddDbContext<GenreContext>(options => options.UseMySQL(connString));
|
||||||
|
services.AddDbContext<YearContext>(options => options.UseMySQL(connString));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
|
|||||||
Reference in New Issue
Block a user