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()); }
public async Task <IActionResult> EndRental(int id, Rental rental) { if (id != rental.RentalId) { return(BadRequest()); } _context.Entry(rental).State = EntityState.Modified; try { rental.RentalEnd = DateTime.Now; rental.TotalCost = CalcTotalCost(rental); await _context.SaveChangesAsync(); return(rental); } catch (DbUpdateConcurrencyException) { if (!RentalExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutBike(int id, Bike bike) { if (id != bike.BikeId) { return(BadRequest()); } _context.Entry(bike).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BikeExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private async Task <IActionResult> PutRental(int id, Rental rental) { if (id != rental.RentalId) { return(BadRequest()); } _context.Entry(rental).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RentalExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <Rental> > PostRental(Rental rental) { var bike = await _context.Bikes.FindAsync(rental.BikeId); var customer = await _context.Customers.FindAsync(rental.CustomerId); if (bike.IsRented) { return(BadRequest()); } if (customer.Rentals != null && customer.Rentals.Last().RentalEnd != DateTime.MaxValue) { return(BadRequest()); } bike.IsRented = true; rental.RentalBegin = DateTime.Now; rental.RentalEnd = DateTime.MaxValue; rental.RentalCost = default; _context.Rentals.Add(rental); await _context.SaveChangesAsync(); return(CreatedAtAction("GetRental", new { id = rental.RentalId }, rental)); }
public async Task <ActionResult <Customer> > PostCustomer(Customer customer) { _context.Customers.Add(customer); await _context.SaveChangesAsync(); return(CreatedAtAction("GetCustomer", new { id = customer.ID }, customer)); }
public async Task <ActionResult <Bike> > PostBike(Bike bike) { _context.Bikes.Add(bike); await _context.SaveChangesAsync(); return(CreatedAtAction("GetBike", new { id = bike.ID }, bike)); }
public async Task <ActionResult <Rental> > PostRental(Rental rental) { var bike = await _context.Bikes.FindAsync(rental.BikeID); var customer = await _context.Customers.FindAsync(rental.CustomerID); if (bike.IsRented || customer.HasActiveRental) { return(BadRequest()); } bike.IsRented = true; customer.HasActiveRental = true; rental.RentalBegin = System.DateTime.Now; rental.RentalEnd = default; rental.TotalCost = default; _context.Rentals.Add(rental); await _context.SaveChangesAsync(); return(CreatedAtAction("GetRental", new { id = rental.ID }, rental)); }