コード例 #1
0
        /// <summary>
        ///     Gets the movie by identifier.
        /// </summary>
        /// <param name="movieId">The movie identifier.</param>
        /// <returns>MovieDto</returns>
        public MovieDto GetMovieById(int movieId)
        {
            Guard.IntMoreThanZero(movieId, nameof(movieId));

            MovieDto movie = null;

            var allMovies = _cachingService.GetAllMovies();

            if (allMovies != null)
            {
                movie = allMovies.FirstOrDefault(m => m.MovieId == movieId);
            }

            if (movie == null)
            {
                movie = _cachingService.GetMovieById(movieId);
            }

            if (movie == null)
            {
                movie = _dataSource.GetMovieById(movieId);

                _cachingService.SetMovie(movie);
            }

            return(movie);
        }