public IActionResult Create([FromBody] MovieCreateInputModel inputModel) { if (inputModel == null) { return(BadRequest()); } using (var transaction = this.context.Database.BeginTransaction()) { try { var entity = new EntityFramework.Entities.Movie { Title = inputModel.Title, ReleaseYear = inputModel.ReleaseYear, Summary = inputModel.Summary, DirectorId = inputModel.DirectorId }; this.context.Movies.Add(entity); this.context.SaveChanges(); foreach (var actor in inputModel.Actors) { this.context.MovieActors.Add(new EntityFramework.Entities.MovieActor { MovieId = entity.Id, ActorId = actor.ActorId, Role = actor.Role }); } this.context.SaveChanges(); transaction.Commit(); var outputModel = new { entity.Id, entity.Title, entity.ReleaseYear, entity.Summary, entity.DirectorId }; return(CreatedAtRoute("GetMovie", new { id = outputModel.Id }, outputModel)); } catch (System.Exception ex) { transaction.Rollback(); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } } }
public IActionResult Update(int id, [FromBody] MovieUpdateInputModel inputModel) { if (inputModel == null || id != inputModel.Id) { return(BadRequest()); } var entity = new EntityFramework.Entities.Movie { Id = inputModel.Id, Title = inputModel.Title, ReleaseYear = inputModel.ReleaseYear, Summary = inputModel.Summary, DirectorId = inputModel.DirectorId }; this.context.Movies.Update(entity); this.context.SaveChanges(); return(NoContent()); }