public async Task<ResultContainer<Video>> GetMovieTrailerAsync(MovieFull movie, CancellationToken ct)
{
var watch = Stopwatch.StartNew();
var trailers = new ResultContainer<Video>();
try
{
await Task.Run(async () => trailers = (await TmdbClient.GetMovieAsync(movie.ImdbCode, MovieMethods.Videos))?.Videos, ct);
}
catch (Exception exception) when (exception is TaskCanceledException)
{
Logger.Debug(
"GetMovieTrailerAsync cancelled.");
}
catch (Exception exception)
{
Logger.Error(
$"GetMovieTrailerAsync: {exception.Message}");
throw;
}
finally
{
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
Logger.Debug(
$"GetMovieTrailerAsync ({movie.ImdbCode}) in {elapsedMs} milliseconds.");
}
return trailers;
}