Beispiel #1
0
        public IResult Add(RentalForAddDto rental)
        {
            int authUserId = _httpContextAccessor.HttpContext.User.GetAuthenticatedUserId();
            var customer   = _customerService.GetByUserId(authUserId);

            if (customer.Success == false)
            {
                return(new ErrorResult());
            }
            var result = BusinessRules.Run(IsCarReturned(rental.CarId), IsCarExists(rental.CarId), IsFindexEnough(rental.CarId, customer.Data.Id));

            if (result != null)
            {
                return(result);
            }
            var    carToRent   = _carService.GetById(rental.CarId);
            Rental rentalToAdd = new Rental();

            rentalToAdd.RentDate   = DateTime.Now;
            rentalToAdd.CarId      = rental.CarId;
            rentalToAdd.CustomerId = customer.Data.Id;
            rentalToAdd.RentDays   = rental.RentDays;
            rentalToAdd.TotalPrice = (decimal)rental.RentDays * carToRent.Data.DailyPrice;
            _rentalDal.Add(rentalToAdd);
            return(new SuccessResult(Messages.RentalAdded));
        }
Beispiel #2
0
        public IActionResult Add(RentalForAddDto rental)
        {
            var result = _rentalService.Add(rental);

            return(StatusCode(result.Success ? 200 : 400, result));
        }