public void InsertOrUpdate(Flight flight) { if (flight.OnBlock.HasValue && flight.OffBlock.HasValue) { flight.FlightTimeTicks = (flight.OnBlock.Value - flight.OffBlock.Value).Ticks; } else { flight.FlightTimeTicks = null; } if (flight.ID == default(int)) { // New entity context.Flight.Add(flight); } else { // Existing entity context.Flight.Attach(flight); context.Entry(flight).State = EntityState.Modified; } }
public ActionResult Book(FlightsBook viewModel) { Connection conn = connectionRepository.Find(viewModel.Connection.ID); Flight bookedFlight = new Flight(); bookedFlight.AircraftTypeICAO = viewModel.AircraftTypeICAO; bookedFlight.AirlineICAO = conn.AirlineICAO; bookedFlight.BookedOn = DateTime.UtcNow; bookedFlight.DepartureAirportICAO = conn.DepartureAirportICAO; bookedFlight.DestinationAirportICAO = conn.DestinationAirportICAO; // TODO maybe change to prefix and id seperated bookedFlight.FlightNumber = conn.Name; bookedFlight.UserID = UserContext.GetCurrent().ID; flightRepository.InsertOrUpdate(bookedFlight); flightRepository.Save(); if (viewModel.Option == 1 || viewModel.Option == 2) { Rotation rotation; if(viewModel.Option == 1) { rotation = new Rotation(); rotation.Name = viewModel.NewRotationName; rotation.Flights = new List<Flight>(); rotation.UserID = UserContext.GetCurrent().ID; } else { rotation = rotationRepository.AllIncluding(m => m.Flights).Single(t => t.ID == viewModel.RotationID.Value); } rotation.Flights.Add(bookedFlight); rotationRepository.InsertOrUpdate(rotation); rotationRepository.Save(); } return RedirectToAction("BookingSaved", new { id = conn.ID }); }
public ActionResult Edit(Flight flight) { if (ModelState.IsValid) { flightRepository.InsertOrUpdate(flight); flightRepository.Save(); return RedirectToAction("Index"); } else { ViewBag.PossibleUser = userRepository.All; ViewBag.PossibleApprovedByUser = userRepository.All; return View(); } }