public IActionResult GetItemsWithGPS([FromBody] RequestGPSDto req) { var list = ImmoRepo.GetItemsWithGPS(req); if (list == null) { return(BadRequest()); } return(new ObjectResult(list)); }
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()); }