Пример #1
0
        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));
        }
Пример #2
0
        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));
        }