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