public async Task Delete(CreateDeleteRelationshipRequest request) { var movie = await _dbContext .Movies .FirstOrDefaultAsync(x => x.Id == request.MovieId); if (movie == null) { throw new InvalidOperationException("Movie with specified id is not found"); } var actor = await _dbContext .Actors .FirstOrDefaultAsync(x => x.Id == request.ActorId); if (actor == null) { throw new InvalidOperationException("Actor with specified id is not found"); } _dbContext .ActorMovies .Remove( await _dbContext .ActorMovies .Where(x => x.ActorId == request.ActorId && x.MovieId == request.MovieId) .FirstAsync() ); await _dbContext .SaveChangesAsync(); }
public async Task <IActionResult> Delete([FromBody] CreateDeleteRelationshipRequest request) { try { await _relationshipService.Delete(request); return(new NoContentResult()); } catch (InvalidOperationException e) { return(NotFound(new { message = e.Message })); } }
public async Task <IActionResult> Create([FromBody] CreateDeleteRelationshipRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var newlyAddedRelationship = await _relationshipService.Create(request); return(new ObjectResult(newlyAddedRelationship)); } catch (InvalidOperationException e) { return(NotFound(new { message = e.Message })); } }
public async Task <RelationshipResponse> Create(CreateDeleteRelationshipRequest request) { var movie = await _dbContext .Movies .FirstOrDefaultAsync(x => x.Id == request.MovieId); if (movie == null) { throw new InvalidOperationException("Movie with specified id is not found"); } var actor = await _dbContext .Actors .FirstOrDefaultAsync(x => x.Id == request.ActorId); if (actor == null) { throw new InvalidOperationException("Actor with specified id is not found"); } await _dbContext .ActorMovies .AddAsync(new ActorMovie { ActorId = request.ActorId, MovieId = request.MovieId }); await _dbContext .SaveChangesAsync(); return(new RelationshipResponse { MovieId = request.MovieId, ActorId = request.ActorId }); }
public async Task <RelationshipResponse> Create(CreateDeleteRelationshipRequest request) { return(await _relationshipRepository.Create(request)); }
public async Task Delete(CreateDeleteRelationshipRequest request) { await _relationshipRepository.Delete(request); }