Beispiel #1
0
        public IList <Airport> GetAirportsNearBy(double latitude, double longitude, double radius)
        {
            var geolocation = GeoLocation.FromDegrees(latitude, longitude);
            var bounding    = geolocation.BoundingCoordinates(radius);

            double minLatitude  = bounding[0].getLatitudeInDegrees();
            double minLongitude = bounding[0].getLongitudeInDegrees();
            double maxLatitude  = bounding[1].getLatitudeInDegrees();
            double maxLongitude = bounding[1].getLongitudeInDegrees();

            List <Airport> locations = new List <Airport>();

            using (StandingDataContainer context = new StandingDataContainer())
            {
                IQueryable <Airport> query = context.Airports
                                             .Where(l => l.Latitude >= minLatitude && l.Latitude <= maxLatitude);

                if (minLongitude <= maxLongitude)
                {
                    query = query
                            .Where(l => l.Longitude >= minLongitude && l.Longitude <= maxLongitude);
                }
                else
                {
                    query = query
                            .Where(l => l.Longitude >= minLongitude || l.Longitude <= maxLongitude);
                }

                locations.AddRange(query.Select(s => s).ToList());
            }

            return(locations);
        }
Beispiel #2
0
        public IList <Airport> GetAirports(string orderBy = "", bool ascending = true, int?offset = null, int?take = null)
        {
            List <Airport> airports = new List <Airport>();

            using (StandingDataContainer context = new StandingDataContainer())
            {
                IQueryable <Airport> query = context.Airports.OrderBy(orderBy, ascending);
                if (offset.HasValue && take.HasValue)
                {
                    query = query.Skip(offset.Value).Take(take.Value);
                }
                airports.AddRange(query.ToList());
            }

            return(airports);
        }
 public DataServices(StandingDataContainer context)
 {
     Context = context;
 }