diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetAllTracksController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetAllTracksController.cs new file mode 100644 index 0000000..4a56818 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetAllTracksController.cs @@ -0,0 +1,33 @@ +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; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetAllTracksController : ApiController + { + public HttpResponseMessage Get() + { + MySqlService dbService = new MySqlService(); + + List trackList = dbService.getAllTracks(); + foreach (Track track in trackList) + { + track.url = "http://a1310.phobos.apple.com/us/r1000/167/Music3/v4/00/23/38/0023383d-1616-fbe2-b3a3-7f2de268911b/mzaf_7209253486009554987.plus.aac.p.m4a"; + } + string serialzed = JsonConvert.SerializeObject(trackList); + + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + message.Content = new StringContent(serialzed); + + return message; + + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetDemographicController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetDemographicController.cs new file mode 100644 index 0000000..56837fb --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetDemographicController.cs @@ -0,0 +1,29 @@ +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; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetDemographicController : ApiController + { + public HttpResponseMessage Get() + { + MySqlService dbService = new MySqlService(); + + List demoList = dbService.getDemos(); + string serialzed = JsonConvert.SerializeObject(demoList); + + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + message.Content = new StringContent(serialzed); + + return message; + + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Models/DemoGraph.cs b/TeamDBAwesome/TeamDBAwesome/Models/DemoGraph.cs new file mode 100644 index 0000000..d83d9ca --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/DemoGraph.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class DemoGraph + { + public string country { get; set; } + public int count { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index bb9768e..202cc94 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -772,6 +772,73 @@ namespace TeamDBAwesome.SqlService return trackList; } + public List getDemos() + { + List demoList = new List(); + bool open = this.OpenConnection(); + if(open == true) + { + string query = "select country,count(*) from customer left join person on customer.PersonId = person.PersonId group by Country"; + MySqlCommand cmd = new MySqlCommand(query, SqlConn); + MySqlDataReader reader = cmd.ExecuteReader(); + while(reader.Read()) + { + demoList.Add(new DemoGraph + { + country = GetDBString("Country", reader), + count = int.Parse(GetDBString("count", reader)) + }); + } + reader.Close(); + } + return demoList; + } + + public List getAllTracks() + { + 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, artist.name as artist, " + + "Genre.Name as genre " + + "from track " + + "left join ordertracks on track.TrackId = ordertracks.trackid " + + "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 ordertracks.orderid = " + orderId; + + 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); + track.artist = GetDBString("artist", reader); + + trackList.Add(track); + } + } + + return trackList; + } + public List customerOrders(int custId) { List id_list = new List(); diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index 5b2972b..386ee36 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -179,11 +179,13 @@ + + @@ -204,6 +206,7 @@ +