public async Task <MovieDetailsServiceModel> GetMovieDetailsAsync(int movieId) { MovieDetailsServiceModel movie = await this.context.Movies .Where(m => m.Id == movieId) .ProjectTo <MovieDetailsServiceModel>() .FirstOrDefaultAsync(); return(movie); }
public async Task<IActionResult> Edit(int id) { MovieDetailsServiceModel movieDetails = await this.movieDbService.GetMovieDetailsAsync(id); if (movieDetails == null) { return NotFound(); } MovieFormMainModel formModel = new MovieFormMainModel(); IMapper config = new MapperConfiguration(cfg => { cfg.CreateMap<MovieDetailsServiceModel, MovieFormMainModel>() .ForMember(dest => dest.Cast, opts => opts .MapFrom(source => source.Cast.Select(c => new CastFormModel() { ImdbId = c.ImdbId, Name = c.Name, Character = c.Character }))) .ForMember(dest => dest.Crew, opts => opts .MapFrom(source => source.Crew.Select(c => new CrewFormModel() { ImdbId = c.ImdbId, Name = c.Name, Role = c.Role }))) .ForMember(dest => dest.SelectedColors, opts => opts .MapFrom(source => source.Colors.Select(c => c.Id))) .ForMember(dest => dest.SelectedCountries, opts => opts .MapFrom(source => source.Countries.Select(c => c.Id))) .ForMember(dest => dest.SelectedGenres, opts => opts .MapFrom(source => source.Genres.Select(g => g.Id))) .ForMember(dest => dest.SelectedLanguages, opts => opts .MapFrom(source => source.Languages.Select(l => l.Id))); }) .CreateMapper(); formModel = config.Map<MovieDetailsServiceModel, MovieFormMainModel>(movieDetails); await this.PopulateFormMainModel(formModel); return View(formModel); }
public async Task<IActionResult> Index(int id) { MovieDetailsServiceModel movieDetailsServiceModel = new MovieDetailsServiceModel(); MovieIndexViewModel viewModel = new MovieIndexViewModel(); bool isAjaxRequest = HttpContext.Request.IsAjaxRequest(); if (isAjaxRequest) { movieDetailsServiceModel = await this.movieDbService.GetMovieDetailsAsync(id); if (movieDetailsServiceModel == null) { return NotFound(); } viewModel.MovieDetails = movieDetailsServiceModel; return PartialView("_Details", viewModel); } IEnumerable<MovieBaseServiceModel> allMovies = await this.movieDbService.GetAllMoviesAsync(); if (allMovies != null && allMovies.Count() > 0) { int movieId = allMovies.FirstOrDefault().Id; movieDetailsServiceModel = await this.movieDbService.GetMovieDetailsAsync(movieId); viewModel.AllMovies = allMovies.AsNotNull(); viewModel.MovieDetails = movieDetailsServiceModel; } viewModel.AllMovies = allMovies.AsNotNull(); return View(viewModel); }