public async Task <ActionResult> Put([FromForm] CreateMovieDto createMovieDto, int id) { var movie = await _dbContext.Movies. Include(x => x.MovieActors) .Include(x => x.MovieGenders) .FirstOrDefaultAsync(x => x.Id == id); if (movie == null) { return(NotFound()); } movie = _mapper.Map(createMovieDto, movie); _dbContext.Entry(movie).State = EntityState.Modified; if (createMovieDto.Poster != null) { using (var memoryStream = new MemoryStream()) { await createMovieDto.Poster.CopyToAsync(memoryStream); var content = memoryStream.ToArray(); var extension = Path.GetExtension(createMovieDto.Poster.FileName); movie.Poster = await _fileStore.EditFile(content, extension, container, movie.Poster, createMovieDto.Poster.ContentType); } } AssignActorsOrder(movie); await _dbContext.SaveChangesAsync(); return(NoContent()); }
public async Task <APIResponse> Post(CreateMovieDto createMovieDto) { try { if (createMovieDto.Image != null) { string path = GetDefaultMoviePath(); using (var fileStream = new FileStream(path, FileMode.Create)) { await createMovieDto.Image.CopyToAsync(fileStream); createMovieDto.ImageURL = Path.GetRelativePath(_webHostEnvironment.WebRootPath, path); } } var movie = _mapper.Map <Movie>(createMovieDto); _cinemaDbContext.Movies.Add(movie); await _cinemaDbContext.SaveChangesAsync(); return(APIResponse.GetAPIResponse((int)HttpStatusCode.Created, "Movie Created Successfully", movie)); } catch (Exception x) { return(APIResponse.GetAPIResponse((int)HttpStatusCode.BadRequest, x.InnerException?.Message ?? x.Message, null)); } }
public async Task <ActionResult> Post([FromForm] CreateMovieDto createMovieDto) { var movie = _mapper.Map <Movie>(createMovieDto); if (createMovieDto != null) { using (var memoryStream = new MemoryStream()) { await createMovieDto.Poster.CopyToAsync(memoryStream); var content = memoryStream.ToArray(); var extension = Path.GetExtension(createMovieDto.Poster.FileName); movie.Poster = await _fileStore.SaveFile(content, extension, container, createMovieDto.Poster.ContentType); } } AssignActorsOrder(movie); _dbContext.Add(movie); await _dbContext.SaveChangesAsync(); var movieDto = _mapper.Map <MovieDto>(movie); return(new CreatedAtRouteResult("GetMovie", new { id = movie.Id }, movieDto)); }
public async Task CreateMovieWithExistinggActor_NoMovieCreated_ReturnsNotFound() { //Arrange int actorId = 1; _mockActorRepository.Setup(x => x.GetAsync(actorId)).Returns(Task.FromResult <Actor>(new Actor() { Id = actorId })); var request = new CreateMovieDto() { Title = "Titanic", Year = 1999, Genre = "Melodrama", ActorIds = new[] { actorId } }; //ACT ActionResult <MovieDto> result = await _controller.CreateMovieWithActors(request); //ASSERT _mockMovieRepository.Verify(x => x.AddAsync(It.Is <Movie>(a => a.Title == request.Title && a.Year == request.Year && a.Genre == request.Genre)), Times.Once); _mockMovieRoleRepository.Verify(x => x.AddAsync(It.Is <MovieRole>(a => a.ActorId == actorId)), Times.Once); _mockMovieRepository.Verify(x => x.SaveAsync(), Times.Once); CreatedAtActionResult createdAtActionResult = Assert.IsType <CreatedAtActionResult>(result.Result); MovieDto movieDto = Assert.IsType <MovieDto>(createdAtActionResult.Value); Assert.Equal(request.Title, movieDto.Title); Assert.Equal(request.Year, movieDto.Year); Assert.Equal(request.Genre, movieDto.Genre); }
public IActionResult Post([FromBody] CreateMovieDto model) { if (model == null) { return(BadRequest("No data")); } if (string.IsNullOrEmpty(model.Title)) { return(BadRequest("No name")); } if (string.IsNullOrEmpty(model.Director)) { return(BadRequest("No director")); } if (model.Year == 0) { return(BadRequest("No year")); } var movie = new Movies { Director = model.Director, Title = model.Title, Year = model.Year, }; var entity = _crud.AddItem(movie); return(Ok(new { movie = entity })); }
public async Task <ActionResult <MovieDto> > CreateMovieWithActors(CreateMovieDto request) { foreach (var actorId in request.ActorIds) { Actor actor = await _actorRepository.GetAsync(actorId); if (actor == null) { return(NotFound("Actor: " + actorId)); } } var newMovie = new Movie() { Title = request.Title, Year = request.Year, Genre = request.Genre }; await _movieRepository.AddAsync(newMovie); foreach (var actorId in request.ActorIds) { await _movieRoleRepository.AddAsync(new MovieRole() { Movie = newMovie, ActorId = actorId }); } await _movieRepository.SaveAsync(); return(CreatedAtAction(nameof(GetMovie), new { movieId = newMovie.Id }, newMovie.ToDto())); }
public async Task <MovieDto> CreateMovieAsync([FromBody] CreateMovieDto createMovie, CancellationToken cancellationToken) { return(await _createMovieCommandHandler.HandleResult(new CreateMovieCommand { MovieData = createMovie }, cancellationToken)); }
public async Task <ActionResult <CreateMovieCommand.Result> > CreateMovie([FromBody] CreateMovieDto movie, [FromHeader] Guid userId, CancellationToken cancellationToken) { var command = Mapping.Map <CreateMovieDto, CreateMovieCommand.Command>(movie); command.UserId = userId; var result = await _commandBus.Send(command, cancellationToken); return(Created("{id}", new { id = result.Id })); }
public IActionResult Create(CreateMovieDto movie) { try { _service.Create(movie); } catch (Exception ex) { throw ex; } return(Ok()); }
public void Execute(CreateMovieDto request) { _validator.ValidateAndThrow(request); var movie = new Movie { Budget = request.Budget, Description = request.Description, Title = request.Title, Price = request.Price, Quantity = request.Quantity, GenreId = request.GenreId, Oscars = request.Oscars, Year = request.Year }; //add into ActorMovie foreach (var item in request.MovieActors) { movie.MovieActors.Add(new ActorMovie { MovieId = movie.Id, ActorId = item.ActorId, ActorCharachterName = item.ActorCharacterName }); } //DirectorMovie foreach (var item in request.MovieDirectors) { movie.MovieDirectors.Add(new DirectorMovie { MovieId = movie.Id, DirectorId = item.DirectorId }); } //WriterMovie foreach (var item in request.MovieWriters) { movie.MovieWriters.Add(new WriterMovie { MovieId = movie.Id, WriterId = item.WriterId }); } _context.Movies.Add(movie); _context.SaveChanges(); }
public async ValueTask <ActionResult> PostMovie(CreateMovieDto createMovieDto) { if (!string.IsNullOrWhiteSpace(createMovieDto.Poster)) { var moviePoster = Convert.FromBase64String(createMovieDto.Poster); createMovieDto.Poster = await _fileStorageService.SaveFile(moviePoster, "jpg", "movies"); } Movie movie = _mapper.Map <Movie>(createMovieDto); _repo.CreateMovie(movie); _repo.SaveChanges(); ReadMovieDto readMovieDto = _mapper.Map <ReadMovieDto>(movie); return(CreatedAtRoute(nameof(GetMovieById), new { id = movie.Id }, readMovieDto)); }
private List <MovieActors> MapMovieActors(CreateMovieDto createMovieDto, Movie movie) { var result = new List <MovieActors>(); if (createMovieDto.Actors == null) { return(result); } foreach (var actor in createMovieDto.Actors) { result.Add(new MovieActors() { ActorId = actor.ActorId, Personage = actor.Personage }); } return(result); }
private List <MovieGenders> MapMovieGenders(CreateMovieDto createMovieDto, Movie movie) { var result = new List <MovieGenders>(); if (createMovieDto.GendersId == null) { return(result); } foreach (var id in createMovieDto.GendersId) { result.Add(new MovieGenders() { GenderId = id }); } return(result); }
public async Task <ActionResult> CreateMovie(CreateMovieDto createMovie) { var movie = new Movie { MovieName = createMovie.Name, Year = createMovie.Year, Genre = createMovie.Genre, }; if (createMovie.ActorIds != null) { movie.MovieActors = new List <MovieActor>(); foreach (var actor in createMovie.ActorIds) { var actorToAdd = new MovieActor { MovieId = movie.Id, ActorId = actor }; movie.MovieActors.Add(actorToAdd); } } context.Add(movie); await context.SaveChangesAsync(); return(CreatedAtAction("GetMovie", new { id = movie.Id }, movie)); }
public async Task <APIResponse> Post([FromForm] CreateMovieDto createMovieDto) { return(await _moviesService.Post(createMovieDto)); }
public IActionResult Post([FromBody] CreateMovieDto dto, [FromServices] ICreateMovieCommand command) { _executor.ExecuteCommand(command, dto); return(StatusCode(StatusCodes.Status201Created)); }