From d6de9da68745583242b87a38d622cfd926b42afd Mon Sep 17 00:00:00 2001 From: Jeremy Mill Date: Thu, 3 Dec 2015 17:35:11 -0500 Subject: [PATCH] added GetPlaylist controller API ref not updated yet, but it's http://localhost:50031/api/GetPlaylist?PlaylistID=3 --- .../Controllers/GetPlaylistController.cs | 30 +++++++++++++ .../TeamDBAwesome/SqlService/MySqlService.cs | 45 +++++++++++++++++++ .../TeamDBAwesome/TeamDBAwesome.csproj | 1 + 3 files changed, 76 insertions(+) create mode 100644 TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistController.cs diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistController.cs new file mode 100644 index 0000000..7bc47f4 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetPlaylistController.cs @@ -0,0 +1,30 @@ +using Newtonsoft.Json; +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 GetPlaylistController : ApiController + { + public HttpResponseMessage Get(int PlaylistID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + List trackList = sql.GetPlayListTracks(PlaylistID); + + string serialzed = JsonConvert.SerializeObject(trackList); + + message.Content = new StringContent(serialzed); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index e9db24f..80ae9f8 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -479,6 +479,51 @@ namespace TeamDBAwesome.SqlService return payList; } + public List GetPlayListTracks(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 playlisttrack on track.TrackId = playlisttrack.trackid " + + "left join playlist on playlist.PlaylistId = playlisttrack.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; + } /// /// Gets a track from the DB diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index 2376ab6..bcb7e93 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -166,6 +166,7 @@ +