public RentalInfo AddNewRental(string vehicleTypeName, string regNo, DateTime rentalDate, double currentMileageKm, CustomerInfo customerInfo) { var rentalInfo = new RentalInfo() { CustomerInfo = customerInfo, RentalNumber = _nextRentalNumber.ToString(), Status = RentalInfo.ERentStatus.Rented, OriginalMileageKm = currentMileageKm, RentalDate = rentalDate, VehicleTypeName = vehicleTypeName, RegNo = regNo }; _rentalItems.Add(rentalInfo); _nextRentalNumber++; return rentalInfo; }
private ReturnReceipt ReturnItem_CheckArguments(ReturnRequest returnRequest, RentalInfo rentalInfo) { if (rentalInfo == null) { return new ReturnReceipt() { Status = ERentalReturnStatus.NotOk, Message = string.Format("Rental with number {0} does not exist in the system.", returnRequest.RentalNumber) }; } if (rentalInfo.Status == RentalInfo.ERentStatus.Returned) { return new ReturnReceipt() { Status = ERentalReturnStatus.NotOk, Message = "The vehicle is already registred as returned." }; } if (returnRequest.ReturnDateTime < rentalInfo.RentalDate) { return new ReturnReceipt() { Status = ERentalReturnStatus.NotOk, Message = "Return date can not be before rental date." }; } if (returnRequest.CurrentMilageKm < rentalInfo.OriginalMileageKm) { return new ReturnReceipt() { Status = ERentalReturnStatus.NotOk, Message = "Milage on returned vehicle can not be less than original milage." }; } return new ReturnReceipt() { Status = ERentalReturnStatus.Ok }; }