Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 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.");
     }
 }
Ejemplo n.º 3
0
        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}\"");
            }
        }
Ejemplo n.º 4
0
 public Task WarnAlreadyNotifiedForSeasonsAsync(TvShow tvShow, TvSeason requestedSeason)
 {
     return(Task.CompletedTask);
 }
Ejemplo n.º 5
0
 public Task DisplayTvShowDetailsAsync(TvShow tvShow)
 {
     _selectedTvShow = tvShow;
     return(Task.CompletedTask);
 }
Ejemplo n.º 6
0
 public Task <bool> AskForSeasonNotificationRequestAsync(TvShow tvShow, TvSeason requestedSeason)
 {
     return(Task.FromResult(false));
 }
Ejemplo n.º 7
0
 public Task WarnShowHasEndedAsync(TvShow tvShow)
 {
     return(Task.CompletedTask);
 }
Ejemplo n.º 8
0
 public Task WarnShowCannotBeRequestedAsync(TvShow tvShow)
 {
     return(Task.CompletedTask);
 }
Ejemplo n.º 9
0
 public Task WarnAlreadySeasonAlreadyRequestedAsync(TvShow tvShow, TvSeason selectedSeason)
 {
     return(Task.CompletedTask);
 }
Ejemplo n.º 10
0
 public Task NotifyForExistingRequestAsync(string userId, TvShow tvShow, TvSeason selectedSeason)
 {
     return(_userInterface.WarnAlreadySeasonAlreadyRequestedAsync(tvShow, selectedSeason));
 }
Ejemplo n.º 11
0
 public Task NotifyForNewRequestAsync(string userId, TvShow tvShow, TvSeason selectedSeason)
 {
     return(Task.CompletedTask);
 }
Ejemplo n.º 12
0
        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);
        }