Example #1
0
        public static async Task <List <OverflightAccessResult <T> > > GetRegionalOverflight <T>(
            OverflightAccessData <IVerifiable> overflightData) where T : IPathResult
        {
            var relativeUri = string.Empty;

            overflightData.Verify();

            switch (overflightData.Path)
            {
            case PointToPointRouteData _:
                relativeUri = ServiceUris.OverflightPointToPointUri;
                break;

            case Sgp4RouteData _:
                relativeUri = ServiceUris.OverflightSgp4Uri;
                break;

            case SimpleFlightRouteData _:
                relativeUri = ServiceUris.OverflightSimpleFlightUri;
                break;

            case GreatArcRouteData _:
                relativeUri = ServiceUris.OverflightGreatArcUri;
                break;

            case CatalogRouteData _:
                relativeUri = ServiceUris.OverflightCatalogObjectUri;
                break;
            }

            if (string.IsNullOrEmpty(relativeUri))
            {
                throw new ArgumentOutOfRangeException(nameof(overflightData), overflightData.Path,
                                                      overflightData.Path + " is not a valid type for Overflight Access");
            }

            var uri = Networking.GetFullUri(relativeUri);

            return(await Networking.HttpPostCall <OverflightAccessData <IVerifiable>, List <OverflightAccessResult <T> > >(uri, overflightData));
        }
Example #2
0
        public void IssForThirtyMinutes()
        {
            var overflightInput = new OverflightAccessData <IVerifiable> {
                IncludePath = true
            };
            var path = new Sgp4RouteData
            {
                Start          = DateTimeOffset.Parse("2014-02-10T00:00:00Z"),
                Stop           = DateTimeOffset.Parse("2014-02-10T00:30:00Z"),
                SSC            = 25544,
                OutputSettings =
                {
                    Step             =                          300,
                    TimeFormat       = TimeRepresentation.UTC,
                    CoordinateFormat = { Coord = CoordinateRepresentation.XYZ,Frame            = FrameRepresentation.Fixed }
                }
            };

            overflightInput.Path = path;

            var result = OverflightServices.GetRegionalOverflight <ServiceCartesianWithTime>(overflightInput).Result;

            Assert.That(result != null);
            Assert.AreEqual(15, result.Count);
            Assert.AreEqual("USA", result[0].CountryId);
            Assert.AreEqual("United States", result[0].Name);
            Assert.AreEqual(451211.62334118644, result[0].Entry.Position.X);
            Assert.AreEqual(-5040730.1564817084, result[0].Entry.Position.Y);
            Assert.AreEqual(4522633.5835356982, result[0].Entry.Position.Z);
            Assert.AreEqual("2014-02-10T00:00:00", result[0].Entry.Time.ToString("s"));
            Assert.AreEqual(1, result[0].Path.Count);

            Assert.AreEqual("ETH", result[14].CountryId);
            Assert.AreEqual("Ethiopia", result[14].Name);
            Assert.AreEqual(5250413.7026270721, result[14].Exit.Position.X);
            Assert.AreEqual(4282717.8522880469, result[14].Exit.Position.Y);
            Assert.AreEqual(485537.05931469012, result[14].Exit.Position.Z);
            Assert.AreEqual("2014-02-10T00:30:00", result[14].Exit.Time.ToString("s"));
            Assert.AreEqual(1, result[14].Path.Count);
        }
Example #3
0
        public static async Task <OverflightAccessResult <IPathResult> > GetRegionalOverflight(
            OverflightAccessData <IVerifiable> overflightData)
        {
            string relativeUri = string.Empty;

            overflightData.Verify();

            if ((Type)overflightData.Path == typeof(PointToPointRouteData))
            {
                relativeUri = ServiceUris.OverflightPointToPointUri;
            }
            else if ((Type)overflightData.Path == typeof(Sgp4RouteData))
            {
                relativeUri = ServiceUris.OverflightSgp4Uri;
            }
            else if ((Type)overflightData.Path == typeof(SimpleFlightRouteData))
            {
                relativeUri = ServiceUris.OverflightSimpleFlightUri;
            }
            else if ((Type)overflightData.Path == typeof(GreatArcRouteData))
            {
                relativeUri = ServiceUris.OverflightGreatArcUri;
            }
            else if ((Type)overflightData.Path == typeof(CatalogRouteData))
            {
                relativeUri = ServiceUris.OverflightCatalogObjectUri;
            }

            if (string.IsNullOrEmpty(relativeUri))
            {
                throw new ArgumentOutOfRangeException("overflightData", (Type)overflightData.Path,
                                                      (Type)overflightData.Path + " is not a valid type for Overflight Access");
            }

            var uri = Networking.GetFullUri(relativeUri);

            return(await Networking.HttpPostCall <OverflightAccessData <IVerifiable>,
                                                  OverflightAccessResult <IPathResult> >(uri, overflightData));
        }