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); }
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); }