diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackCustomPlaylistController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackCustomPlaylistController.cs new file mode 100644 index 0000000..9021dc5 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackCustomPlaylistController.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class AddTrackCustomPlaylistController : ApiController + { + public HttpResponseMessage Get(int PlaylistID, int TrackID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + int status = sql.addToCustomPlaylist(TrackID, PlaylistID); + + message.Content = new StringContent(status.ToString()); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackPlaylistController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackPlaylistController.cs new file mode 100644 index 0000000..2b3ecda --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/AddTrackPlaylistController.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; +using TeamDBAwesome.Models; + +namespace TeamDBAwesome.Controllers +{ + public class AddTrackPlaylistController : ApiController + { + public HttpResponseMessage Get(int PlaylistID, int TrackID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + int status = sql.addToPlaylist(TrackID, PlaylistID); + + message.Content = new StringContent(status.ToString()); + + return message; + } + + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/CreateOrderController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/CreateOrderController.cs new file mode 100644 index 0000000..5f1b48c --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/CreateOrderController.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class CreateOrderController : ApiController + { + public HttpResponseMessage Get(int CustomerID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + int newOrder = sql.createOrder(CustomerID); + + message.Content = new StringContent(newOrder.ToString()); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/RemoveCustomTrackController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/RemoveCustomTrackController.cs new file mode 100644 index 0000000..74a044c --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/RemoveCustomTrackController.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class RemoveCustomTrackController : ApiController + { + public HttpResponseMessage Get(int PlaylistID, int TrackID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + int status = sql.removeFromCustomPlaylist(TrackID, PlaylistID); + + message.Content = new StringContent(status.ToString()); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/RemoveTrackController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/RemoveTrackController.cs new file mode 100644 index 0000000..56344e6 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/RemoveTrackController.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; + +namespace TeamDBAwesome.Controllers +{ + public class RemoveTrackController : ApiController + { + public HttpResponseMessage Get(int PlaylistID, int TrackID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + int status = sql.removeFromPlaylist(TrackID, PlaylistID); + + message.Content = new StringContent(status.ToString()); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index 25eefa1..6c6f1a5 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -142,6 +142,96 @@ namespace TeamDBAwesome.SqlService } + public int addToPlaylist(int trackid, int playlistid) + { + bool connect = this.OpenConnection(); + if(connect == true) + { + string insert = "INSERT INTO PlaylistTrack (PlaylistId,TrackId) VALUES (" + playlistid + "," + trackid + ")"; + MySqlCommand command = new MySqlCommand(insert, SqlConn); + command.ExecuteNonQuery(); + return 0; + } + else + { + return 1; + } + + } + + public int addToCustomPlaylist(int trackid, int playlistid) + { + bool connect = this.OpenConnection(); + if (connect == true) + { + string insert = "INSERT INTO MyPlaylistTrack (PlaylistId,TrackId) VALUES (" + playlistid + "," + trackid + ")"; + MySqlCommand command = new MySqlCommand(insert, SqlConn); + command.ExecuteNonQuery(); + return 0; + } + else + { + return 1; + } + + } + + public int removeFromCustomPlaylist(int trackid, int playlistid) + { + bool connect = this.OpenConnection(); + if (connect == true) + { + string insert = "DELETE FROM MyPlaylistTrack WHERE PlaylistId = " + playlistid + " AND TrackId = " + trackid; + MySqlCommand command = new MySqlCommand(insert, SqlConn); + command.ExecuteNonQuery(); + return 0; + } + else + { + return 1; + } + + } + + public int removeFromPlaylist(int trackid, int playlistid) + { + bool connect = this.OpenConnection(); + if (connect == true) + { + string insert = "DELETE FROM PlaylistTrack WHERE PlaylistId = " + playlistid + " AND TrackId = " + trackid; + MySqlCommand command = new MySqlCommand(insert, SqlConn); + command.ExecuteNonQuery(); + return 0; + } + else + { + return 1; + } + + } + + public int createOrder(int custId) + { + bool open = this.OpenConnection(); + if(open == true) + { + string insert = "INSERT INTO Orders (CustomerId) VALUES (" + custId + ")"; + MySqlCommand command = new MySqlCommand(insert, SqlConn); + command.ExecuteNonQuery(); + + string pk_query = "SELECT LAST_INSERT_ID()"; + command = new MySqlCommand(pk_query, SqlConn); + int newOrderID = int.Parse(command.ExecuteScalar() + ""); + + + return newOrderID; + } + else + { + return 0; + } + } + /// /// adds a payment type to the database /// @@ -459,7 +549,7 @@ namespace TeamDBAwesome.SqlService return searchresult; } } - + public int NewCustomPlaylist(CustomPlaylistId playlist) { bool open = this.OpenConnection(); @@ -637,7 +727,7 @@ namespace TeamDBAwesome.SqlService if(open == true) { string query = "select track.TrackId as TrackID, track.Name as trackname,track.Composer as trackcomposer, " + - "track.Milliseconds,track.Bytes, track.UnitPrice, Album.Title as albumtitle,MediaType.Name as mediatype, " + + "track.Milliseconds,track.Bytes, track.UnitPrice, Album.Title as albumtitle,MediaType.Name as mediatype, artist.name as artist, " + "Genre.Name as genre " + "from track " + "left join playlisttrack on track.TrackId = playlisttrack.trackid " + @@ -645,6 +735,7 @@ namespace TeamDBAwesome.SqlService "left join Album on track.AlbumId = Album.AlbumId " + "left join mediatype on track.MediaTypeId=mediatype.MediaTypeId " + "left join genre on track.GenreId = genre.GenreId " + + "left join artist on album.artistid = artist.artistid " + "where playlist.PlaylistId = " + PlaylistID; MySqlCommand cmd = new MySqlCommand(query, SqlConn); @@ -666,6 +757,7 @@ namespace TeamDBAwesome.SqlService track.AlbumTitle = GetDBString("albumtitle", reader); track.MediaType = GetDBString("mediatype", reader); track.Genre = GetDBString("genre", reader); + track.artist = GetDBString("artist", reader); tracklist.Add(track); } @@ -688,7 +780,7 @@ namespace TeamDBAwesome.SqlService if (open == true) { string query = "select track.TrackId as TrackID, track.Name as trackname,track.Composer as trackcomposer, " + - "track.Milliseconds,track.Bytes, track.UnitPrice, Album.Title as albumtitle,MediaType.Name as mediatype, " + + "track.Milliseconds,track.Bytes, track.UnitPrice, Album.Title as albumtitle,MediaType.Name as mediatype, artist.name as artist, " + "Genre.Name as genre " + "from track " + "left join MyPlaylistTrack on track.TrackId = MyPlaylistTrack.trackid " + @@ -696,6 +788,7 @@ namespace TeamDBAwesome.SqlService "left join Album on track.AlbumId = Album.AlbumId " + "left join mediatype on track.MediaTypeId=mediatype.MediaTypeId " + "left join genre on track.GenreId = genre.GenreId " + + "left join artist on album.artistid = artist.artistid " + "where playlist.PlaylistId = " + PlaylistID; MySqlCommand cmd = new MySqlCommand(query, SqlConn); @@ -717,6 +810,7 @@ namespace TeamDBAwesome.SqlService track.AlbumTitle = GetDBString("albumtitle", reader); track.MediaType = GetDBString("mediatype", reader); track.Genre = GetDBString("genre", reader); + track.artist = GetDBString("artist", reader); tracklist.Add(track); } diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index 2dee957..44eccf4 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -166,6 +166,9 @@ + + + @@ -177,6 +180,8 @@ + + diff --git a/chinookmodel.mwb b/chinookmodel.mwb index 2397d0f..d896264 100644 Binary files a/chinookmodel.mwb and b/chinookmodel.mwb differ diff --git a/chinookmodel.mwb.bak b/chinookmodel.mwb.bak index 4e36f1e..2397d0f 100644 Binary files a/chinookmodel.mwb.bak and b/chinookmodel.mwb.bak differ