Beispiel #1
0
        public static void WriteFlightInDB(Flight.IFlight Flight, string Comment)
        {
            Console.WriteLine("Do you want to write these data in the database? [y/n]");
            string DataWriteDecision = Console.ReadLine();

            if (DataWriteDecision == "y")
            {
                FlightModel Myflight = new FlightModel(0, Flight.TakeOffSiteID, Flight.LandingSiteID, Flight.GliderID, Flight.GetTakeOffDateString(),
                                                       Flight.GetFlownDistance(0), Flight.GetDuration().TotalSeconds, Flight.GetCumulativeElevation(),
                                                       Flight.GetMaximumHeight(), Flight.FlightFilename, Flight.FlightType, Comment);
                SqliteDataAccess.SaveFlights(Myflight);

                int FlightID = SqliteDataAccess.LoadLastSavedFlight().FlightID;
                List <TraceSampleModel> FlightTrace = new List <TraceSampleModel>();
                for (int i = 0; i < Flight.FlightHeights.Length; ++i)
                {
                    FlightTrace.Add(new TraceSampleModel(0, FlightID, Flight.FlightLatitudes[i], Flight.FlightLongitudes[i], Flight.FlightHeights[i]));
                }
                SqliteDataAccess.SaveFlightTraceSamples(FlightTrace);
                Console.WriteLine("Data written");
            }
            else
            {
                Console.WriteLine("Data writing aborted");
            }
        }
        public static void SaveFlights(FlightModel flight)
        {
            string SqliteCmd = "insert into Flight (TakeOffSiteID, LandingSiteID, GliderID, TakeOffDateTime, FlownDistance, FlightDuration, CumulatedElevation, MaxAltitude, File, FlightType, Comment) values("
                               + flight.TakeOffSiteID + ", "
                               + flight.LandingSiteID + ", "
                               + flight.GliderID + ", '"
                               + flight.TakeOffDateTime + "', "
                               + flight.FlownDistance.ToString(CultureEN) + ", "
                               + flight.FlightDuration.ToString(CultureEN) + ", "
                               + flight.CumulatedElevation.ToString(CultureEN) + ", "
                               + flight.MaxAltitude.ToString(CultureEN) + ", '"
                               + flight.File + "', "
                               + flight.FlightType + ", '"
                               + flight.Comment + "')";

            using var connection = new SQLiteConnection(LoadConnectionString());
            connection.Open();
            using var cmd = new SQLiteCommand(SqliteCmd, connection);
            cmd.ExecuteNonQuery();
        }
        public static FlightModel LoadLastSavedFlight()
        {
            string SqliteCmd = "SELECT FlightID, TakeOffSiteID, LandingSiteID, GliderID, TakeOffDateTime, FlownDistance, FlightDuration, CumulatedElevation, MaxAltitude, File, FlightType, Comment FROM Flight Where FlightID = (SELECT MAX(FlightID) FROM Flight)";

            using var connection = new SQLiteConnection(LoadConnectionString());
            connection.Open();
            using var cmd = new SQLiteCommand(SqliteCmd, connection);
            using SQLiteDataReader reader = cmd.ExecuteReader();
            reader.Read();
            FlightModel LastFlight = new FlightModel(reader.GetInt32(0),
                                                     reader.GetInt32(1),
                                                     reader.GetInt32(2),
                                                     reader.GetInt32(3),
                                                     reader.GetString(4),
                                                     reader.GetDouble(5),
                                                     reader.GetDouble(6),
                                                     reader.GetDouble(7),
                                                     reader.GetDouble(8),
                                                     reader.GetString(9),
                                                     reader.GetInt32(10),
                                                     reader.GetString(11));

            return(LastFlight);
        }