public async Task <List <Episode> > List(int programId, int count) { var episodesResult = await _sverigesRadioApiClient.ListEpisodesAsync(programId, pagination : ListPagination.TakeFirst(count)); return(episodesResult.Episodes); }
private async Task WriteEpisodeInfos(SrStoredEpisodePhases?phase, string?state) { var allErrorEpisodes = await _storage.GetEpisodesWithStatus(phase?.ToString(), state); if (!allErrorEpisodes.Any()) { return; } var episodeInfos = await _sverigesRadioApiClient.GetEpisodesAsync(allErrorEpisodes.Select(x => x.EpisodeId).ToList(), ListPagination.TakeFirst(allErrorEpisodes.Count)); var ids = new StringBuilder(); foreach (var episode in episodeInfos.Episodes.OrderBy(x => x.PublishDateUtc)) { ids.AppendLine($"{episode.Id} - {episode.PublishDateUtc} - {episode.Title}..."); } var idsString = ids.ToString(); Console.Write(idsString); Console.ReadLine(); }
public static async Task Main(string[] args) { Console.WriteLine("Orneholm.SverigesRadio.ConsoleSample"); Console.WriteLine("########################################################"); Console.WriteLine(); var apiClient = SverigesRadioApiClient.CreateClient(new AudioSettings { OnDemandAudioTemplateId = SverigesRadioApiIds.OnDemandAudioTemplates.Html5_Desktop, LiveAudioTemplateId = SverigesRadioApiIds.LiveAudioTemplates.MP3, AudioQuality = AudioQuality.High }); Console.WriteLine(); Console.WriteLine("List programs:"); var programsResult = await apiClient.ListProgramsAsync(); foreach (var program in programsResult.Programs) { Console.WriteLine($"{program.Name} ({program.Id}): {program.Description}"); } Console.WriteLine(); Console.WriteLine("Get latest episode for P3 Dokumentär:"); var episodeResult = await apiClient.GetLatestEpisodeAsync(SverigesRadioApiIds.Programs.P3_Dokumentar); Console.WriteLine($"{episodeResult.Episode.Title} ({episodeResult.Episode.Id}): {episodeResult.Episode.Description}"); Console.WriteLine(); Console.WriteLine("List podfiles for Så funkar det (last 3):"); var podfilesResult = await apiClient.ListPodfilesAsync(SverigesRadioApiIds.Programs.Sa_Funkar_Det, ListPagination.TakeFirst(5)); foreach (var podfile in podfilesResult.Podfiles) { Console.WriteLine($"{podfile.Title} ({podfile.Id}): {podfile.Url}"); } Console.WriteLine(); Console.WriteLine("Search episodes:"); var episodeSearchResult = await apiClient.SearchEpisodesAsync("Microsoft"); foreach (var episode in episodeSearchResult.Episodes) { Console.WriteLine($"{episode.Title} ({episode.Id}) - {episode.Description}"); } Console.WriteLine(); Console.ReadLine(); }
private async Task ReRunWith(SrStoredEpisodePhases?phase, string?state, CancellationToken stoppingToken) { var allErrorEpisodes = await _storage.GetEpisodesWithStatus(phase?.ToString(), state); if (!allErrorEpisodes.Any()) { return; } var episodeInfos = await _sverigesRadioApiClient.GetEpisodesAsync(allErrorEpisodes.Select(x => x.EpisodeId).ToList(), ListPagination.TakeFirst(allErrorEpisodes.Count)); var ids = new StringBuilder(); foreach (var episode in episodeInfos.Episodes.OrderBy(x => x.PublishDateUtc)) { await _storage.DeleteEpisodeStatus(episode.Id); await _storage.DeleteStoredEpisode(episode.Id); _logger.LogInformation($"Deleting {episode.Id} - {episode.PublishDateUtc} - {episode.Title}..."); } await _srWorker.Work(allErrorEpisodes.Select(x => x.EpisodeId).ToList(), true, stoppingToken); }