public virtual async Task <Movie> GetMovieDetailsAsync(IMovieIdentifier movieIdentifier,
                                                               IWebProxy proxy)
        {
            string json =
                await _apiDownloader.GetMovieDetailsAsync(movieIdentifier, proxy);

            var movieResponse = Deserialize <Models.Movie>(json);

            Movie movie = Adapt(movieResponse);

            return(movie);
        }
        private void Adapt(Models.Movie input, out Movie output)
        {
            output = new Movie
            {
                Id          = input.Id.ToString(),
                Name        = input.Title,
                ImdbId      = input.ImdbId,
                Description = input.Overview,
                ReleaseDate = input.ReleaseDate.ToNullableDateTime("yyyy-MM-dd"),
                Year        = input.ReleaseDate.ToNullableDateTime("yyyy-MM-dd")?.Year,
            };

            Adapt(input.Genres, input.GenreIds, out var genres);
            output.Genres = genres;

            // TODO: Production Companies
        }