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.");
}
}