Example #1
0
        public async Task HandleTvShowRequestAsync(string tvShowName)
        {
            var searchedTvShows = await _searcher.SearchTvShowAsync(tvShowName);

            if (!searchedTvShows.Any())
            {
                await _userInterface.WarnNoTvShowFoundAsync(tvShowName);
            }
            else if (searchedTvShows.Count > 1)
            {
                var tvShowSelection = await _userInterface.GetTvShowSelectionAsync(searchedTvShows);

                if (!tvShowSelection.IsCancelled && tvShowSelection.SelectedTvShow.IsSpecified)
                {
                    var selection = tvShowSelection.SelectedTvShow.Value;
                    await HandleTvShowSelection(selection);
                }
                else if (!tvShowSelection.IsCancelled)
                {
                    await _userInterface.WarnInvalidTvShowSelectionAsync();
                }
            }
            else if (searchedTvShows.Count == 1)
            {
                var selection = searchedTvShows.Single();
                await HandleTvShowSelection(selection);
            }
        }