From 739e072e7d90e8edcb80bcb4958ed2fdebe69c59 Mon Sep 17 00:00:00 2001 From: Jeremy Mill Date: Sat, 5 Dec 2015 18:31:00 -0500 Subject: [PATCH] updated search to include only tracks --- .../TeamDBAwesome/Models/SearchResult.cs | 16 ++-- .../TeamDBAwesome/SqlService/MySqlService.cs | 94 ++++++++++++++----- 2 files changed, 80 insertions(+), 30 deletions(-) diff --git a/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs b/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs index c2f77c7..ea1180a 100644 --- a/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs +++ b/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs @@ -7,22 +7,22 @@ namespace TeamDBAwesome.Models { public class SearchResult { - public List Media { get; set; } - public List Album { get; set; } - public List Artist { get; set; } + public List Media { get; set; } + public List Album { get; set; } + public List Artist { get; set; } public List Track { get; set; } //pretty sure I don't need this public List Composer { get; set; } - public List Genre { get; set; } + public List Genre { get; set; } public SearchResult() { - Media = new List(); - Album = new List(); - Artist = new List(); + Media = new List(); + Album = new List(); + Artist = new List(); Track = new List(); Composer = new List(); - Genre = new List(); + Genre = new List(); } } diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index bee104e..e2b5a5d 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -294,20 +294,37 @@ namespace TeamDBAwesome.SqlService //need to write some logic to see any of the fields are blank, otherwise do each search, and add them to the lists in result Dictionary queries = new Dictionary(); - queries.Add("Media", "select * from chinook.mediatype where name like \'%" + search.Media + "%\' "); - queries.Add("Album", "select * from chinook.album where Title like \'%" + search.Album + "%\' "); - queries.Add("Artist", "select * from chinook.artist where name like \'%" + search.Artist + "%\' "); + string mediaQuery = "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, artist.Name as artist " + + "from track 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 MediaType.Name like \'%" + search.Media + "%\'"; + + queries.Add("Media", mediaQuery); + + string albumQuery = "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, artist.Name as artist " + + "from track 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 album.Title like \'%" + search.Album + "%\'"; + + queries.Add("Album", albumQuery); + + string artistQuery = "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, artist.Name as artist " + + "from track 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 artist.Name like \'%" + search.Artist + "%\'"; + + queries.Add("Artist", artistQuery); string trackQuery = "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 Album on track.AlbumId = Album.AlbumId left join mediatype on track.MediaTypeId=mediatype.MediaTypeId left join genre on track.GenreId = genre.GenreId " + + "Album.Title as albumtitle,MediaType.Name as mediatype,Genre.Name as genre, artist.Name as artist " + + "from track 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 track.Name like \'%" + search.Track + "%\'"; queries.Add("Track", trackQuery); string composerQuery = "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 Album on track.AlbumId = Album.AlbumId left join mediatype on track.MediaTypeId=mediatype.MediaTypeId left join genre on track.GenreId = genre.GenreId " + + "Album.Title as albumtitle,MediaType.Name as mediatype,Genre.Name as genre, artist.Name as artist " + + "from track 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 track.Composer like \'%" + search.Composer + "%\'"; queries.Add("Composer", composerQuery); @@ -332,27 +349,50 @@ namespace TeamDBAwesome.SqlService { if (key.Key == "Media") { - searchresult.Media.Add(new Media + searchresult.Media.Add(new Track { - MediaTypeId = int.Parse(GetDBString("MediaTypeId", reader)), - Name = GetDBString("Name", reader) + TrackId = int.Parse(GetDBString("TrackId", reader)), + TrackName = GetDBString("trackname", reader), + Composer = GetDBString("trackcomposer", reader), + Milliseconds = int.Parse(GetDBString("Milliseconds", reader)), + Bytes = int.Parse(GetDBString("Bytes", reader)), + UnitPrice = float.Parse(GetDBString("UnitPrice", reader)), + AlbumTitle = GetDBString("albumtitle", reader), + MediaType = GetDBString("mediatype", reader), + Genre = GetDBString("genre", reader), + artist = GetDBString("artist",reader) }); } else if (key.Key == "Album") { - searchresult.Album.Add(new Album + searchresult.Album.Add(new Track { - AlbumId = int.Parse(GetDBString("AlbumId", reader)), - ArtistId = int.Parse(GetDBString("ArtistId", reader)), - Title = GetDBString("Title", reader) + TrackId = int.Parse(GetDBString("TrackId", reader)), + TrackName = GetDBString("trackname", reader), + Composer = GetDBString("trackcomposer", reader), + Milliseconds = int.Parse(GetDBString("Milliseconds", reader)), + Bytes = int.Parse(GetDBString("Bytes", reader)), + UnitPrice = float.Parse(GetDBString("UnitPrice", reader)), + AlbumTitle = GetDBString("albumtitle", reader), + MediaType = GetDBString("mediatype", reader), + Genre = GetDBString("genre", reader), + artist = GetDBString("artist", reader) }); } else if (key.Key == "Artist") { - searchresult.Artist.Add(new Artist + searchresult.Artist.Add(new Track { - ArtistId = int.Parse(GetDBString("ArtistId", reader)), - Name = GetDBString("Name", reader) + TrackId = int.Parse(GetDBString("TrackId", reader)), + TrackName = GetDBString("trackname", reader), + Composer = GetDBString("trackcomposer", reader), + Milliseconds = int.Parse(GetDBString("Milliseconds", reader)), + Bytes = int.Parse(GetDBString("Bytes", reader)), + UnitPrice = float.Parse(GetDBString("UnitPrice", reader)), + AlbumTitle = GetDBString("albumtitle", reader), + MediaType = GetDBString("mediatype", reader), + Genre = GetDBString("genre", reader), + artist = GetDBString("artist", reader) }); } else if (key.Key == "Track") @@ -367,7 +407,8 @@ namespace TeamDBAwesome.SqlService UnitPrice = float.Parse(GetDBString("UnitPrice", reader)), AlbumTitle = GetDBString("albumtitle", reader), MediaType = GetDBString("mediatype", reader), - Genre = GetDBString("genre", reader) + Genre = GetDBString("genre", reader), + artist = GetDBString("artist", reader) }); } else if (key.Key == "Composer") @@ -382,15 +423,24 @@ namespace TeamDBAwesome.SqlService UnitPrice = float.Parse(GetDBString("UnitPrice", reader)), AlbumTitle = GetDBString("albumtitle", reader), MediaType = GetDBString("mediatype", reader), - Genre = GetDBString("genre", reader) + Genre = GetDBString("genre", reader), + artist = GetDBString("artist", reader) }); } else if (key.Key == "Genre") { - searchresult.Genre.Add(new Genre + searchresult.Genre.Add(new Track { - GenreId = int.Parse(GetDBString("GenreId", reader)), - Name = GetDBString("Name", reader) + TrackId = int.Parse(GetDBString("TrackId", reader)), + TrackName = GetDBString("trackname", reader), + Composer = GetDBString("trackcomposer", reader), + Milliseconds = int.Parse(GetDBString("Milliseconds", reader)), + Bytes = int.Parse(GetDBString("Bytes", reader)), + UnitPrice = float.Parse(GetDBString("UnitPrice", reader)), + AlbumTitle = GetDBString("albumtitle", reader), + MediaType = GetDBString("mediatype", reader), + Genre = GetDBString("genre", reader), + artist = GetDBString("artist", reader) }); } }