public async Task <MovieRankResponse> GetMovieRank(string movieName, CancellationToken cancellationToken) { var movieResponses = await _movieRankRepository.GetMoviesRank(movieName, cancellationToken); if (movieResponses == null || !movieResponses.Any()) { throw new InvalidOperationException($"movieName '{movieName}' doesn't exist!"); } var overallRanking = Math.Round(movieResponses.Select(r => r.Ranking).Average()); return(new MovieRankResponse() { MovieName = movieName, OverallRanking = overallRanking }); }