From 2e5fc64ceb70abb937c7ef2c9c73211f167eb2ab Mon Sep 17 00:00:00 2001 From: Jeremy Mill Date: Thu, 3 Dec 2015 17:58:39 -0500 Subject: [PATCH] playlist API's are up --- .../GetCustomPlaylistController.cs | 30 +++++ .../GetCustomPlaylistsController.cs | 30 +++++ .../Controllers/GetPlaylistListController.cs | 31 +++++ .../TeamDBAwesome/Models/Playlist.cs | 13 ++ .../TeamDBAwesome/SqlService/MySqlService.cs | 116 +++++++++++++++++- .../TeamDBAwesome/TeamDBAwesome.csproj | 4 + 6 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistController.cs create mode 100644 TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistsController.cs create mode 100644 TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistListController.cs create mode 100644 TeamDBAwesome/TeamDBAwesome/Models/Playlist.cs diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistController.cs new file mode 100644 index 0000000..10753b5 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistController.cs @@ -0,0 +1,30 @@ +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; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetCustomPlaylistController : ApiController + { + public HttpResponseMessage Get(int PlaylistID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + List trackList = sql.GetCustomPlayListTracks(PlaylistID); + + string serialzed = JsonConvert.SerializeObject(trackList); + + message.Content = new StringContent(serialzed); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistsController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistsController.cs new file mode 100644 index 0000000..b795e6a --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetCustomPlaylistsController.cs @@ -0,0 +1,30 @@ +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; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetCustomPlaylistsController : ApiController + { + public HttpResponseMessage Get(int CustomerID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + List playlistList = sql.GetCustomPlaylist(CustomerID); + + string serialzed = JsonConvert.SerializeObject(playlistList); + + message.Content = new StringContent(serialzed); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistListController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistListController.cs new file mode 100644 index 0000000..2a13792 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistListController.cs @@ -0,0 +1,31 @@ +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; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetPlaylistListController : ApiController + { + public HttpResponseMessage Get() + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + List playlistList = sql.GetPlaylists(); + + string serialzed = JsonConvert.SerializeObject(playlistList); + + message.Content = new StringContent(serialzed); + + return message; + } + + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Playlist.cs b/TeamDBAwesome/TeamDBAwesome/Models/Playlist.cs new file mode 100644 index 0000000..86cc668 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Playlist.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Playlist + { + public int PlaylistID { get; set; } + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index 80ae9f8..bee104e 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -477,8 +477,13 @@ namespace TeamDBAwesome.SqlService return payList; - } + } + /// + /// Get A preformed playlist + /// + /// ID of a preformed playlist + /// List of tracks public List GetPlayListTracks(int PlaylistID) { List tracklist = new List(); @@ -525,6 +530,115 @@ namespace TeamDBAwesome.SqlService return tracklist; } + /// + /// send it a playlist ID, get a list of tracks + /// + /// ID of a custom playlist + /// list of tracks + public List GetCustomPlayListTracks(int PlaylistID) + { + List tracklist = new List(); + bool open = this.OpenConnection(); + 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, " + + "Genre.Name as genre " + + "from track " + + "left join MyPlaylistTrack on track.TrackId = MyPlaylistTrack.trackid " + + "left join MyPlayList on MyPlayList.PlaylistId = MyPlaylistTrack.PlaylistId " + + "left join Album on track.AlbumId = Album.AlbumId " + + "left join mediatype on track.MediaTypeId=mediatype.MediaTypeId " + + "left join genre on track.GenreId = genre.GenreId " + + "where playlist.PlaylistId = " + PlaylistID; + + MySqlCommand cmd = new MySqlCommand(query, SqlConn); + + MySqlDataReader reader = cmd.ExecuteReader(); + + Track track; + + while (reader.Read()) + { + track = new Track(); + + track.TrackId = int.Parse(GetDBString("TrackId", reader)); + track.TrackName = GetDBString("trackname", reader); + track.Composer = GetDBString("trackcomposer", reader); + track.Milliseconds = int.Parse(GetDBString("Milliseconds", reader)); + track.Bytes = int.Parse(GetDBString("Bytes", reader)); + track.UnitPrice = float.Parse(GetDBString("UnitPrice", reader)); + track.AlbumTitle = GetDBString("albumtitle", reader); + track.MediaType = GetDBString("mediatype", reader); + track.Genre = GetDBString("genre", reader); + + tracklist.Add(track); + } + + } + + + return tracklist; + } + + public List GetPlaylists() + { + List playlistList = new List(); + bool open = this.OpenConnection(); + if (open == true) + { + string query = "Select * from chinook.playlist"; + + MySqlCommand cmd = new MySqlCommand(query, SqlConn); + + MySqlDataReader reader = cmd.ExecuteReader(); + + Playlist playlist; + + while (reader.Read()) + { + playlist = new Playlist(); + + playlist.PlaylistID = int.Parse(GetDBString("PlaylistId", reader)); + playlist.Name = GetDBString("Name", reader); + + playlistList.Add(playlist); + } + } + + + return playlistList; + } + + public List GetCustomPlaylist(int CustomerID) + { + List playlistList = new List(); + bool open = this.OpenConnection(); + if (open == true) + { + string query = "Select * from chinook.myplaylist where CustomerID = " + CustomerID; + + MySqlCommand cmd = new MySqlCommand(query, SqlConn); + + MySqlDataReader reader = cmd.ExecuteReader(); + + Playlist playlist; + + while (reader.Read()) + { + playlist = new Playlist(); + + playlist.PlaylistID = int.Parse(GetDBString("PlaylistId", reader)); + playlist.Name = GetDBString("Name", reader); + + playlistList.Add(playlist); + } + } + + + return playlistList; + } + /// /// Gets a track from the DB /// diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index bcb7e93..20b6eb5 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -165,8 +165,11 @@ + + + @@ -182,6 +185,7 @@ +