예제 #1
0
        public Task<SearchResponse> ExecuteAsync(SearchArgument argument)
        {
            argument.ApiKey = ApiKey;
            argument.BaseUrl = Url;

            return ExecuteAsync<SearchResponse>(argument.ToString());
        }
예제 #2
0
        public Task <SearchResponse> ExecuteAsync(SearchArgument argument)
        {
            argument.ApiKey  = ApiKey;
            argument.BaseUrl = Url;

            return(ExecuteAsync <SearchResponse>(argument.ToString()));
        }
예제 #3
0
        public SearchResponse Execute(SearchArgument argument)
        {
            argument.ApiKey = ApiKey;
            argument.BaseUrl = Url;

            return Execute<SearchResponse>(argument.ToString());
        }
예제 #4
0
        public SearchResponse Execute(SearchArgument argument)
        {
            argument.ApiKey  = ApiKey;
            argument.BaseUrl = Url;

            return(Execute <SearchResponse>(argument.ToString()));
        }
예제 #5
0
        public void GetSongs_WhereDescription_Christmas_IsNotNull()
        {
            const string description = "christmas";

            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                SearchArgument searchArgument = new SearchArgument {
                    Results = 10, Bucket = SongBucket.ArtistHotttness, Sort = "artist_familiarity-desc"
                };

                searchArgument.Description.AddRange(new TermList {
                    description
                });

                SearchResponse searchResponse = session.Query <Search>().Execute(searchArgument);

                Assert.IsNotNull(searchResponse);

                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }

                Console.WriteLine();
            }
        }
예제 #6
0
        public void GetSongs_ForApocalypseNow_ExpectedArtist(string title, string styles, string moods, string expect)
        {
            // arrange
            TermList styleTerms = new TermList();

            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();

            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            SearchArgument searchArgument = new SearchArgument
            {
                Mode    = "0", /* minor */
                Sort    = "artist_familiarity-desc",
                Results = 10
            };

            searchArgument.Styles.AddRange(styleTerms);

            searchArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                SearchResponse searchResponse = session.Query <Search>().Execute(searchArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);

                var matches = (from s in searchResponse.Songs
                               where s.ArtistName.ToLower().Contains(expect)
                               select s).ToList();


                Assert.IsNotNull(matches, "Failed to find songs where artist name contains: {0}", expect);

                // output
                Console.WriteLine("Tracks for '{0}'", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
                Console.WriteLine();
            }
        }
예제 #7
0
        public void GetSongs_ForApocalypseNow_ExpectedArtist(string title, string styles, string moods, string expect)
        {
            // arrange
            TermList styleTerms = new TermList();
            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();
            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            SearchArgument searchArgument = new SearchArgument
            {
                Mode = "0", /* minor */
                Sort = "artist_familiarity-desc",
                Results = 10
            };

            searchArgument.Styles.AddRange(styleTerms);

            searchArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                SearchResponse searchResponse = session.Query<Search>().Execute(searchArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);

                var matches = (from s in searchResponse.Songs
                               where s.ArtistName.ToLower().Contains(expect)
                               select s).ToList();

                Assert.IsNotNull(matches, "Failed to find songs where artist name contains: {0}", expect);

                // output
                Console.WriteLine("Tracks for '{0}'", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
                Console.WriteLine();
            }
        }
예제 #8
0
        public void GetSongs_WhereDescription_Christmas_IsNotNull()
        {
            const string description = "christmas";

            using (var session = new EchoNestSession(ApiKey))
            {
                SearchArgument searchArgument = new SearchArgument { Results = 10, Bucket = SongBucket.ArtistHotttness, Sort = "artist_familiarity-desc" };
                searchArgument.Description.AddRange(new TermList { description });
                SearchResponse searchResponse = session.Query<Search>().Execute(searchArgument);

                Assert.IsNotNull(searchResponse);

                foreach (EchoNest.Song.SongBucketItem song in searchResponse.Songs)
                {
                   System.Diagnostics.Debug.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
            }
        }
예제 #9
0
        public void GetSongs_WhereDescription_Christmas_IsNotNull()
        {
            const string description = "christmas";

            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                SearchArgument searchArgument = new SearchArgument { Results = 10, Bucket = SongBucket.ArtistHotttness, Sort = "artist_familiarity-desc" };

                searchArgument.Description.AddRange(new TermList { description });

                SearchResponse searchResponse = session.Query<Search>().Execute(searchArgument);

                Assert.IsNotNull(searchResponse);

                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }

                Console.WriteLine();
            }
        }
예제 #10
0
        public string GetSongId(string title)
        {
            SearchArgument searchArgument = new SearchArgument
            {
                Title = title
            };

            using (var session = new EchoNestSession(ApiKey))
            {
                SearchResponse searchResponse = session.Query<Search>().Execute(searchArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Count > 0);

                return searchResponse.Songs.First().ID;
            }
        }
예제 #11
0
        private string GetSongId(EchoNestSession session, string title)
        {
            SearchArgument searchArgument = new SearchArgument
            {
                Title = title
            };

            SearchResponse searchResponse = session.Query<Search>().Execute(searchArgument);
            return searchResponse.Songs.Count > 0 ? searchResponse.Songs.First().ID : string.Empty;
        }