public IHttpActionResult PostReservation(Reservation reservation) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!free(reservation)) { return(BadRequest()); } reservation.Vehicle = db.Vehicles.Get(reservation.VehicleId); double pricePerHour = GetPrice(reservation.VehicleId); TimeSpan timeSpan = reservation.EndDate - reservation.StartDate; reservation.TotalPrice = timeSpan.TotalHours * pricePerHour; BranchReservation reception = new BranchReservation(); reception.BranchId = reservation.BranchReservations.ElementAt(0).BranchId; reception.Branch = db.Branches.Get(reception.BranchId); reception.Reception = true; BranchReservation returnto = new BranchReservation(); returnto.BranchId = reservation.BranchReservations.ElementAt(1).BranchId; returnto.Branch = db.Branches.Get(returnto.BranchId); returnto.Reception = false; reservation.BranchReservations.Clear(); db.Reservations.Add(reservation); db.SaveChanges(); reception.ReservationId = reservation.Id; reception.Reservation = reservation; returnto.ReservationId = reservation.Id; returnto.Reservation = reservation; db.BranchReservations.Add(reception); db.BranchReservations.Add(returnto); db.SaveChanges(); reservation.BranchReservations.Add(db.BranchReservations.FirstOrDefault(x => x.ReservationId == reservation.Id && x.Reception == true)); reservation.BranchReservations.Add(db.BranchReservations.FirstOrDefault(x => x.ReservationId == reservation.Id && x.Reception == false)); return(Ok(reservation)); }
public IHttpActionResult DeleteReservation(int id) { Reservation reservation = db.Reservations.Get(id); DateTime pomday = reservation.StartDate; pomday.AddDays(1); if (pomday <= DateTime.Now) { return(BadRequest("24")); } if (reservation == null) { return(NotFound()); } if (!db.Vehicles.FirstOrDefault(x => x.Id == reservation.VehicleId).Available) { return(BadRequest()); } BranchReservation br = db.BranchReservations.FirstOrDefault(x => x.Reception == true && x.ReservationId == reservation.Id); BranchReservation br2 = db.BranchReservations.FirstOrDefault(x => x.Reception == false && x.ReservationId == reservation.Id); db.BranchReservations.Remove(br); db.BranchReservations.Remove(br2); db.Reservations.Remove(reservation); try { db.SaveChanges(); } catch (Exception ex) { return(BadRequest()); } return(Ok(reservation)); }
public IHttpActionResult PutReservation(int id, Reservation reservation) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } DateTime pomday = reservation.StartDate; pomday.AddDays(1); if (pomday <= DateTime.Now) { return(BadRequest("24")); } if (id != reservation.Id) { return(BadRequest()); } if (!free(reservation, true)) { return(BadRequest()); } if (!db.Vehicles.FirstOrDefault(x => x.Id == reservation.VehicleId).Available) { return(BadRequest()); } double pricePerHour = GetPrice(reservation.VehicleId); TimeSpan timeSpan = reservation.EndDate - reservation.StartDate; reservation.TotalPrice = timeSpan.TotalHours * pricePerHour; BranchReservation reception = new BranchReservation(); reception.BranchId = reservation.BranchReservations.ElementAt(0).BranchId; reception.Branch = db.Branches.Get(reception.BranchId); reception.Reception = true; BranchReservation returnto = new BranchReservation(); returnto.BranchId = reservation.BranchReservations.ElementAt(1).BranchId; returnto.Branch = db.Branches.Get(returnto.BranchId); returnto.Reception = false; reception.ReservationId = id; returnto.ReservationId = id; reservation.BranchReservations.Clear(); if (!db.BranchReservations.Any(x => x.BranchId == reception.BranchId && x.ReservationId == reception.ReservationId && x.Reception == true)) { BranchReservation pom = db.BranchReservations.FirstOrDefault(x => x.ReservationId == reception.ReservationId && x.Reception == true); db.BranchReservations.Remove(pom); db.BranchReservations.Add(reception); reservation.BranchReservations.Add(pom); } else { reservation.BranchReservations.Add(db.BranchReservations.FirstOrDefault(x => x.BranchId == reception.BranchId && x.ReservationId == reception.ReservationId && x.Reception == true)); } if (!db.BranchReservations.Any(x => x.BranchId == returnto.BranchId && x.ReservationId == returnto.ReservationId && x.Reception == false)) { BranchReservation pom = db.BranchReservations.FirstOrDefault(x => x.ReservationId == returnto.ReservationId && x.Reception == false); db.BranchReservations.Remove(pom); db.BranchReservations.Add(returnto); reservation.BranchReservations.Add(pom); } else { reservation.BranchReservations.Add(db.BranchReservations.FirstOrDefault(x => x.BranchId == returnto.BranchId && x.ReservationId == returnto.ReservationId && x.Reception == false)); } db.Reservations.Update(reservation); try { db.SaveChanges(); } catch (Exception ex) { return(BadRequest("Somebody already change this")); } return(Ok(reservation)); }