public async Task NotifyForExistingRequestAsync(string userId, TvShow tvShow, TvSeason selectedSeason) { if (_notificationsRepository.HasSeasonNotification(userId, tvShow.TheTvDbId, selectedSeason)) { await _userInterface.WarnAlreadyNotifiedForSeasonsAsync(tvShow, selectedSeason); } else { await _userInterface.AskForSeasonNotificationRequestAsync(tvShow, selectedSeason); } }
private TvSeason[] GetAvailableTvShowSeasonsBasedOnRestrictions(TvShow tvShow) { if (_settings.Restrictions == TvShowsRestrictions.AllSeasons) { return(tvShow.Seasons.OfType <AllTvSeasons>().ToArray()); } else if (_settings.Restrictions == TvShowsRestrictions.SingleSeason) { return(tvShow.Seasons.Where(x => !(x is AllTvSeasons)).ToArray()); } else if (_settings.Restrictions == TvShowsRestrictions.None) { return(tvShow.Seasons); } else { throw new NotImplementedException($"Tv shows restriction of type {_settings.Restrictions} has not been implemented."); } }
private async Task HandleSeasonSelectionAsync(TvShow tvShow, TvSeason selectedSeason) { switch (selectedSeason) { case FutureTvSeasons futureTvSeasons: await new FutureSeasonsRequestingWorkflow(_searcher, _requester, _userInterface, _tvShowNotificationWorkflow) .HandleSelectionAsync(new TvShowRequest(_user, _categoryId), tvShow, futureTvSeasons); break; case AllTvSeasons allTvSeasons: await new AllSeasonsRequestingWorkflow(_searcher, _requester, _userInterface, _tvShowNotificationWorkflow) .HandleSelectionAsync(new TvShowRequest(_user, _categoryId), tvShow, allTvSeasons); break; case NormalTvSeason normalTvSeason: await new NormalTvSeasonRequestingWorkflow(_searcher, _requester, _userInterface, _tvShowNotificationWorkflow) .HandleSelectionAsync(new TvShowRequest(_user, _categoryId), tvShow, normalTvSeason); break; default: throw new Exception($"Could not handle season of type \"{selectedSeason.GetType().Name}\""); } }
public Task WarnAlreadyNotifiedForSeasonsAsync(TvShow tvShow, TvSeason requestedSeason) { return(Task.CompletedTask); }
public Task DisplayTvShowDetailsAsync(TvShow tvShow) { _selectedTvShow = tvShow; return(Task.CompletedTask); }
public Task <bool> AskForSeasonNotificationRequestAsync(TvShow tvShow, TvSeason requestedSeason) { return(Task.FromResult(false)); }
public Task WarnShowHasEndedAsync(TvShow tvShow) { return(Task.CompletedTask); }
public Task WarnShowCannotBeRequestedAsync(TvShow tvShow) { return(Task.CompletedTask); }
public Task WarnAlreadySeasonAlreadyRequestedAsync(TvShow tvShow, TvSeason selectedSeason) { return(Task.CompletedTask); }
public Task NotifyForExistingRequestAsync(string userId, TvShow tvShow, TvSeason selectedSeason) { return(_userInterface.WarnAlreadySeasonAlreadyRequestedAsync(tvShow, selectedSeason)); }
public Task NotifyForNewRequestAsync(string userId, TvShow tvShow, TvSeason selectedSeason) { return(Task.CompletedTask); }
private async Task <TvSeasonsSelection> GetTvShowSelectionBasedOnRestrictions(TvShow tvShow) { TvSeasonsSelection seasonSelection = null; if (_settings.Restrictions == TvShowsRestrictions.AllSeasons) { seasonSelection = new TvSeasonsSelection { SelectedSeason = tvShow.Seasons.OfType <AllTvSeasons>().Single() }; } else if (_settings.Restrictions == TvShowsRestrictions.SingleSeason) { tvShow.Seasons = tvShow.Seasons.Where(x => !(x is AllTvSeasons)).ToArray(); seasonSelection = await _userInterface.GetTvShowSeasonSelectionAsync(tvShow); } else if (_settings.Restrictions == TvShowsRestrictions.None) { seasonSelection = await _userInterface.GetTvShowSeasonSelectionAsync(tvShow); } else { throw new NotImplementedException($"Tv shows restriction of type {_settings.Restrictions} has not been implemented."); } return(seasonSelection); }