示例#1
0
 private bool IsValidAirport(AirportRequest airport)
 {
     return(airport != null &&
            !string.IsNullOrEmpty(airport.Airport) &&
            !string.IsNullOrEmpty(airport.City) &&
            !string.IsNullOrEmpty(airport.Country));
 }
 private Airport ConvertAirportToDomain(AirportRequest airportRequest)
 {
     return(new Airport
     {
         City = airportRequest.City,
         Country = airportRequest.Country,
         AirportCode = airportRequest.Airport
     });
 }
示例#3
0
        public IActionResult Search([FromBody] AirportRequest request)
        {
            if (!ModelState.IsValid || request == null)
            {
                return(BadRequest(ModelState));
            }

            var results = manager.GetAirport(request);

            return(Ok(results));
        }
示例#4
0
        public void testGetData()
        {
            var cookie           = new Cookie("incap_ses_264_1276841", "zqTLGFJTOmAn/CN5P+2pA8RTRF4AAAAA55D7hroVG4lj6zw6nY4UMQ==");
            var dataReceiver     = new DataReceiver(cookie);
            var airportsRequest  = new AirportRequest("", "", "LLBG");
            var airlinesRrequest = new AirlineRequest("", "LLBG");
            var countriesRequest = new CountryRequest("", "LLBG");
            var citiesRequest    = new CityRequest("", "", "LLBG");

            var airlines  = dataReceiver.GetData <Airline>(airlinesRrequest);
            var airports  = dataReceiver.GetData <Airport>(airportsRequest);
            var countries = dataReceiver.GetData <Country>(countriesRequest);
            var cities    = dataReceiver.GetData <City>(citiesRequest);
        }
        public IEnumerable <Airport> GetAirport(AirportRequest request)
        {
            var searchCriterias = new SearchDescriptor <EsAirport>();

            searchCriterias
            .From(request.StartingIndex)
            .Size(request.ResponseSize)
            .Source(src => src.Includes(i => i.Fields(EsHelpers.GenerateFields(request))))
            .Query(q => q.Bool(b => b.Must(EsHelpers.QueryGenerator(request))));

            var jsonResponse = dataAccess.AirportElasticClient.Search <object>(searchCriterias);

            return(CreateAirportResponse(jsonResponse.Documents));
        }
示例#6
0
        public static string[] GenerateFields(AirportRequest request)
        {
            List <string> results = new List <string>
            {
                EsConstants.Id,
                EsConstants.Name,
                EsConstants.Type
            };

            if (request?.Attributes.HasValue ?? false)
            {
                if (request.Attributes.Value.HasFlag(AirportAttributes.Coordinates))
                {
                    results.Add(EsConstants.Coordinates);
                }

                if (request.Attributes.Value.HasFlag(AirportAttributes.Elevation))
                {
                    results.Add(EsConstants.Coordinates);
                }

                if (request.Attributes.Value.HasFlag(AirportAttributes.Location))
                {
                    results.Add(EsConstants.Continent);
                    results.Add(EsConstants.Country);
                    results.Add(EsConstants.Municipality);
                    results.Add(EsConstants.Region);
                }

                if (request.Attributes.Value.HasFlag(AirportAttributes.GpsCode))
                {
                    results.Add(EsConstants.GpsCode);
                }

                if (request.Attributes.Value.HasFlag(AirportAttributes.IataCode))
                {
                    results.Add(EsConstants.IataCode);
                }

                if (request.Attributes.Value.HasFlag(AirportAttributes.LocalCode))
                {
                    results.Add(EsConstants.LocalCode);
                }
            }


            return(results.ToArray());
        }
 private bool IsGoodAirports(AirportRequest to, AirportRequest from)
 {
     return(to.City.ToUpper() != from.City.ToUpper() &&
            to.Airport.ToUpper() != from.Airport.ToUpper());
     //to.Country.ToUpper() != from.Country.ToUpper();
 }
