コード例 #1
0
        public async Task <IActionResult> PutMovie(int id, [FromForm] MovieCreateDTO update)
        {
            var movieDB = await _context.Movies
                          .Include(x => x.MoviesActors)
                          .Include(x => x.MoviesGenders)
                          .FirstOrDefaultAsync(x => x.Id == id);

            if (movieDB == null)
            {
                return(NotFound());
            }

            movieDB = mapper.Map(update, movieDB);
            SetOrderActors(movieDB);

            if (update.ImageFile != null)
            {
                using var memoryStream = new MemoryStream();
                await update.ImageFile.CopyToAsync(memoryStream);

                var content   = memoryStream.ToArray();
                var extension = Path.GetExtension(update.ImageFile.FileName);
                movieDB.Poster = await storage.EditFile(content, extension, CONTAINER, movieDB.Poster, update.ImageFile.ContentType);
            }

            await _context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #2
0
        public async Task <ActionResult> Put(int id, [FromForm] MovieCreateDTO movieCreateDTO)
        {
            var movie = await _context.Movies
                        .Include(x => x.MoviesActors)
                        .Include(x => x.MoviesGenders)
                        .FirstOrDefaultAsync(x => x.Id == id);

            if (movie == null)
            {
                return(NotFound());
            }
            movie = _mapper.Map(movieCreateDTO, movie);

            if (movieCreateDTO.Poster != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await movieCreateDTO.Poster.CopyToAsync(memoryStream);

                    var content   = memoryStream.ToArray();
                    var extension = Path.GetExtension(movieCreateDTO.Poster.FileName);
                    movie.Image = await _filesStore.EditFile(content, extension, _container, movie.Image, movieCreateDTO.Poster.ContentType);
                }
            }
            AssignActorsOrder(movie);
            await _context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #3
0
        public async Task <IActionResult> Create([FromBody] MovieCreateDTO movieDTO)
        {
            try
            {
                _logger.LogInfo("Create movie started");
                if (movieDTO == null)
                {
                    _logger.LogWarn("Empty request");
                    return(BadRequest(ModelState));
                }
                if (!ModelState.IsValid)
                {
                    _logger.LogWarn("Data incomplete");
                    return(BadRequest(ModelState));
                }
                var movie     = _mapper.Map <Movie>(movieDTO);
                var isSuccess = await _movieRepository.Create(movie);

                if (!isSuccess)
                {
                    return(InternalError("Movie creation failed}"));
                }
                _logger.LogInfo("Movie created");
                return(Created("Create", new { movie }));
            }
            catch (Exception ex)
            {
                return(InternalError($"Something went wrong: {ex.Message}"));
            }
        }
コード例 #4
0
        public void Post([FromBody] MovieCreateDTO movieDto)
        {
            var authorized = false;

            if (authorized)
            {
            }

            var movie = new Movie();

            movie.Title = movieDto.Title;
            movie.Year  = movieDto.Year;

            _movieData.Add(movie);

            //try
            //{

            //}
            //catch (System.Exception)
            //{

            //    throw;
            //}
        }
コード例 #5
0
        public async Task <MovieDTO> PutAsync(MovieCreateDTO movie)
        {
            this.Logger.LogTrace($"{nameof(this.PutAsync)} called");

            var result = await this.MovieCreateService.CreateAsync(this.Mapper.Map <MovieUpdateModel>(movie));

            return(this.Mapper.Map <MovieDTO>(result));
        }
コード例 #6
0
        public ActionResult <MovieReadDTO> CreateMovie(MovieCreateDTO movieCreateDTO)
        {
            var movie = _mapper.Map <Movie>(movieCreateDTO);

            _repository.CreateMovie(movie);
            _repository.SaveChanges();
            var movieReadDTO = _mapper.Map <MovieReadDTO>(movie);

            return(CreatedAtRoute(nameof(GetMovieById), new { Id = movieReadDTO.Id }, movieReadDTO));
        }
コード例 #7
0
        public void Put(int id, [FromBody] MovieCreateDTO movieDto)
        {
            var movie = new Movie();

            movie.MovieID = id;
            movie.Title   = movieDto.Title;
            movie.Year    = movieDto.Year;

            _movieData.Update(movie);
        }
コード例 #8
0
        public ActionResult <MovieDTO> CreateMovie(MovieCreateDTO movieDto)
        {
            var movie = _mapper.Map <Movie>(movieDto);

            _repo.InsertMovie(movie);
            _repo.SaveChanges();

            var movieReadDto = _mapper.Map <MovieDTO>(movie);

            return(Ok(movieReadDto));
        }
コード例 #9
0
        public ActionResult UpdateMovie(int id, MovieCreateDTO movieUpdateDto)
        {
            var movieModel = _repo.GetMovieById(id);

            if (movieModel == null)
            {
                return(NotFound());
            }

            _mapper.Map(movieUpdateDto, movieModel);
            _repo.UpdateMovie(movieModel);
            _repo.SaveChanges();

            return(NoContent());
        }
コード例 #10
0
        private List <MoviesGenders> MapMoviesGenders(MovieCreateDTO movieCreateDTO, Movie movie)
        {
            var results = new List <MoviesGenders>();

            if (movieCreateDTO.GendersIDs == null)
            {
                return(results);
            }
            foreach (var item in movieCreateDTO.GendersIDs)
            {
                results.Add(new MoviesGenders {
                    GenderId = item
                });
            }
            return(results);
        }
コード例 #11
0
        private List <MoviesActors> MapMoviesActors(MovieCreateDTO movieCreateDTO, Movie movie)
        {
            var results = new List <MoviesActors>();

            if (movieCreateDTO.GendersIDs == null)
            {
                return(results);
            }
            foreach (var item in movieCreateDTO.Actors)
            {
                results.Add(new MoviesActors {
                    ActorId = item.ActorId, Character = item.CharacterName
                });
            }
            return(results);
        }
コード例 #12
0
        private List <MoviesActors> MapMoviesActors(MovieCreateDTO movieCreateDTO, Movie movie)
        {
            var result = new List <MoviesActors>();

            if (movieCreateDTO.Actors == null)
            {
                return(result);
            }
            foreach (var actor in movieCreateDTO.Actors)
            {
                result.Add(new MoviesActors()
                {
                    ActorId = actor.ActorId, Character = actor.Character
                });
            }
            return(result);
        }
コード例 #13
0
        private List <MoviesGenders> MapMoviesGenders(MovieCreateDTO movieCreateDTO, Movie movie)
        {
            var result = new List <MoviesGenders>();

            if (movieCreateDTO.GendersId == null)
            {
                return(result);
            }
            foreach (var id in movieCreateDTO.GendersId)
            {
                result.Add(new MoviesGenders()
                {
                    GenderId = id
                });
            }
            return(result);
        }
コード例 #14
0
        public async Task <ActionResult <Movie> > PostMovie([FromForm] MovieCreateDTO create)
        {
            var movie = mapper.Map <Movie>(create);

            if (create.ImageFile != null)
            {
                using var memoryStream = new MemoryStream();
                await create.ImageFile.CopyToAsync(memoryStream);

                var content   = memoryStream.ToArray();
                var extension = Path.GetExtension(create.ImageFile.FileName);
                movie.Poster = await storage.SaveFile(content, extension, CONTAINER, create.ImageFile.ContentType);
            }

            SetOrderActors(movie);
            _context.Movies.Add(movie);
            await _context.SaveChangesAsync();

            var movieDTO = mapper.Map <MovieDTO>(movie);

            return(CreatedAtAction("GetMovie", new { id = movie.Id }, movieDTO));
        }
コード例 #15
0
        public async Task <ActionResult> Post([FromForm] MovieCreateDTO movieCreateDTO)
        {
            var movie = _mapper.Map <Movie>(movieCreateDTO);

            if (movieCreateDTO.Poster != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await movieCreateDTO.Poster.CopyToAsync(memoryStream);

                    var content   = memoryStream.ToArray();
                    var extension = Path.GetExtension(movieCreateDTO.Poster.FileName);
                    movie.Image = await _filesStore.SaveFile(content, extension, _container, movieCreateDTO.Poster.ContentType);
                }
            }

            AssignActorsOrder(movie);
            _context.Movies.Add(movie);
            await _context.SaveChangesAsync();

            var dto = _mapper.Map <MovieDTO>(movie);

            return(new CreatedAtRouteResult("GetMovie", new { id = movie.Id }, dto));
        }