コード例 #1
0
        public async Task <MovieDetailsServiceModel> GetMovieDetailsAsync(int movieId)
        {
            MovieDetailsServiceModel movie = await this.context.Movies
                                             .Where(m => m.Id == movieId)
                                             .ProjectTo <MovieDetailsServiceModel>()
                                             .FirstOrDefaultAsync();

            return(movie);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }