public IActionResult SearchNearestPartner(double lat, double lgn) { var queryPosition = new Position(lat, lgn); var distance = 0.0; var lessDistant = double.MaxValue; PartnerViewModel nearestPartner = null; _partnerAppService.GetAll().ToList().ForEach(partner => { if (GeoLocationHelper.IsPointInMultiPolygon(queryPosition, partner.DeserializedCoverageArea)) { distance = GeoLocationHelper.GetDistance(partner.DeserializedAddress.Coordinates, queryPosition); if (distance < lessDistant) { lessDistant = distance; nearestPartner = partner; } } }); if (nearestPartner != null) { return(Response(nearestPartner)); } return(Response("No Partner found with the informed coordinates!")); }