예제 #1
0
        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 }));
            }
        }
예제 #4
0
        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
            });
        }
예제 #5
0
 public async Task <RelationshipResponse> Create(CreateDeleteRelationshipRequest request)
 {
     return(await _relationshipRepository.Create(request));
 }
예제 #6
0
 public async Task Delete(CreateDeleteRelationshipRequest request)
 {
     await _relationshipRepository.Delete(request);
 }