[Route("ClosestAircraft.json")] // pre-version 3 route public void GetClosest(double?lat = null, double?lng = null) { ProximityGadgetAircraftJson result = null; var context = Context; var config = Factory.ResolveSingleton <ISharedConfiguration>().Get(); if (!context.IsInternet || config.InternetClientSettings.AllowInternetProximityGadgets) { var feedManager = Factory.ResolveSingleton <IFeedManager>(); var feed = feedManager.GetByUniqueId(config.GoogleMapSettings.ClosestAircraftReceiverId, ignoreInvisibleFeeds: true); if (feed?.AircraftList != null) { var aircraftList = feed.AircraftList.TakeSnapshot(out var unused1, out var unused2); result = ProximityGadgetAircraftJson.ToModel(aircraftList, lat, lng); } if (result == null) { result = new ProximityGadgetAircraftJson() { WarningMessage = "Receiver is offline", }; } } _WebApiResponder.ReturnJsonObject(context, result, null, null, MimeType.Text); }
public void ProximityGadgetAircraftJson_ToModel_Returns_The_Closest_Aircraft() { var worksheet = new ExcelWorksheetData(TestContext); var originLatitude = worksheet.NDouble("GadgetLat"); var originLongitude = worksheet.NDouble("GadgetLng"); var aircraft = CreateAircraft(2); for (int i = 1; i <= 2; ++i) { aircraft[i - 1].Callsign = i.ToString(); aircraft[i - 1].Latitude = worksheet.NFloat(String.Format("AC{0}Lat", i)); aircraft[i - 1].Longitude = worksheet.NFloat(String.Format("AC{0}Lng", i)); } var model = ProximityGadgetAircraftJson.ToModel(aircraft, originLatitude, originLongitude); var closestCallsign = worksheet.String("Closest"); if (closestCallsign == null) { Assert.IsNull(model.ClosestAircraft); } else { Assert.AreEqual(closestCallsign, model.ClosestAircraft.Callsign); } }
public void ProximityGadgetAircraftJson_ToModel_Returns_List_Of_Aircraft_Transmitting_An_Emergency_Squawk() { var aircraft = CreateAircraft(2); var model = ProximityGadgetAircraftJson.ToModel(aircraft, 1, 1); Assert.AreEqual(0, model.EmergencyAircraft.Count); aircraft[0].Emergency = true; aircraft[0].Callsign = "TEST"; model = ProximityGadgetAircraftJson.ToModel(aircraft, 1, 1); Assert.AreEqual(1, model.EmergencyAircraft.Count); Assert.AreEqual("TEST", model.EmergencyAircraft[0].Callsign); aircraft[1].Emergency = true; model = ProximityGadgetAircraftJson.ToModel(aircraft, 1, 1); Assert.AreEqual(2, model.EmergencyAircraft.Count); }
public void ProximityGadgetAircraftJson_ToModel_Warns_If_Location_Not_Specified() { var warning = "Position not supplied"; var aircraft = CreateAircraft(1); aircraft[0].Latitude = 1; aircraft[0].Longitude = 1; var model = ProximityGadgetAircraftJson.ToModel(aircraft, null, null); Assert.AreEqual(warning, model.WarningMessage); model = ProximityGadgetAircraftJson.ToModel(aircraft, 1, null); Assert.AreEqual(warning, model.WarningMessage); model = ProximityGadgetAircraftJson.ToModel(aircraft, null, 1); Assert.AreEqual(warning, model.WarningMessage); model = ProximityGadgetAircraftJson.ToModel(aircraft, 1, 1); Assert.AreEqual(null, model.WarningMessage); }
[Route("ClosestAircraft.json")] // pre-version 3 route public HttpResponseMessage GetClosest(double?lat = null, double?lng = null) { ProximityGadgetAircraftJson result = null; var context = PipelineContext; var config = Factory.Singleton.ResolveSingleton <ISharedConfiguration>().Get(); if (!context.Request.IsInternet || config.InternetClientSettings.AllowInternetProximityGadgets) { var feedManager = Factory.Singleton.ResolveSingleton <IFeedManager>(); var feed = feedManager.GetByUniqueId(config.GoogleMapSettings.ClosestAircraftReceiverId, ignoreInvisibleFeeds: true); if (feed?.AircraftList != null) { long unused1, unused2; var aircraftList = feed.AircraftList.TakeSnapshot(out unused1, out unused2); result = ProximityGadgetAircraftJson.ToModel(aircraftList, lat, lng); } if (result == null) { result = new ProximityGadgetAircraftJson() { WarningMessage = "Receiver is offline", }; } } var json = JsonConvert.SerializeObject(result); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(json, Encoding.UTF8, MimeType.Text); return(response); }
public void ProximityGadgetAircraftJson_ToModel_Returns_Null_If_Passed_Null() { Assert.IsNull(ProximityGadgetAircraftJson.ToModel(null, 1.0, 1.0)); }