public MoviesController(IMovieService service, IMapper mapper, ITmdbService tmdbService) { this.service = service ?? throw new ArgumentNullException(nameof(service)); this.mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); this.tmdbService = tmdbService ?? throw new ArgumentNullException(nameof(tmdbService)); }
/// <summary> /// Initialize a new instance of MovieService class /// </summary> public MovieService(ITmdbService tmdbService) { _moviesToTranslateObservable = new Subject <IMovie>(); _tmdbService = tmdbService; try { _moviesToTranslateObservable.Drain(s => Observable.Return(s).Delay(TimeSpan.FromMilliseconds(250))) .Subscribe(async movieToTranslate => { if (movieToTranslate == null) { return; } var timeoutPolicy = Policy.TimeoutAsync(Utils.Constants.DefaultRequestTimeoutInSecond, TimeoutStrategy.Pessimistic); try { await timeoutPolicy.ExecuteAsync(async() => { try { var movie = await(await _tmdbService.GetClient).GetMovieAsync(movieToTranslate.ImdbId, MovieMethods.Credits); if (movieToTranslate is MovieJson refMovie) { refMovie.TranslationLanguage = (await _tmdbService.GetClient).DefaultLanguage; refMovie.Title = movie?.Title; refMovie.Genres = movie?.Genres?.Select(a => a.Name).ToList(); refMovie.DescriptionFull = movie?.Overview; } else if (movieToTranslate is MovieLightJson refMovieLight) { refMovieLight.TranslationLanguage = (await _tmdbService.GetClient).DefaultLanguage; refMovieLight.Title = movie?.Title; refMovieLight.Genres = movie?.Genres != null ? string.Join(", ", movie.Genres?.Select(a => a.Name)) : string.Empty; } } catch (Exception exception) when(exception is TaskCanceledException) { Logger.Debug( "TranslateMovieAsync cancelled."); } catch (Exception exception) { Logger.Error( $"TranslateMovieAsync: {exception.Message}"); } }); } catch (Exception ex) { Logger.Warn( $"Movie {movieToTranslate.ImdbId} has not been translated in {Utils.Constants.DefaultRequestTimeoutInSecond} seconds. Error {ex.Message}"); } }); } catch (Exception ex) { Logger.Error(ex); } }
/// <summary> /// Constructor /// </summary> public ShowService(ITmdbService tmdbService) { _tmdbService = tmdbService; }
public Facade(ITmdbService tmdb, IUnitOfWork context, IMapper mapper) { this.tmdb = tmdb; this.context = context; this.mapper = mapper; }
public TmdbSearchViewModel(ITmdbService tmdbService) { this.tmdbService = tmdbService; }
public SeedService(ITmdbService service) { this.service = service ?? throw new ArgumentNullException(nameof(service)); }