public async Task <ServiceResult> RentAsync(RentingRequestModel requestModel)
        {
            #region Input Validation
            bool customerExists = await _customerService.AnyAsync(c => c.Id == requestModel.CustomerId);

            if (!customerExists)
            {
                return(new ServiceResult
                {
                    StatusCode = HttpStatusCode.BadRequest,
                    Message = "Customer not found"
                });
            }

            var equipmentWithType = (await _equipmentService.GetWithTypeAsync(e => e.Id == requestModel.EquipmentId && e.IsAvailable)).FirstOrDefault();
            if (equipmentWithType is null)
            {
                return(new ServiceResult
                {
                    StatusCode = HttpStatusCode.BadRequest,
                    Message = "Equipment not available"
                });
            }
            #endregion

            RentalModel rentalModel = _mapper.Map <RentalModel>(requestModel);
            rentalModel = await _rentalService.RentAsync(rentalModel, equipmentWithType.TypeId);

            EquipmentModel equipment = _mapper.Map <EquipmentModel>(equipmentWithType);
            equipment.IsAvailable = false;
            _equipmentService.Update(equipment);
            await _equipmentService.SaveChangesAsync();

            return(new ServiceResult
            {
                StatusCode = HttpStatusCode.OK,
                Message = "Success",
                Data = rentalModel
            });
        }
 public async Task <ActionResult <ServiceResult> > RentAsync(RentingRequestModel requestModel)
 {
     return(await _equipmentFacade.RentAsync(requestModel));
 }