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