Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        [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);
        }
Exemplo n.º 4
0
        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);
        }