public async Task <IActionResult> PutBike(int id, Bike bike) { if (id != bike.Id) { return(BadRequest()); } _context.Entry(bike).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BikeExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> StartRental([FromQuery] int customerId, [FromQuery] int bikeId) { var customerHasActiveRental = _context.Rentals.Where(rental => rental.RentalEnd == null && rental.CustomerId == customerId).Count() > 0; if (customerHasActiveRental) { return(BadRequest("Customer has already an active rental!")); } var bikeIsNotAvailable = _context.Rentals.Where(rental => rental.RentalEnd == null && rental.BikeId == bikeId).Count() > 0; if (bikeIsNotAvailable) { return(BadRequest("The bike is currently not available!")); } Rental rental = new Rental { BikeId = bikeId, CustomerId = customerId, RentalBegin = DateTime.Now, Paid = false }; _context.Rentals.Add(rental); await _context.SaveChangesAsync(); return(Ok(rental)); }
public async Task <IActionResult> PutCustomer(int id, Customer customer) { if (id != customer.Id) { return(BadRequest()); } _context.Entry(customer).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CustomerExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }