Exemplo n.º 1
0
        public async Task <IActionResult> CreateMovie([FromBody] MovieCreateDto movieCreateDto)
        {
            if (movieCreateDto == null)
            {
                return(BadRequest());
            }

            var movieExist = await _movieService.MovieExistById(movieCreateDto.ImdbId);

            if (movieExist)
            {
                return(new StatusCodeResult(StatusCodes.Status409Conflict));
            }

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var movie   = _mapper.Map <MovieCreateDto, Movie>(movieCreateDto);
            var success = await _movieService.AddMovie(movie);

            if (!success)
            {
                // Throw code 500 instead of 4xx when saving changes failed because it is a server side issue
                throw new Exception($"Failed to save the user to the database with the id {movie.Id}");
            }

            var movieToReturn = _mapper.Map <Movie, MovieGetDto>(movie);
            var routeValue    = new { id = movie.Id };

            return(CreatedAtRoute(GetMovieByIdRoute, routeValue, movieToReturn));
        }
Exemplo n.º 2
0
        public IHttpActionResult Post([FromBody] MovieCreateDto movie)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                Movie newMovie = new Movie
                {
                    DirectorID  = movie.DirectorID,
                    Title       = movie.Title,
                    GenreID     = movie.GenreID,
                    Description = movie.Description,
                    ReleaseDate = movie.ReleaseDate
                };

                movieService.Add(newMovie);
                movieService.Save();

                var dtoMovie = new MovieDto(newMovie);
                return(Ok(dtoMovie));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 3
0
        public IActionResult AddMovie([FromBody] MovieCreateDto movie)
        {
            if (movie == null)
            {
                return(BadRequest());
            }

            if (string.Equals(movie.Title, movie.Description))
            {
                ModelState.AddModelError("Description", "Description and title cannot be the same.");
            }

            if (_moviesRepository.MovieExists(movie.Title))
            {
                ModelState.AddModelError("Title", "Movie by that title already exists.");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(movie));
            }

            var newMovie = Mapper.Map <Movie>(movie);

            _moviesRepository.AddMovie(newMovie);

            if (!_moviesRepository.Save())
            {
                return(StatusCode(500, "Issue adding movie to collection. Please try again."));
            }

            var movieToReturn = Mapper.Map <MovieDto>(newMovie);

            return(CreatedAtRoute("GetMovie", new { id = movieToReturn.Id }, movieToReturn));
        }
Exemplo n.º 4
0
        public async Task <ActionResult <MovieReadDto> > Create(MovieCreateDto movieCreateDto)
        {
            var movie = _mapper.Map <Movie>(movieCreateDto);
            await _dbContext.CreateAsync(_collectionName, movie);

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

            return(CreatedAtRoute(nameof(GetMovieById), new { id = movie.Id.ToString() }, movieReadDto));
        }
        public async Task <IActionResult> CreateMovie(MovieCreateDto movieCreateDto)
        {
            var movie = _mapper.Map <Movie>(movieCreateDto);

            _movieRepository.CreateMovie(movie);

            await _movieRepository.SaveChangesAsync();

            await _movieRepository.GetMovieAsyncr(movie.Id);

            return(CreatedAtRoute("GetMovie", new { id = movie.Id }, movie));
        }
Exemplo n.º 6
0
        public async Task <ActionResult> Edit(int id, MovieCreateDto value)
        {
            if (!TryValidateModel(value))
            {
                return(View(value));
            }
            await CommandBus.SendAsync(new MovieUpdateCommand()
            {
                AggregateRoot = value.Convert()
            });

            return(RedirectToAction("Index"));
        }
Exemplo n.º 7
0
        public IHttpActionResult Create(MovieCreateDto movie)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var mov = _mapper.Map <MovieCreateDto, Movie>(movie);

            mov.AddedDate = DateTime.Now;

            _context.Movies.Add(mov);
            _context.SaveChanges();
            return(Created(Request.RequestUri + "/" + mov.Id, _mapper.Map <MovieDto>(mov)));
        }
