Esempio n. 1
0
        public async Task <IActionResult> Update(int id, [FromBody] MovieCreateUpdateRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var updatedMovie = await _moviesService.Update(id, request);

                return(new ObjectResult(updatedMovie));
            }
            catch (InvalidOperationException)
            {
                return(NotFound(new { message = "Movie with specified id is not found" }));
            }
        }
Esempio n. 2
0
 public async Task <MovieResponse> Update(int id, MovieCreateUpdateRequest request)
 {
     return(await _moviesRepository.Update(id, request));
 }
Esempio n. 3
0
 public async Task <MovieResponse> Create(MovieCreateUpdateRequest request)
 {
     return(await _moviesRepository.Create(request));
 }
Esempio n. 4
0
        public async Task <MovieResponse> Create(MovieCreateUpdateRequest request)
        {
            var movie = new Movie
            {
                Title       = request.Title,
                ReleaseDate = request.ReleaseDate,
                GenreId     = request.GenreId
            };

            await _dbContext
            .Movies
            .AddAsync(movie);

            await _dbContext
            .SaveChangesAsync();

            if (request.Actors != null)
            {
                foreach (var actor in request.Actors)
                {
                    var actorToCreate = new Actor
                    {
                        FirstName = actor.FirstName,
                        LastName  = actor.LastName
                    };

                    await _dbContext
                    .Actors
                    .AddAsync(actorToCreate);

                    await _dbContext
                    .ActorMovies
                    .AddAsync(new ActorMovie { ActorId = actorToCreate.Id, MovieId = movie.Id });
                }

                await _dbContext
                .SaveChangesAsync();
            }

            var genre = await _dbContext
                        .Genres
                        .SingleOrDefaultAsync(x => x.Id == request.GenreId);

            return(new MovieResponse
            {
                Id = movie.Id,
                Title = request.Title,
                ReleaseDate = request.ReleaseDate,
                GenreId = genre.Id,
                GenreName = genre.Name,
                Actors = (from ma in _dbContext.ActorMovies
                          from a in _dbContext.Actors
                          where ma.ActorId == a.Id && ma.MovieId == movie.Id
                          select new ActorResponse
                {
                    Id = a.Id,
                    FirstName = a.FirstName,
                    LastName = a.LastName
                }).ToList()
            });
        }