Exemple #1
0
        //public List<Parking> SelectParkings(MapDetailsModel d)
        //{
        //    List<Parking> list = MainWindow.DatabaseViewModel.Parkings.Where(k =>
        //        k.laty >= d.bounds._southWest.lat &&
        //        k.laty <= d.bounds._northEast.lat &&
        //        k.lonx >= d.bounds._southWest.lng &&
        //        k.lonx <= d.bounds._northEast.lng
        //    ).ToList();

        //    return list;
        //    //var db = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Data", Settings.Default.Database);
        //    //var cs = $"Data Source = {db}; Cache = Shared";
        //    //using (var conn = new SQLiteConnection(cs))
        //    //{
        //    //    conn.Open();
        //    //    DataTable dt = new DataTable();
        //    //    SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM PARKING WHERE laty >= @LAT_MIN and laty <= @LAT_MAX and lonx >= @LNG_MIN and lonx <= @LNG_MAX ", conn);
        //    //    //SQLiteCommand cmd = new SQLiteCommand("select * from parking", conn);
        //    //    cmd.Parameters.AddWithValue("@LAT_MIN", d.bounds._southWest.lat);
        //    //    cmd.Parameters.AddWithValue("@LAT_MAX", d.bounds._northEast.lat);
        //    //    cmd.Parameters.AddWithValue("@LNG_MIN", d.bounds._southWest.lng);
        //    //    cmd.Parameters.AddWithValue("@LNG_MAX", d.bounds._northEast.lng);


        //    //    SQLiteDataReader reader = cmd.ExecuteReader();
        //    //    dt.Load(reader);
        //    //    return dt;
        //    //}
        //    //return null;
        //}

        //public DataTable SelectParkings2(MapDetailsModel d)
        //{
        //    var db = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Data", Settings.Default.Database);
        //    var cs = $"Data Source = {db}; Cache = Shared";
        //    using (var conn = new SQLiteConnection(cs))
        //    {
        //        conn.Open();
        //        DataTable dt = new DataTable();
        //        SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM PARKING WHERE laty >= @LAT_MIN and laty <= @LAT_MAX and lonx >= @LNG_MIN and lonx <= @LNG_MAX ", conn);
        //        //SQLiteCommand cmd = new SQLiteCommand("select * from parking", conn);
        //        cmd.Parameters.AddWithValue("@LAT_MIN", d.bounds._southWest.lat);
        //        cmd.Parameters.AddWithValue("@LAT_MAX", d.bounds._northEast.lat);
        //        cmd.Parameters.AddWithValue("@LNG_MIN", d.bounds._southWest.lng);
        //        cmd.Parameters.AddWithValue("@LNG_MAX", d.bounds._northEast.lng);


        //        SQLiteDataReader reader = cmd.ExecuteReader();
        //        dt.Load(reader);
        //        return dt;
        //    }
        //    return null;
        //}


        //public List<AirPort> SelectAirPorts(MapDetailsModel d)
        //{
        //    return MainWindow.DatabaseViewModel.Airports.Where(k =>
        //        //k.ident == "LHBP" &&
        //        k.rating >= d.rating &&
        //        k.laty >= d.bounds._southWest.lat &&
        //        k.laty <= d.bounds._northEast.lat &&
        //        k.lonx >= d.bounds._southWest.lng &&
        //        k.lonx <= d.bounds._northEast.lng

        //    ).ToList();
        //}

        public DataTable SelectRunways2(MapDetailsModel d)
        {
            var db = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Data", Settings.Default.Database);
            var cs = $"Data Source = {db}; Cache = Shared";

            using (var conn = new SQLiteConnection(cs))
            {
                conn.Open();
                DataTable     dt  = new DataTable();
                SQLiteCommand cmd = new SQLiteCommand(@"
SELECT 
    A.IDENT, A.NAME, A.CITY,A.FUEL_FLAGS,A.TOWER_FREQUENCY, A.ATIS_FREQUENCY,
    R.RUNWAY_ID,R.HEADING,R.LONX, R.LATY, R.ALTITUDE
FROM AIRPORT A
LEFT JOIN RUNWAY R ON A.AIRPORT_ID = R.AIRPORT_ID
WHERE A.LATY >= @LAT_MIN AND A.LATY <= @LAT_MAX AND A.LONX >= @LNG_MIN AND A.LONX <= @LNG_MAX AND A.RATING >= @RATING
LIMIT 1000"

                                                      , conn);
                //SQLiteCommand cmd = new SQLiteCommand("select * from parking", conn);
                cmd.Parameters.AddWithValue("@LAT_MIN", d.bounds._southWest.lat);
                cmd.Parameters.AddWithValue("@LAT_MAX", d.bounds._northEast.lat);
                cmd.Parameters.AddWithValue("@LNG_MIN", d.bounds._southWest.lng);
                cmd.Parameters.AddWithValue("@LNG_MAX", d.bounds._northEast.lng);
                cmd.Parameters.AddWithValue("@RATING", d.rating);


                SQLiteDataReader reader = cmd.ExecuteReader();
                dt.Load(reader);
                return(dt);
            }
            return(null);
        }
Exemple #2
0
 public List <VOR> SelectVORs(MapDetailsModel d)
 {
     return(this.VORs.Where(k =>
                            k.laty >= d.bounds._southWest.lat &&
                            k.laty <= d.bounds._northEast.lat &&
                            k.lonx >= d.bounds._southWest.lng &&
                            k.lonx <= d.bounds._northEast.lng
                            ).ToList());
 }
Exemple #3
0
        public List <AirPort> SelectAirPorts(MapDetailsModel d)
        {
            return(this.Airports.Where(k =>
                                       k.rating >= d.rating &&
                                       k.laty >= d.bounds._southWest.lat &&
                                       k.laty <= d.bounds._northEast.lat &&
                                       k.lonx >= d.bounds._southWest.lng &&
                                       k.lonx <= d.bounds._northEast.lng

                                       ).ToList());
        }
