public async Task RequestAsync(TvShow tvShow, NormalTvSeason selectedSeason) { await _userInterface.DisplayTvShowDetailsAsync(tvShow); if (selectedSeason.IsRequested == RequestedState.Full) { await RequestNotificationsForSeasonAsync(tvShow, selectedSeason); } else { var wasRequested = await _userInterface.GetTvShowRequestConfirmationAsync(selectedSeason); if (wasRequested) { var result = await _requester.RequestTvShowAsync(_user, tvShow, selectedSeason); if (result.WasDenied) { await _userInterface.DisplayRequestDeniedForSeasonAsync(selectedSeason); } else { await _userInterface.DisplayRequestSuccessForSeasonAsync(selectedSeason); await _tvShowNotificationWorkflow.NotifyForNewRequestAsync(_user.UserId, tvShow, selectedSeason); } } } }
public async Task AddNotificationAsync(string userId, int theTvDbId, string seasonType, int seasonNumber) { TvSeason selectedSeason; var tvShow = await _tvShowSearcher.GetTvShowDetailsAsync(new TvShowRequest(null, int.MinValue), theTvDbId); switch (seasonType.ToLower()) { case "f": selectedSeason = new FutureTvSeasons { SeasonNumber = seasonNumber }; break; case "a": selectedSeason = new AllTvSeasons { SeasonNumber = seasonNumber }; break; case "n": selectedSeason = new NormalTvSeason { SeasonNumber = seasonNumber }; break; default: throw new Exception($"Could not handle season of type \"{seasonType}\" when adding notifications"); } _notificationsRepository.AddSeasonNotification(userId, theTvDbId, selectedSeason); await _userInterface.DisplayNotificationSuccessForSeasonAsync(tvShow, selectedSeason); }
public async Task HandleSelectionAsync(TvShowRequest request, TvShow tvShow, NormalTvSeason selectedSeason) { if (selectedSeason.IsRequested == RequestedState.Full) { await RequestNotificationsForSeasonAsync(request, tvShow, selectedSeason); } else { await _userInterface.DisplayTvShowDetailsForSeasonAsync(request, tvShow, selectedSeason); } }
public async Task RequestAsync(TvShowRequest request, TvShow tvShow, NormalTvSeason selectedSeason) { var result = await _requester.RequestTvShowAsync(request, tvShow, selectedSeason); if (result.WasDenied) { await _userInterface.DisplayRequestDeniedForSeasonAsync(tvShow, selectedSeason); } else { await _userInterface.DisplayRequestSuccessForSeasonAsync(tvShow, selectedSeason); await _tvShowNotificationWorkflow.NotifyForNewRequestAsync(request.User.UserId, tvShow, selectedSeason); } }
public async Task HandleRequestAsync(TvShow tvShow, NormalTvSeason selectedSeason) { await _userInterface.DisplayTvShowDetailsAsync(tvShow); if (selectedSeason.IsRequested) { await RequestNotificationsForSeasonAsync(tvShow, selectedSeason); } else { var wasRequested = await _userInterface.GetTvShowRequestConfirmation(selectedSeason); if (wasRequested) { await _requester.RequestTvShowAsync(_user.Username, tvShow, selectedSeason); _notificationRequestRepository.AddSeasonNotification(_user.UserId, tvShow.TheTvDbId, selectedSeason); await _userInterface.DisplayRequestSuccessForSeasonAsync(selectedSeason); } } }