Esempio n. 1
0
        public async Task <IEnumerable <Artist> > GetArtists(string nameQuery)
        {
            SearchArtistResponse searchArtistResponse = await _spotifyService.SearchArtistsAsync(nameQuery);

            return(searchArtistResponse
                   .Artists
                   .Items);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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"));
        }