示例#1
0
        public async Task <IActionResult> GetMovie(int id)
        {
            var movie = await _context.Movies.Include(x => x.Photos).FirstOrDefaultAsync(x => x.Id == id);

            var movieForReturn = new MovieForListDto();
            var mappedMovie    = _mapper.Map(movie, movieForReturn);

            movieForReturn.Photos = movieForReturn.Photos.OrderByDescending(x => x.isMain == true);
            return(Ok(mappedMovie));
        }
示例#2
0
        public IActionResult AddMovie([FromForm] MovieForAddingDto movieForAddingDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var file         = movieForAddingDto.File;
            var uploadResult = new ImageUploadResult();

            if (file.Length > 0)
            {
                using (var stream = file.OpenReadStream())
                {
                    var uploadParams = new ImageUploadParams()
                    {
                        File           = new FileDescription(file.Name, stream),
                        Transformation = new Transformation().Width(300).Height(450)
                    };
                    uploadResult = _cloudinary.Upload(uploadParams);
                }
                movieForAddingDto.PublicId = uploadResult.PublicId;
                movieForAddingDto.PhotoUrl = uploadResult.Uri.ToString();
            }

            var movie = _mapper.Map <Movie>(movieForAddingDto);
            var photo = new Photo
            {
                Url      = movieForAddingDto.PhotoUrl,
                PublicId = movieForAddingDto.PublicId,
                Movie    = movie
            };

            if (!movie.Photos.Any())
            {
                photo.isMain = true;
            }

            movie.Photos.Add(photo);

            _context.Movies.Add(movie);
            var movieToReturn = new MovieForListDto();


            _context.SaveChanges();
            _mapper.Map(movie, movieToReturn);

            return(Ok(movieToReturn));
        }
        public async Task CallGetRequest_WhenCalled_ReturnsAllMovies()
        {
            getMoviesHelper        getMoviesHelper  = new getMoviesHelper();
            List <TblMovie>        movieList        = getMoviesHelper.getMovieFromList();
            List <MovieForListDto> movieForListDtos = new List <MovieForListDto>(3);

            for (int i = 0; i < movieList.Count; i++)
            {
                MovieForListDto movieForListDto = new MovieForListDto();
                movieForListDto.ATitle            = movieList[i].ATitle;
                movieForListDto.AMovieId          = movieList[i].AMovieId;
                movieForListDto.AMovieDescription = movieList[i].AMovieDescription;
                movieForListDto.ADuration         = movieList[i].ADuration;
                movieForListDto.AGenre            = movieList[i].AGenre;
                movieForListDto.AImageLink        = movieList[i].AImageLink;
                movieForListDto.APrice            = movieList[i].APrice;
                movieForListDto.ATrailerLink      = movieList[i].ATrailerLink;
                movieForListDto.ARating           = movieList[i].ARating;
                movieForListDto.APurchasePrice    = movieList[i].APurchasePrice;

                movieForListDtos.Add(movieForListDto);
            }
            _mockMovieRepository = new Mock <IMovieRepository>();
            _mockMovieMapper     = new Mock <IMapper>();
            _mockMovieMapper.Setup(mapper => mapper.Map <IEnumerable <MovieForListDto> >(It.IsAny <TblMovie[]>())).Returns(movieForListDtos);
            _mockMovieRepository.Setup(repo => repo.GetMovies(new MovieParams {
            }))
            .ReturnsAsync(getMoviesHelper.getMovieFromList());
            _moviesController = new MoviesController(_mockMovieRepository.Object, _mockMovieMapper.Object);
            var movies = await _moviesController.GetMovies(new MovieParams {});

            var okResult = movies as OkObjectResult;
            var result   = ((OkObjectResult)movies).Value;

            Assert.AreEqual(result, movieForListDtos);
            Assert.AreEqual(200, okResult.StatusCode);
            Assert.NotNull(movies);
            Assert.IsAssignableFrom <OkObjectResult>(movies);
        }