Popcorn.Services.Movie.MovieService.TranslateMovieShortAsync C# (CSharp) Method

TranslateMovieShortAsync() public method

Translate movie informations (title, description, ...)
public TranslateMovieShortAsync ( Popcorn.Models.Movie.Short.MovieShort movieToTranslate, CancellationToken ct ) : Task
movieToTranslate Popcorn.Models.Movie.Short.MovieShort Movie to translate
ct System.Threading.CancellationToken Used to cancel translation
return Task
        public async Task TranslateMovieShortAsync(MovieShort movieToTranslate, CancellationToken ct)
        {
            var watch = Stopwatch.StartNew();

            try
            {
                await Task.Run(async () =>
                {
                    var movie = await TmdbClient.GetMovieAsync(movieToTranslate.ImdbCode,
                        MovieMethods.Credits);
                    movieToTranslate.Title = movie?.Title;
                    movieToTranslate.Genres = movie?.Genres?.Select(a => a.Name).ToList();
                }, ct);
            }
            catch (Exception exception) when (exception is TaskCanceledException)
            {
                Logger.Debug(
                    "TranslateMovieShortAsync cancelled.");
            }
            catch (Exception exception)
            {
                Logger.Error(
                    $"TranslateMovieShortAsync: {exception.Message}");
                throw;
            }
            finally
            {
                watch.Stop();
                var elapsedMs = watch.ElapsedMilliseconds;
                Logger.Debug(
                    $"TranslateMovieShortAsync ({movieToTranslate.ImdbCode}) in {elapsedMs} milliseconds.");
            }
        }