예제 #1
0
        public IEnumerable <WorkshopShortViewModel> GetByLocation(double latitude, double longitute, double distance)
        {
            var geoLocation         = GeoLocation.FromDegrees(latitude, longitute);
            var boundingCoordinates = geoLocation.BoundingCoordinates(distance);
            var radius = distance / EarthRadius;

            using (var scope = _dbContextScope.CreateReadOnly())
            {
                var locations = _workshopRepo.GetClosestLocations(boundingCoordinates,
                                                                  geoLocation.getLatitudeInRadians(),
                                                                  geoLocation.getLongitudeInRadians(),
                                                                  radius);

                return(Mapper.Map <IEnumerable <WorkshopShortViewModel> >(locations));
            }
        }