Example #1
0
        public async Task AddRentalByUserIdAndMovieIdAsync(AddRentalDto model)
        {
            var rental = _mapper.Map <AddRentalDto, RentalDto>(model);

            rental.DateRented = DateTime.Now;
            await AddAsync(rental);
        }
Example #2
0
        public IHttpActionResult CreateRent(AddRentalDto addRentalDto)
        {
            var customerInDb = _context.Customer.Single(
                c => c.Id == addRentalDto.CustomerId);

            var moviesInDb = _context.Movie.Where(
                m => addRentalDto.MovieIds.Contains(m.Id));//below is alternative way

            //var moviesInDb = new List<Movie>();
            //foreach (var movieId in addRentalDto.MovieIds)
            //{
            //    moviesInDb.Add(_context.Movie.Single(m => m.Id == movieId));
            //}

            foreach (var movie in moviesInDb)
            {
                if (movie.NumbersAvailable == 0)
                {
                    return(BadRequest("Movie is not Available"));
                }
                movie.NumbersAvailable--;
                var rental = new Rental()
                {
                    Movie      = movie,
                    Customer   = customerInDb,
                    DateRented = DateTime.Now
                };
                _context.Rental.Add(rental);
            }
            _context.SaveChanges();
            return(Ok());
        }
Example #3
0
        public async Task <IActionResult> AddRentalByUserIdAndMovieIdAsync(AddRentalDto model)
        {
            await _rentalService.AddRentalByUserIdAndMovieIdAsync(model);

            return(Ok());
        }