コード例 #1
0
        public DatabaseViewModel()
        {
            //string fn = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Data", Settings.Default.Database);
            if (File.Exists(Settings.Default.Database))
            {
                this.ConnectioString = $"Data Source = {Settings.Default.Database}; Cache = Shared";
            }

            this.Airports   = this.FillAirports();
            this.Runways    = this.FillRunways();
            this.RunwayEnds = this.FillRunwayEnds();
            this.Parkings   = this.FillParking();

            AirPortInfo ai = this.GetAiportInfo("LHBP");

            string res = JsonConvert.SerializeObject(ai);

            Console.WriteLine(res);
        }
コード例 #2
0
        public AirPortInfo GetAiportInfo(string ident)
        {
            AirPortInfo ai = new AirPortInfo();

            ai.AirPort = this.Airports.Where(k => k.ident == ident).FirstOrDefault();
            ai.Runways = new List <RunwayInfo>();

            List <Runway> runways = this.Runways.Where(k => k.airport_id == ai.AirPort.airport_id).ToList();

            foreach (Runway rw in runways)
            {
                RunwayInfo ri = new RunwayInfo();
                ri.Runway = rw;

                ri.PrimaryEnd   = this.RunwayEnds.Where(k => k.runway_end_id == rw.primary_end_id).FirstOrDefault();
                ri.SecondaryEnd = this.RunwayEnds.Where(k => k.runway_end_id == rw.primary_end_id).FirstOrDefault();
                ai.Runways.Add(ri);
            }
            return(ai);
        }
コード例 #3
0
ファイル: WSServer.cs プロジェクト: jungervin/SimPanel
        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\"}");
            }
        }