/// <summary> /// Creates an extended movie result model from an external extended movie result. /// </summary> /// <param name="source">The source.</param> /// <returns>Extended movie result model</returns> public ExtendedMovieResultModel Create(ExtendedMovieResult source) { return(new ExtendedMovieResultModel { Collection = Create(source.Collection), HomePage = source.HomePage, Id = source.Id, ImdbId = source.ImdbId, Overview = source.Overview, ReleaseDate = source.ReleaseDate.GetValueOrDefault().ToShortDateString(), ReleaseYear = source.ReleaseDate.GetValueOrDefault().Year, Runtime = source.Runtime.ToString() + " minutes", Status = source.Status, Tagline = source.Tagline, Title = source.Title, Budget = "$" + source.Budget.ToString("N2"), Profit = "$" + (source.Revenue - source.Budget).ToString("N2"), Revenue = "$" + source.Revenue.ToString("N2"), BackdropImageUrl = FormalizeImagePath(source.BackdropPath, ImageTypes.Backdrop, ImageSizes.Medium), PosterImageUrl = FormalizeImagePath(source.PosterPath, ImageTypes.Poster, ImageSizes.Small), PosterImageUrlOriginal = FormalizeImagePath(source.PosterPath, ImageTypes.Poster, ImageSizes.Original), Genres = source.Genres.Select(x => Create(x)).ToList(), ProductionCompanies = source.ProductionCompanies.Select(x => Create(x)).ToList(), Directors = source.Credits.Crew.Where(x => _directorJobNames.Contains(x.Job)).Select(x => Create(x)).ToList(), Producers = source.Credits.Crew.Where(x => _producerJobNames.Contains(x.Job)).Select(x => Create(x)).ToList(), Writers = source.Credits.Crew.Where(x => x.Department == "Writing").Select(x => Create(x)).ToList(), TopBilledCast = source.Credits.Cast.OrderBy(x => x.Order).Take(6).Select(x => Create(x)).ToList() }); }
/// <summary> /// Creates a full credit result model from an external extended movie result. /// </summary> /// <param name="source">The source.</param> /// <returns>Full credit result model</returns> public FullCreditsResultModel CreateCredits(ExtendedMovieResult source) { return(new FullCreditsResultModel { Overview = source.Overview, Tagline = source.Tagline, Title = source.Title, BackdropImageUrl = FormalizeImagePath(source.BackdropPath, ImageTypes.Backdrop, ImageSizes.Medium), PosterImageUrl = FormalizeImagePath(source.PosterPath, ImageTypes.Poster, ImageSizes.Small), PosterImageUrlOriginal = FormalizeImagePath(source.PosterPath, ImageTypes.Poster, ImageSizes.Original), Genres = source.Genres.Select(x => Create(x)).ToList(), Cast = source.Credits.Cast.OrderBy(x => x.Order).Select(x => Create(x, ImageSizes.Smallest)), Crew = source.Credits.Crew.GroupBy(x => x.Department).Select(x => Create(x)), Departments = source.Credits.Crew.Select(x => x.Department).Distinct().OrderBy(x => x) }); }
/// <summary> /// Creates an import movie result model from an extended movie result. /// </summary> /// <param name="source">The source.</param> /// <returns>Import movie result model</returns> public ImportMovieResultModel CreateImport(ExtendedMovieResult source) { return(new ImportMovieResultModel { Budget = source.Budget, HomePage = source.HomePage, Id = source.Id, ImdbId = source.ImdbId, Overview = source.Overview, ReleaseDate = source.ReleaseDate.GetValueOrDefault().ToShortDateString(), Revenue = source.Revenue, Runtime = source.Runtime, Tagline = source.Tagline, Title = source.Title, BackdropImageUrl = FormalizeImagePath(source.BackdropPath, ImageTypes.Backdrop, ImageSizes.Smallest), PosterImageUrl = FormalizeImagePath(source.PosterPath, ImageTypes.Poster, ImageSizes.Small), Genres = source.Genres.Select(x => Create(x)).ToList() }); }