コード例 #1
0
        public IActionResult GetItemsWithGPS([FromBody] RequestGPSDto req)
        {
            var list = ImmoRepo.GetItemsWithGPS(req);

            if (list == null)
            {
                return(BadRequest());
            }
            return(new ObjectResult(list));
        }
コード例 #2
0
        public IEnumerable <BienImmoLight> GetItemsWithGPS(RequestGPSDto req)
        {
            double earthRadius = 6378137;
            double latPlus     = req.coordLat + (req.filtre.aireRecherche / earthRadius) * (180 / Math.PI);
            double latMoins    = req.coordLat - (req.filtre.aireRecherche / earthRadius) * (180 / Math.PI);
            double longMoins   = req.coordLong - (req.filtre.aireRecherche / (earthRadius * Math.Cos(Math.PI * req.coordLat / 180))) * (180 / Math.PI);
            double longPlus    = req.coordLong + (req.filtre.aireRecherche / (earthRadius * Math.Cos(Math.PI * req.coordLat / 180))) * (180 / Math.PI);

            var query = _context.BienImmo
                        .Where(u => u.CoordLat >= latMoins &&
                               u.CoordLat <= latPlus &&
                               u.CoordLong >= longMoins &&
                               u.CoordLong <= longPlus
                               )
                        .Select(u => new BienImmoLight
            {
                Id        = u.Id,
                CoordLat  = u.CoordLat,
                CoordLong = u.CoordLong,
                Soustitre = u.Soustitre,
                Prix      = u.Prix,
                TypeBien  = u.TypeBien,
                Type      = u.Type,
                Titre     = u.Titre,
                Photo     = u.Photo,
                Surface   = u.Surface
            });

            /*
             * if(req.filtre.prixMax != 0)
             *  query.Where(u => u.Prix <= req.filtre.prixMax);
             *
             * if (req.filtre.prixMin != 0)
             *  query.Where(u => u.Prix >= req.filtre.prixMin);
             *
             * if (req.filtre.surfaceMax != 0)
             *  query.Where(u => u.Surface <= req.filtre.surfaceMax);
             *
             * if (req.filtre.surfaceMin != 0)
             *  query.Where(u => u.Surface >= req.filtre.surfaceMin);
             *
             * if (!req.filtre.typeBien.Equals(null))
             *  query.Where(u => u.TypeBien == req.filtre.typeBien);
             *
             * if (!req.filtre.type.Equals(null))
             *  query.Where(u => u.Type == req.filtre.type);
             */
            return(query.ToList());
        }