public void ChooseFeed(string targetPath, bool getOnlyUrl) { var feeds = _urlFetcher.GetFeeds(_startDate, _endDate); foreach (var feed in feeds) { Console.WriteLine($"{feed.Id.ToString().PadLeft(2)}: {feed.Date} {feed.Away}@{feed.Home} {feed.Type} ({feed.Name})"); } if (!feeds.Any()) { _messenger.WriteLine("No feeds were found."); return; } Console.Write("\nChoose feed (q to quit): "); var input = Console.ReadLine(); if (input.Equals("q", StringComparison.OrdinalIgnoreCase)) { return; } var chosenFeed = feeds.FirstOrDefault(f => f.Id == int.Parse(input)); string streamUrl = null; try { streamUrl = _urlFetcher.GetStreamUrl(chosenFeed); } catch (Exception e) { _messenger.WriteLine($"Problem when getting stream URL: {e.Message}"); return; } if (getOnlyUrl) { Console.WriteLine(streamUrl); return; } _messenger.WriteLine($"\nDownloading feed: {chosenFeed.Date} {chosenFeed.Away}@{chosenFeed.Home} ({chosenFeed.Type},{chosenFeed.Name})"); Download(streamUrl, chosenFeed, targetPath); }