Popcorn.Services.Movie.MovieService.GetGenresAsync C# (CSharp) Метод

GetGenresAsync() публичный Метод

Get all movie's genres
public GetGenresAsync ( CancellationToken ct ) : Task>
ct System.Threading.CancellationToken Used to cancel loading genres
Результат Task>
        public async Task<List<MovieGenre>> GetGenresAsync(CancellationToken ct)
        {
            var watch = Stopwatch.StartNew();

            var genres = new List<MovieGenre>();

            try
            {
                await Task.Run(async () =>
                {
                    var englishGenre = await TmdbClient.GetMovieGenresAsync(new EnglishLanguage().Culture);
                    genres.AddRange((await TmdbClient.GetMovieGenresAsync()).Select(genre => new MovieGenre
                    {
                        EnglishName = englishGenre.FirstOrDefault(p => p.Id == genre.Id)?.Name,
                        TmdbGenre = genre
                    }));
                }, ct);
            }
            catch (Exception exception) when (exception is TaskCanceledException)
            {
                Logger.Debug(
                    "GetGenresAsync cancelled.");
            }
            catch (Exception exception)
            {
                Logger.Error(
                    $"GetGenresAsync: {exception.Message}");
                throw;
            }
            finally
            {
                watch.Stop();
                var elapsedMs = watch.ElapsedMilliseconds;
                Logger.Debug(
                    $"GetGenresAsync in {elapsedMs} milliseconds.");
            }

            return genres;
        }