示例#1
0
文件: Plugin.cs 项目: ts295983632/vrs
        /// <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);
                });
            }
        }