public async Task <IEnumerable <Artist> > GetArtists(string nameQuery) { SearchArtistResponse searchArtistResponse = await _spotifyService.SearchArtistsAsync(nameQuery); return(searchArtistResponse .Artists .Items); }
private List <CN.UppgiftBE.Web.Models.Artist> Map(SearchArtistResponse searchArtistResponse) { var filterSearchArtistResponse = searchArtistResponse?.Artists.Items.Select(a => new CN.UppgiftBE.Web.Models.Artist { Name = a.Name, Genres = a.Genres, Id = a.Id, ImageUrl = a.Images.Select(i => i.Url).FirstOrDefault(), Popularity = a.Popularity }) ?? new List <CN.UppgiftBE.Web.Models.Artist>(); return(filterSearchArtistResponse.OrderByDescending(a => a.Popularity).ToList()); }
public SearchArtistResponse Get(string searchCriteria, int pageNumber = 0, int pageSize = 30) { var response = new SearchArtistResponse() { NumberOfPages = "0", NumberOfSearchResults = 0, Page = pageNumber.ToString(), PageSize = pageSize.ToString(), Results = new List <ArtistModel>() }; if (string.IsNullOrWhiteSpace(searchCriteria)) { return(response); } var resultsCount = _dbContext.Artists.Where(x => x.Name.Contains(searchCriteria)) .OrderBy(x => x.Name); var resultsPaged = _dbContext.Artists.Where(x => x.Name.Contains(searchCriteria)) .OrderBy(x => x.Name) .Skip(pageNumber * pageSize) .Take(pageSize); response.NumberOfSearchResults = resultsCount.Count(); response.NumberOfPages = Math.Ceiling((decimal)response.NumberOfSearchResults / pageSize) .ToString(CultureInfo.InvariantCulture); foreach (var item in resultsPaged) { response.Results.Add(new ArtistModel() { Name = item.Name, Country = item.CountryCodeIso2, Alias = item.AliasesAsList }); } return(response); }
public void DataRepository_SearchSpotifyList_ShouldReturnArtistList() { var sr = new SearchArtistResponse { Artists = new ArtistList() { Items = new List <Artist>() { new Artist() { Id = "1", Name = "Artist 1", Popularity = 50 }, new Artist() { Id = "2", Name = "Artis 2", Popularity = 20 }, } } }; Token Token = new Token { ExpiresIn = 50000, Expires = DateTime.Now.AddHours(8), AccessToken = "ACCESS" }; A.CallTo(() => _tokenService.GetToken()).Returns(Token); A.CallTo(() => _restRequestCreator.CreateRequestSearchArtists(Token)).Returns(new RestRequest("v1/search", Method.GET)); A.CallTo(() => _restMethods.Get <SearchArtistResponse>(A <IRestRequest> ._)).Returns(sr); var al = _sut.SearchSpotifyList(); Assert.IsNotNull(al); Assert.AreEqual("1", al.Artists.Items.FirstOrDefault().Id); }
public IActionResult SearchArtist(string serachArtist) { ResetSelectInputs(); serachArtist = Request.Form["SearchArtist"]; SearchArtistResponse searchArtistResponse = client.SearchArtistsAsync(serachArtist).Result; var artistObjects = searchArtistResponse.Artists.Items; List <SelectListItem> artistsListSelectListItems = new List <SelectListItem>(); foreach (Artist artist in artistObjects) { SelectListItem selectList = new SelectListItem() { Text = artist.Name, Value = artist.Id }; artistsListSelectListItems.Add(selectList); IEnumerable <SelectListItem> elist = artistsListSelectListItems; musicTipViewModel.Artists = elist; } return(RedirectToAction("Index")); }