Пример #1
0
        private ILyricsApi GetRandomApi()
        {
            ILyricsApi api = null;

            if (lyricsApisPipe.Count > 0)
            {
                var rnd   = new Random();
                int index = rnd.Next(lyricsApisPipe.Count);
                api = lyricsApisPipe[index];
                lyricsApisPipe.RemoveAt(index);
            }

            return(api);
        }
Пример #2
0
        public async Task <Lyrics> GetLyricsAsync(string artist, string title)
        {
            Lyrics     lyrics = null;
            ILyricsApi api    = this.GetRandomApi();

            while (api != null && (lyrics == null || !lyrics.HasText))
            {
                try
                {
                    lyrics = new Lyrics(await api.GetLyricsAsync(artist, title), api.SourceName);
                }
                catch (Exception ex)
                {
                    LogClient.Error("Error while getting lyrics from '{0}'. Exception: {1}", api.SourceName, ex.Message);
                }

                api = this.GetRandomApi();
            }

            return(lyrics);
        }