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); }
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); }
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\"}"); } }