public async Task <Dictionary <GeoFence, bool> > GetByAssetIdWithIntersectionAsync(string assetId, IPoint[] points) { var pointsGeography = GeographyHelper.CreateDbMultiPoint(points); return(await this.FindBy(g => g.AssetDatas.Any(a => a.Id == assetId)) .Select(g => new { GeoFence = g, Intersects = g.Polygon.Intersects(pointsGeography) }) .ToDictionaryAsync(r => this.ObjectMapper.Map <GeoFence>(r.GeoFence), r => r.Intersects)); }