public ActionResult Index(RecommendationViewModel model) { Populate(model); if (!model.GenreQuery.Any() && !model.MoodQuery.Any() && !model.StyleQuery.Any() && !model.StartYearQuery.HasValue && !model.EndYearQuery.HasValue) { ModelState.AddModelError("Query", "Please select something!"); } if (!ModelState.IsValid) { return(View(model)); } var args = new RecommendationQueryArgs { Genre = model.GenreQuery, Mood = model.MoodQuery, Style = model.StyleQuery, StartYear = model.StartYearQuery, EndYear = model.EndYearQuery }; model.Artists = _service.GetArtists(args); model.Songs = _service.GetSongs(args); model.IsSearch = true; return(View(model)); }
public List <Song> GetSongs(RecommendationQueryArgs args) { var request = _apiClient.CreateRequest("song/search"); AddSearchArgs(request, args); request.AddQueryParameter("sort", "artist_familiarity-desc"); var response = _apiClient.Execute <SongSearchResponse>(request); return(response.Songs); }
public List <Artist> GetArtists(RecommendationQueryArgs args) { var request = _apiClient.CreateRequest("artist/search"); AddSearchArgs(request, args); request.TryAddQueryParameter("genre", args.Genre); request.AddQueryParameter("sort", "familiarity-desc"); var response = _apiClient.Execute <ArtistSearchResponse>(request); return(response.Artists); }
public void RecommendationTest() { RecommendationQueryArgs args = new RecommendationQueryArgs { Mood = new List <string>() { "angry" } }; var service = new RecommendationService(_dataProvider); var artists = service.GetArtists(args); var songs = service.GetSongs(args); Assert.IsNotNull(artists); Assert.IsNotNull(songs); }
private static void AddSearchArgs(RestRequest request, RecommendationQueryArgs args) { request.AddQueryParameter("rank_type", "familiarity"); request.TryAddQueryParameter("mood", args.Mood); request.TryAddQueryParameter("style", args.Style); if (args.StartYear.HasValue) { request.AddQueryParameter("artist_start_year_after", (args.StartYear - 1).ToString()); request.AddQueryParameter("artist_end_year_after", args.StartYear.ToString()); } if (args.EndYear.HasValue) { request.AddQueryParameter("artist_end_year_before", (args.EndYear + 1).ToString()); request.AddQueryParameter("artist_start_year_before", args.EndYear.ToString()); } }
public List <Song> GetSongs(RecommendationQueryArgs args) { return(DataProvider.GetSongs(args)); }
public List <Artist> GetArtists(RecommendationQueryArgs args) { return(DataProvider.GetArtists(args)); }