Exemple #4
0
        public DataTable SelectParkings(MapDetailsModel d)
        {
            var db = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Data", Settings.Default.Database);
            var cs = $"Data Source = {db}; Cache = Shared";

            using (var conn = new SQLiteConnection(cs))
            {
                conn.Open();
                DataTable     dt  = new DataTable();
                SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM PARKING WHERE laty >= @LAT_MIN and laty <= @LAT_MAX and lonx >= @LNG_MIN and lonx <= @LNG_MAX ", conn);
                //SQLiteCommand cmd = new SQLiteCommand("select * from parking", conn);
                cmd.Parameters.AddWithValue("@LAT_MIN", d.bounds._southWest.lat);
                cmd.Parameters.AddWithValue("@LAT_MAX", d.bounds._northEast.lat);
                cmd.Parameters.AddWithValue("@LNG_MIN", d.bounds._southWest.lng);
                cmd.Parameters.AddWithValue("@LNG_MAX", d.bounds._northEast.lng);


                SQLiteDataReader reader = cmd.ExecuteReader();
                dt.Load(reader);
                return(dt);
            }
            return(null);
        }
Exemple #5
0
        protected override void OnMessage(MessageEventArgs e)
        {
            string res = "";

            if (this.MainWindow != null && this.MainWindow.SimConnectViewModel != null && this.MainWindow.FlightPlanViewModel != null)
            {
                //if (Globals.MainWindow.FlightPlanViewModel.LoadDt != this.LastFlightPlanDt)
                //{
                //    this.Send(Globals.MainWindow.FlightPlanViewModel.FlightPlanJSON);
                //    LastFlightPlanDt = Globals.MainWindow.FlightPlanViewModel.LoadDt;
                //}

                if (e.Data == "getposition")
                {
                    var lat = this.MainWindow.SimConnectViewModel.VarList.Where(k => k.VarName == "PLANE LATITUDE").FirstOrDefault();
                    var lng = this.MainWindow.SimConnectViewModel.VarList.Where(k => k.VarName == "PLANE LONGITUDE").FirstOrDefault();
                    var hdg = this.MainWindow.SimConnectViewModel.VarList.Where(k => k.VarName == "PLANE HEADING DEGREES TRUE").FirstOrDefault();
                    if (lat != null && lng != null && hdg != null)
                    {
                        res = JSon.ToString(res, "PLANE_LATITUDE", lat.Value != null ? (double)lat.Value : 47.434387018741525);
                        res = JSon.ToString(res, "PLANE_LONGITUDE", lng.Value != null ? (double)lng.Value : 19.264183044433597);
                        res = JSon.ToString(res, "PLANE_HEADING_DEGREES_TRUE", hdg.Value != null ? (double)hdg.Value : 0);
                        this.Send("{\"type\":\"position\", \"data\": {" + res + "}}");
                    }
                    else
                    {
                        this.Send("{\"type\":\"status\", \"data\": \"No valid position!\"}");
                    }
                    return;
                }
                else if (this.DealWithDataBase)
                {
                    if (e.Data.StartsWith("{\"cmd\":"))
                    {
                        QueryModel q = JsonConvert.DeserializeObject <QueryModel>(e.Data);
                        if (q.cmd == "getairports")
                        {
                            MapDetailsModel d = JsonConvert.DeserializeObject <MapDetailsModel>(q.data.ToString());


                            AirPortsInfo ai = new AirPortsInfo();
                            ai.AirPorts = Globals.DatabaseViewModel.SelectAirPorts(d);
                            res         = JsonConvert.SerializeObject(ai);
                            this.Send(res);
                            return;
                        }
                        else if (q.cmd == "getparkings")
                        {
                            MapDetailsModel d = JsonConvert.DeserializeObject <MapDetailsModel>(q.data.ToString());

                            ResponseParkings rap = new ResponseParkings();
                            rap.type     = "parkings";
                            rap.parkings = Globals.DatabaseViewModel.SelectParkings(d);
                            res          = JsonConvert.SerializeObject(rap);
                            this.Send(res);
                            return;
                        }
                        else if (q.cmd == "getvors")
                        {
                            MapDetailsModel d = JsonConvert.DeserializeObject <MapDetailsModel>(q.data.ToString());

                            ResponseVORs vrs = new ResponseVORs();
                            vrs.vors = Globals.DatabaseViewModel.SelectVORs(d);
                            res      = JsonConvert.SerializeObject(vrs);
                            this.Send(res);
                            return;
                        }
                        else if (q.cmd == "getairportbyname")
                        {
                            AirPortInfo ai = new AirPortInfo();
                            ai.AirPort = Globals.DatabaseViewModel.SelectAirPorts(q.data.ToString());
                            res        = JsonConvert.SerializeObject(ai);
                            this.Send(res);
                            return;
                        }
                        else if (q.cmd == "getvorbyid")
                        {
                            VORInfo v = new VORInfo();
                            v.VOR = Globals.DatabaseViewModel.SelectVOR((Int64)q.data);
                            res   = JsonConvert.SerializeObject(v);
                            this.Send(res);
                            return;
                        }
                        this.Send("{\"type\":\"status\", \"data\": \"Unknown cmd\"}");
                    }
                    else
                    {
                        this.Send("{\"type\":\"status\", \"data\": \"Unknown query\"}");
                    }
                }
                else
                {
                    this.Send("{\"type\":\"status\", \"data\": \"No database\"}");
                }
            }
            else
            {
                this.Send("{\"type\":\"status\", \"data\": \"Not Connected\"}");
            }
        }