public ActionResult <RentalDto> CreateRental(RentalForCreationDto rental) { var rentalEntity = _mapper.Map <Rental>(rental); _carRentalRepository.AddRental(rentalEntity); _carRentalRepository.Save(); var rentalToReturn = _mapper.Map <RentalDto>(rentalEntity); return(CreatedAtRoute("GetRental", new { rentalId = rentalToReturn.Id }, rentalToReturn)); }
public async Task <IActionResult> AddRental([FromBody] RentalForCreationDto rentalForCreationDto) { if (rentalForCreationDto == null) { return(BadRequest()); } var customer = await _repository.GetCustomerAsync(rentalForCreationDto.CustomerId); if (customer == null) { return(NotFound()); } var movie = await _repository.GetMovieAsync(rentalForCreationDto.MovieId); if (movie == null) { return(NotFound()); } if (movie.NumberInStock == 0) { return(BadRequest("Movie out of stock")); } var rental = _mapper.Map <Rental>(rentalForCreationDto); rental.RentalFee = movie.DailyRentalRate; _repository.AddRental(rental); movie.NumberInStock--; await _unitOfWork.CompleteAsync(); var rentalToReturn = _mapper.Map <RentalDto>(rental); return(CreatedAtRoute("GetRental", new { id = rentalToReturn.Id }, rentalToReturn)); }