public async Task <ActorResponse> Update(int id, ActorCreateUpdateRequest request) { var actor = await _dbContext .Actors .SingleAsync(x => x.Id == id); actor.FirstName = request.FirstName; actor.LastName = request.LastName; await _dbContext .SaveChangesAsync(); return(new ActorResponse { Id = actor.Id, FirstName = actor.FirstName, LastName = actor.LastName, Movies = (from ma in _dbContext.ActorMovies from m in _dbContext.Movies where ma.ActorId == actor.Id && ma.MovieId == m.Id select new MovieResponse { Id = m.Id, Title = m.Title, ReleaseDate = m.ReleaseDate, GenreId = m.GenreId, GenreName = _dbContext.Genres.First(g => g.Id == m.GenreId).Name, Actors = null }).ToList() }); }
public async Task <IActionResult> Create([FromBody] ActorCreateUpdateRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var newlyAddedActor = await _actorsService.Create(request); return(CreatedAtRoute("GetActor", new { id = newlyAddedActor }, newlyAddedActor)); }
public async Task <ActorResponse> Create(ActorCreateUpdateRequest request) { var actor = new Actor { FirstName = request.FirstName, LastName = request.LastName }; await _dbContext .Actors .AddAsync(actor); await _dbContext .SaveChangesAsync(); if (request.MovieId.HasValue) { await _dbContext .ActorMovies .AddAsync(new ActorMovie { ActorId = actor.Id, MovieId = request.MovieId.Value }); } await _dbContext. SaveChangesAsync(); return(new ActorResponse { Id = actor.Id, FirstName = actor.FirstName, LastName = actor.LastName, Movies = (from ma in _dbContext.ActorMovies from m in _dbContext.Movies where ma.ActorId == actor.Id && ma.MovieId == m.Id select new MovieResponse { Id = m.Id, Title = m.Title, ReleaseDate = m.ReleaseDate, GenreId = m.GenreId, GenreName = _dbContext.Genres.First(g => g.Id == m.GenreId).Name, Actors = null }).ToList() }); }
public async Task <IActionResult> Update(int id, [FromBody] ActorCreateUpdateRequest request) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var updatedActor = await _actorsService.Update(id, request); return(new ObjectResult(updatedActor)); } catch (InvalidOperationException) { return(NotFound(new { message = "Actor with specified id is not found" })); } }
public async Task <ActorResponse> Update(int id, ActorCreateUpdateRequest request) { return(await _actorsRepository.Update(id, request)); }
public async Task <ActorResponse> Create(ActorCreateUpdateRequest request) { return(await _actorsRepository.Create(request)); }