Exemplo n.º 8
0
        public IHttpActionResult Update(int id, MovieCreateDto movie)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var mov = _context.Movies.FirstOrDefault(x => x.Id == id);

            if (mov == null)
            {
                return(NotFound());
            }
            _mapper.Map(movie, mov);
            _context.SaveChanges();
            return(Ok(_mapper.Map <Movie, MovieDto>(mov)));
        }
Exemplo n.º 9
0
        public Movie Create(MovieCreateDto dto)
        {
            string imageName = fileService.Save(dto.Upload);
            var    entity    = new Movie
            {
                Title                                  = dto.Title,
                Content                                = dto.Content,
                Tags                                   = dto.Tags != null?string.Join(',', dto.Tags) : null,
                                            Img        = imageName,
                                            CategoryId = dto.CategoryId,
                                            Length     = dto.Length,
                                            CreatedAt  = System.DateTime.Now,
                                            Released   = dateTimeUtils.Parse(dto.Released)
            };

            return(repository.Add(entity));
        }
        public ActionResult <MovieReadDto> CreateMovie(MovieCreateDto movieCreateDto)
        {
            if (movieCreateDto.GenreId <= 0)
            {
                return(BadRequest(new { Message = "GenreId was not supplied in request body" }));
            }
            var movieModel        = this.mapper.Map <Movie>(movieCreateDto);
            var createdMovieModel = this.movieRepo.Create(movieModel);

            if (movieModel == null)
            {
                return(StatusCode(500));
            }
            else
            {
                var movieReadDto = this.mapper.Map <MovieReadDto>(createdMovieModel);
                return(CreatedAtRoute(nameof(GetMovieById), new { id = movieReadDto.Id }, movieReadDto));
            }
        }
Exemplo n.º 11
0
        public void Execute(MovieCreateDto request)
        {
            _validator.ValidateAndThrow(request);

            var movie = _mapper.Map <Movie>(request);

            foreach (var md in request.Directors)
            {
                movie.MovieDirectors.Add(new MovieDirector
                {
                    Movie      = movie,
                    DirectorID = md
                });
            }

            _context.Movies.Add(movie);

            _context.SaveChanges();
        }
Exemplo n.º 12
0
        public IActionResult CreateMovie([FromForm] MovieCreateDto movieCreateDto)
        {
            if (movieCreateDto == null)
            {
                return(BadRequest(ModelState));
            }

            if (_movieRepo.MovieExists(movieCreateDto.Name))
            {
                ModelState.AddModelError("", "La pelicula ya existe.");
                return(StatusCode(404, ModelState));
            }

            // Subida de archivos
            var file      = movieCreateDto.Image;
            var mainRoute = _hostEnvironment.WebRootPath;
            var files     = HttpContext.Request.Form.Files;

            if (file.Length > 0) // existe la imagen?
            {
                // Nueva imagen
                var photoName = Guid.NewGuid().ToString();
                var folder    = Path.Combine(mainRoute, @"photos");
                var extension = Path.GetExtension(files[0].FileName);

                using (var fileStream = new FileStream(Path.Combine(folder, photoName + extension), FileMode.Create))
                {
                    files[0].CopyTo(fileStream);
                }
                movieCreateDto.ImageRout = @"\photos\" + photoName + extension;
            }

            var movie = _mapper.Map <Movie>(movieCreateDto);

            if (!_movieRepo.CreateMovie(movie))
            {
                ModelState.AddModelError("", $"Algo salió mal gurdando la pelicula {movie.Name}");
                return(StatusCode(500, ModelState));
            }
            return(CreatedAtRoute("GetMovie", new { id = movie.Id }, movie));
        }
Exemplo n.º 13
0
 public virtual Task <MovieDto> CreateAsync(MovieCreateDto input)
 {
     return(_movieAppService.CreateAsync(input));
 }
Exemplo n.º 14
0
 public IActionResult Post([FromBody] MovieCreateDto dto, [FromServices] ICreateMovieCommand command)
 {
     _executor.ExecuteCommand(command, dto);
     return(Ok("uneot"));
 }