Example #1
0
        [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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        [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);
        }
Example #6
0
 public void ProximityGadgetAircraftJson_ToModel_Returns_Null_If_Passed_Null()
 {
     Assert.IsNull(ProximityGadgetAircraftJson.ToModel(null, 1.0, 1.0));
 }