diff --git a/API_REF.xlsx b/API_REF.xlsx index 631f7a5..dadd420 100644 Binary files a/API_REF.xlsx and b/API_REF.xlsx differ diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/SearchController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/SearchController.cs new file mode 100644 index 0000000..4f3eb97 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/SearchController.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Text.RegularExpressions; +using System.Web.Http; +using TeamDBAwesome.Models; + +namespace TeamDBAwesome.Controllers +{ + public class SearchController : ApiController + { + // GET: api/Search + public HttpResponseMessage Get(string search="") + { + //make the message that we are going to return + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + //by default we're going to return everything, unless we get something with the expression type:'type' + //for instance type:artist will only return artist types + Regex regex = new Regex("type:(Media|Album|Artist|Track|Composer|Genre)"); + MatchCollection m = regex.Matches(search); + Debug.WriteLine(m); + Search dbsearch = new Search(); + if(m.Count > 0) + { + //set each one to blank first + dbsearch.Media = ""; + dbsearch.Album = ""; + dbsearch.Artist = ""; + dbsearch.Track = ""; + dbsearch.Composer = ""; + dbsearch.Genre = ""; + + foreach (Match match in m) + { + string tag = match.Value.Split(':')[1]; + if (tag == "Media") { dbsearch.Media = search; } + else if (tag == "Album") { dbsearch.Album = search; } + else if (tag == "Artist") { dbsearch.Artist = search; } + else if (tag == "Track") { dbsearch.Track = search; } + else if (tag == "Composer") { dbsearch.Composer = search; } + else if (tag == "Genre") { dbsearch.Genre = search; } + } + } + else + { + dbsearch.Media = search; + dbsearch.Album = search; + dbsearch.Artist = search; + dbsearch.Track = search; + dbsearch.Composer = search; + dbsearch.Genre = search; + } + //return it + return message; + } + + + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Album.cs b/TeamDBAwesome/TeamDBAwesome/Models/Album.cs new file mode 100644 index 0000000..e08d95b --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Album.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Album + { + public int AlbumId { get; set; } + public string Title { get; set; } + public int ArtistId { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Artist.cs b/TeamDBAwesome/TeamDBAwesome/Models/Artist.cs new file mode 100644 index 0000000..d332660 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Artist.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Artist + { + public int ArtistId { get; set; } + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Genre.cs b/TeamDBAwesome/TeamDBAwesome/Models/Genre.cs new file mode 100644 index 0000000..145b361 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Genre.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Genre + { + public int GenreId { get; set; } + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Media.cs b/TeamDBAwesome/TeamDBAwesome/Models/Media.cs new file mode 100644 index 0000000..3e04248 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Media.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Media + { + //as a note, in the DB this is mediatype + public int MediaTypeId { get; set; } + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Search.cs b/TeamDBAwesome/TeamDBAwesome/Models/Search.cs new file mode 100644 index 0000000..3476702 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Search.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Search + { + public string Media { get; set; } + public string Album { get; set; } + public string Artist { get; set; } + public string Track { get; set; } + public string Composer { get; set; } + public string Genre { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs b/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs new file mode 100644 index 0000000..d06cbb8 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/SearchResult.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class SearchResult + { + List Media { get; set; } + List Album { get; set; } + List Artist { get; set; } + List Track { get; set; } + List Composer { get; set; } + List Genre { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Track.cs b/TeamDBAwesome/TeamDBAwesome/Models/Track.cs new file mode 100644 index 0000000..181b954 --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Models/Track.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace TeamDBAwesome.Models +{ + public class Track + { + public int TrackId { get; set; } + public string Name { get; set; } + public int AlbumId { get; set; } + public int MediaTypeId { get; set; } + public int GenreId { get; set; } + public string Composer { get; set; } + public int Milliseconds { get; set; } + public int Bytes { get; set; } + public float UnitPrice { get; set; } + } +} \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index 014cda3..72ec1da 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -166,9 +166,30 @@ public Customer GetCustomer(int PersonID) } } + private string GetDBString(string SqlFieldName, MySqlDataReader Reader) { return Reader[SqlFieldName].Equals(DBNull.Value) ? String.Empty : Reader.GetString(SqlFieldName); } + + public SearchResult Search(Search search) + { + bool open = this.OpenConnection(); + SearchResult result = new SearchResult(); + + if(open == true) + { + //do the search + //need to make the track, album, genre,media,composer, artist models + //nope. composer is inside of track + } + else + { + //handle a failure + } + + + return result; + } } } \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index b3db73d..92c7571 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -166,6 +166,7 @@ + Global.asax