public async Task <IActionResult> EndRental(int id) { var rental = await _context.Rentals.FindAsync(id); rental.RentalEnd = DateTime.Now; rental.TotalPrice = rentalCostCalculator.Calculate(rental); rental.Bike.CurrentlyRented = false; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RentalExists(id)) { return(NotFound()); } else { throw; } } return(Ok()); }
public void SimpleRental() { var rentalCostCalculator = new RentalCostCalculator(); var rental = new Rental { RentalBegin = new DateTime(2019, 11, 20, 5, 20, 0), RentalEnd = new DateTime(2019, 11, 20, 7, 20, 0), Bike = new Bike { RentalPriceFirstHour = 3, RentalPriceAdditionalHour = 5 } }; var expectedCosts = 8; var costs = rentalCostCalculator.Calculate(rental); Assert.True(costs == expectedCosts, "Result doesn't match expected costs"); }
public void RentalsShorterThan15MinutesAreFree() { var rentalCostCalculator = new RentalCostCalculator(); var rental = new Rental { RentalBegin = new DateTime(2019, 11, 20, 10, 20, 0), RentalEnd = new DateTime(2019, 11, 20, 10, 30, 0), Bike = new Bike { RentalPriceFirstHour = 3, RentalPriceAdditionalHour = 5 } }; var expectedCosts = 0; var costs = rentalCostCalculator.Calculate(rental); Assert.True(costs == expectedCosts, "Rental shorter than 15 Minutes should be free"); }