/// <summary> /// Creates or reads all of the database records associated with a <see cref="FlightRecords"/> object. /// </summary> /// <param name="flightRecords"></param> private void WriteFlightRecords(FlightRecords flightRecords) { if (flightRecords.Aircraft.AircraftID == 0 && flightRecords.Flight.FlightID == 0) { _Database.PerformInTransaction(() => { var aircraft = FetchOrCreateAircraft(flightRecords.Aircraft.FirstCreated, flightRecords.Aircraft.ModeS); if (aircraft != null) { var flight = CreateFlight(flightRecords.Flight.StartTime, aircraft.AircraftID, flightRecords.Flight.Callsign); lock (_SyncLock) { flightRecords.Aircraft = aircraft; flightRecords.Flight = ApplyFlightDetails(flightRecords.Flight, flight); } } return(true); }); } }