public void AirportDataThumbnailsJson_Constructor_Initialises_To_Known_State_And_Properties_Work() { var json = new AirportDataThumbnailsJson(); TestUtilities.TestProperty(json, r => r.Error, null, "Abc"); TestUtilities.TestProperty(json, r => r.Status, 0, 123); Assert.AreEqual(0, json.Thumbnails.Count); }
/// <summary> /// Proxies requests for airport-data.com data. /// </summary> /// <param name="server"></param> /// <param name="args"></param> /// <returns></returns> protected override bool DoHandleRequest(Interface.WebServer.IWebServer server, Interface.WebServer.RequestReceivedEventArgs args) { var result = false; if (args.PathAndFile.Equals("/AirportDataThumbnails.json", StringComparison.OrdinalIgnoreCase)) { result = true; var icao = QueryIcao(args, "icao"); var registration = QueryString(args, "reg", true); var maxThumbnails = QueryInt(args, "numThumbs", 1); AirportDataThumbnailsJson json; if (icao == null) { json = new AirportDataThumbnailsJson() { Error = "Invalid ICAO" } } ; else { try { var response = _AirportDataApi.GetThumbnails(icao, registration, maxThumbnails); if (response.Result == null) { json = new AirportDataThumbnailsJson() { Status = (int)response.HttpStatusCode, Error = "Could not retrieve thumbnails", } } ; else { json = response.Result; } } catch (Exception ex) { json = new AirportDataThumbnailsJson() { Status = 500, Error = String.Format("Exception caught while fetching thumbnails: {0}", ex.Message), }; } } Responder.SendJson(args.Request, args.Response, json, null, null); } return(result); }
[Route("AirportDataThumbnails.json")] // Pre-version 3 route public AirportDataThumbnailsJson GetAirportDataDotComThumbnails(string icao, string reg = null, int numThumbs = 1) { AirportDataThumbnailsJson result = null; if (String.IsNullOrEmpty(icao) || CustomConvert.Icao24(icao) == -1) { result = new AirportDataThumbnailsJson() { Error = "Invalid ICAO" }; } else { try { var airportDataDotCom = Factory.Resolve <IAirportDataDotCom>(); var outcome = airportDataDotCom.GetThumbnails((icao ?? "").ToUpper(), (reg ?? "").ToUpper(), numThumbs); if (outcome.Result == null) { result = new AirportDataThumbnailsJson() { Status = (int)outcome.HttpStatusCode, Error = "Could not retrieve thumbnails" }; } else { result = outcome.Result; } } catch (Exception ex) { result = new AirportDataThumbnailsJson() { Status = (int)HttpStatusCode.InternalServerError, Error = $"Exception caught while fetching thumbnails: {ex.Message}" }; } } return(result); }
private void SetupAirportDataDotCom(string icao, string registration, int maxThumbs, HttpStatusCode statusCode, AirportDataThumbnailsJson response) { var result = new WebRequestResult <AirportDataThumbnailsJson>(statusCode, response); _AirportDataDotCom.Setup(r => r.GetThumbnails((icao ?? "").ToUpper(), (registration ?? "").ToUpper(), maxThumbs)).Returns(result); }