Beispiel #1
0
        public async Task <IDataResult <Rental> > AddAsync(RentalAddDto rentalCreateDto)
        {
            var ruleResult = BusinessRules.Run(
                (await CheckRentDateAsync(rentalCreateDto.CarId, rentalCreateDto.RentDate)),
                CheckIfReturnDateSmallOfRentDate(rentalCreateDto.RentDate, rentalCreateDto.ReturnDate.Value),
                (await CheckCreditScoreByCustomerIdAsync(rentalCreateDto.CustomerId, rentalCreateDto.CarId)));

            if (!ruleResult.Success)
            {
                return(new ErrorDataResult <Rental>(null, ruleResult.Message));
            }

            var rentalToAdd = new Rental()
            {
                CarId      = rentalCreateDto.CarId,
                CustomerId = rentalCreateDto.CustomerId,
                RentDate   = rentalCreateDto.RentDate,
                ReturnDate = rentalCreateDto.ReturnDate
            };

            bool addResult = await _rentalDal.AddAsync(rentalToAdd);

            if (addResult == true)
            {
                return(new SuccessDataResult <Rental>(rentalToAdd, Messages.RentalAdded));
            }
            else
            {
                return(new ErrorDataResult <Rental>(null, Messages.RentalNotAdded));
            }
        }
Beispiel #2
0
        public async Task <IActionResult> Add(RentalAddDto addDto)
        {
            var result = await _rentalService.AddAsync(_mapper.Map <Rental>(addDto));

            if (result.Success)
            {
                return(Created("", result));
            }
            return(BadRequest(result));
        }
        public IActionResult Add(RentalAddDto rentalAddDto)
        {
            var result = _rentalService.Add(rentalAddDto);

            if (result.Success)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
Beispiel #4
0
        private IResult CheckIfCarIsRented(RentalAddDto rentalAddDto)
        {
            // İlgili aracın dönüş tarihi varsa - Araç kiralanmış
            var result = _rentalDal.GetAll(p => p.CarId == rentalAddDto.CarId && p.ReturnDate != null);

            if (result.Count > 0)
            {
                return(new ErrorResult(Messages.RentalReturnDateError));
            }
            return(new SuccessResult());
        }
Beispiel #5
0
        public async Task <IActionResult> AddAsync(RentalAddDto rentalCreateDto)
        {
            var result = await _rentalService.AddAsync(rentalCreateDto);

            if (result.Success)
            {
                return(Ok(result));
            }

            return(BadRequest(result));
        }
Beispiel #6
0
        public IResult Add(RentalAddDto rentalAddDto)
        {
            //Business rules
            IResult result = BusinessRules.Run(CheckIfCarIsRented(rentalAddDto));

            if (result != null)
            {
                return(result);
            }
            // mapper
            Rental rental = _mapper.Map <Rental>(rentalAddDto);

            _rentalDal.Add(rental);
            return(new SuccessResult(Messages.RentalAdded));
        }
        public IDataResult <int> AddDto(RentalAddDto rentalAddDto)
        {
            Rental rentalToAdd = new Rental()
            {
                CarID         = Convert.ToInt32(rentalAddDto.CarId),
                CustomerID    = rentalAddDto.CustomerId,
                RentEndDate   = rentalAddDto.RentEndDate,
                RentStartDate = rentalAddDto.RentStartDate,
                ReturnDate    = rentalAddDto.ReturnDate
            };

            _rentalDal.Add(rentalToAdd);

            return(new SuccessDataResult <int>(rentalToAdd.Id, Messages.RentalAdded));
        }