diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/AddAlbumController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/AddAlbumController.cs new file mode 100644 index 0000000..bdfa0a5 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/AddAlbumController.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.Models; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class AddAlbumController : ApiController + { + public HttpResponseMessage Post([FromBody] Album album) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + MySqlService sql = new MySqlService(); + int newAlbum = sql.addAlbum(album); + message.Content = new StringContent(newAlbum.ToString()); + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/AddArtistController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/AddArtistController.cs new file mode 100644 index 0000000..725450d --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/AddArtistController.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.Models; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class AddArtistController : ApiController + { + public HttpResponseMessage Post([FromBody] Artist artist) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + MySqlService sql = new MySqlService(); + int newArtist = sql.AddArtist(artist); + message.Content = new StringContent(newArtist.ToString()); + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackController.cs new file mode 100644 index 0000000..064ef86 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackController.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.Models; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class AddTrackController : ApiController + { + public HttpResponseMessage Post([FromBody]Track track) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + int response = sql.AddTrack(track); + + message.Content = new StringContent(response.ToString()); + + return message; + + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Album.cs b/TeamDBAwesome/TeamDBAwesome/Models/Album.cs index e08d95b..ece99ee 100644 --- a/TeamDBAwesome/TeamDBAwesome/Models/Album.cs +++ b/TeamDBAwesome/TeamDBAwesome/Models/Album.cs @@ -9,6 +9,6 @@ namespace TeamDBAwesome.Models { public int AlbumId { get; set; } public string Title { get; set; } - public int ArtistId { get; set; } + public string Artist { get; set; } } } \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index 37ae4a4..2a047be 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -142,6 +142,130 @@ namespace TeamDBAwesome.SqlService } + public int AddTrack(Track track) + { + bool open = this.OpenConnection(); + if(open == true) + { + string lastTackQuery = "select TrackId from track order by trackid desc limit 1"; + MySqlCommand cmd = new MySqlCommand(lastTackQuery, SqlConn); + int nextNum = int.Parse(cmd.ExecuteScalar() + "") + 1; + + string albumAndArtistQuery = "select AlbumId,ArtistID from album left join artist on album.artistid = artist.artistid " + + "where Title = " + track.AlbumTitle + " and Name = " + track.artist; + cmd = new MySqlCommand(albumAndArtistQuery, SqlConn); + MySqlDataReader reader = cmd.ExecuteReader(); + string albumidstring = "", artistidstring = ""; + int artistid = 0, albumid = 0; + while (reader.Read()) + { + albumidstring = (GetDBString("AlbumID", reader)); + if (String.IsNullOrEmpty(albumidstring)) + { + albumid = 0; + } + else { albumid = int.Parse(albumidstring); } + + artistidstring = GetDBString("ArtistID", reader); + if(String.IsNullOrEmpty(artistidstring)) { artistid = 0; } + else { artistid = int.Parse(artistidstring); } + } + reader.Close(); + + int mediatypeid = 0; + string mediatypeQuery = "select MediaTypeId from mediatype where Name = " + track.MediaType; + cmd = new MySqlCommand(mediatypeQuery, SqlConn); + string mediaTypeIdString = cmd.ExecuteScalar() + ""; + if(String.IsNullOrEmpty(mediaTypeIdString)) + { + return 0; + } + else + { + mediatypeid = int.Parse(mediaTypeIdString); + } + + int genreId=0; + string genreIdQuery = "select mediatypeid from mediatype where Name = " + track.MediaType; + cmd = new MySqlCommand(genreIdQuery, SqlConn); + string genreIdString = cmd.ExecuteScalar() + ""; + if (String.IsNullOrEmpty(genreIdString)) + { + return 0; + } + else + { + genreId = int.Parse(genreIdString); + } + + + if (artistid == 0 || albumid == 0) + { + return 0; + } + + string insert = "insert into track(TrackId,Name,AlbumId,MediaTypeId,GenreId,Composer,Milliseconds,Bytes,UnitPrice) " + + "VALUES (" + nextNum + ",\"" + track.TrackName + "\"," + albumid + "," + mediatypeid + "," + genreId + ",\"" + track.Composer + + "\"," + track.Milliseconds + "," + track.Bytes + "," + track.UnitPrice + ")"; + cmd = new MySqlCommand(insert, SqlConn); + cmd.ExecuteNonQuery(); + return nextNum; + } + else + { + return 0; + } + } + + public int AddArtist(Artist artist) + { + bool open = this.OpenConnection(); + if(open == true) + { + string lastArtistQuery = "select ArtistId from artist order by ArtistId desc limit 1"; + MySqlCommand cmd = new MySqlCommand(lastArtistQuery, SqlConn); + int nextNum = int.Parse(cmd.ExecuteScalar() + "") + 1; + + string insert = "insert into artist(ArtistId,Name) VALUES (" + nextNum + ",\"" + artist.Name + "\")"; + cmd = new MySqlCommand(insert, SqlConn); + cmd.ExecuteNonQuery(); + + return nextNum; + } + else + { + return 0; + } + } + + public int addAlbum(Album album) + { + bool open = this.OpenConnection(); + if(open == true) + { + string lastArtistQuery = "select AlbumId from album order by AlbumId desc limit 1"; + MySqlCommand cmd = new MySqlCommand(lastArtistQuery, SqlConn); + int nextNum = int.Parse(cmd.ExecuteScalar() + "") + 1; + + int artistId = 0; + string getArtistIdQuery = "select ArtistId from artist where name = " + album.Artist; + cmd = new MySqlCommand(getArtistIdQuery, SqlConn); + string idString = cmd.ExecuteScalar() + ""; + if(String.IsNullOrEmpty(idString)) { return 0; } + else { artistId = int.Parse(idString); } + + string insert = "insert into album(AlbumId,Title,ArtistId) VALUES (" + nextNum + ",\"" + album.Title + "\"," + idString + ")"; + cmd = new MySqlCommand(insert, SqlConn); + cmd.ExecuteNonQuery(); + + return nextNum; + } + else + { + return 0; + } + } + public int addToPlaylist(int trackid, int playlistid) { bool connect = this.OpenConnection(); diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index c376ff3..2057a37 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -163,9 +163,12 @@ + + +