示例#8
0
 private bool isDifferentAirport(AirportRequest airportFrom, AirportRequest airportTo)
 {
     return(airportFrom.Airport.ToLowerInvariant().Trim() != (airportTo.Airport.ToLowerInvariant()) &&
            airportFrom.City.ToLowerInvariant().Trim() != (airportTo.City.ToLowerInvariant()));
     //airportFrom.Country.ToLowerInvariant().Trim() != (airportTo.Country.ToLowerInvariant());
 }
示例#9
0
        public static Func <QueryContainerDescriptor <EsAirport>, QueryContainer>[] QueryGenerator(AirportRequest request)
        {
            List <Func <QueryContainerDescriptor <EsAirport>, QueryContainer> > results = new List <Func <QueryContainerDescriptor <EsAirport>, QueryContainer> >();

            if (request.Ids?.Any() ?? false)
            {
                Func <QueryContainerDescriptor <EsAirport>, QueryContainer> funcIds = tmp =>
                                                                                      tmp.Terms(m => m.Field(f => f.id).Terms(request.Ids));
                results.Add(funcIds);
            }

            if (request.Types?.Any() ?? false)
            {
                Func <QueryContainerDescriptor <EsAirport>, QueryContainer> funcZoneType = tmp =>
                                                                                           tmp.Terms(m => m.Field(f => f.type).Terms(request.Types));

                results.Add(funcZoneType);
            }

            //if (!string.IsNullOrEmpty(request.IsoCode))
            //{
            //    Func<QueryContainerDescriptor<EsAirport>, QueryContainer> funcIsoId = tmp =>
            //        tmp.Term(m => m.IsoId, request.IsoCode);

            //    results.Add(funcIsoId);
            //}


            if (!string.IsNullOrEmpty(request.Name))
            {
                Func <QueryContainerDescriptor <EsAirport>, QueryContainer> funcName = tmp =>
                                                                                       tmp.Term(m => m.name, request.Name);
                results.Add(funcName);
            }


            if (!string.IsNullOrEmpty(request.IataCode))
            {
                Func <QueryContainerDescriptor <EsAirport>, QueryContainer> funcName = tmp =>
                                                                                       tmp.Term(m => m.iata_code, request.IataCode);
                results.Add(funcName);
            }


            if (request.Geometry != null)
            {
                Func <QueryContainerDescriptor <EsAirport>, QueryContainer> funcPolygon = tmp =>
                                                                                          tmp.GeoBoundingBox(g => g
                                                                                                             .Field(f => f.coordinates)
                                                                                                             .BoundingBox(request.Geometry.LatMax, request.Geometry.LngMin, request.Geometry.LatMin, request.Geometry.LngMax));

                results.Add(funcPolygon);
            }

            return(results.ToArray());
        }
示例#10
0
 private static bool IsDifferentAirport(AirportRequest airportFrom, AirportRequest airportTo)
 {
     return(!airportFrom.Airport.ToLower().Equals(airportTo.Airport.ToLower()) &&
            !airportFrom.City.ToLower().Equals(airportTo.City.ToLower()));
 }
示例#11
0
        protected override bool isValid(out string exceptionMessage)
        {
            if (name.Length == 0) {
                return makeExceptionMessage (out exceptionMessage, "The name of the airport is invalid");
            }

            if (code.Length != 3 || !code.All (char.IsUpper) || !code.All(char.IsLetter)) {
                return makeExceptionMessage (out exceptionMessage, "The code of the airport is invalid");
            }

            foreach (int c in company) {
                if (!validAirline (c, out exceptionMessage)) {
                    return false;
                }
            }

            AirportRequest ar = new AirportRequest ();
            if (ar.fetchAirportFromCode (code).Count () != 0) {
                return makeExceptionMessage(out exceptionMessage, "The code of the airport already exists for an airport");
            }

            return validCity (city, out exceptionMessage) && validCountry(country, out exceptionMessage);
        }