private static void PopulateNatureAreas(IList <INatureAreaGeoJson> natureAreas, string sql, object parameters, SqlConnection conn) { var dtos = conn.Query <NatureAreaDto>(sql, parameters); foreach (var dto in dtos) { var natureArea = new NatureAreaGeoJson { Id = dto.Id, UniqueId = new Identification { LocalId = dto.LocalId }, Area = dto.Geometry }; natureAreas.Add(natureArea); } }
private static void GroupByKommuner(IList <INatureAreaGeoJson> natureAreas, string sql, object parameters, SqlConnection conn) { var counts = conn.Query <GroupByKommunerDto>(sql, parameters); var geometries = conn.Query <GroupByKommunerWithGeometryDto>("SELECT o.id as Id, o.geometri.STCentroid() AS Centerpoint FROM Område o WHERE o.id IN @Ids", new { Ids = counts.Select(c => c.Id).ToArray() }); foreach (var geom in geometries) { var natureArea = new NatureAreaGeoJson { Id = geom.Id, UniqueId = new Identification { LocalId = Guid.Empty }, Area = geom.Centerpoint, Count = counts.Single(c => c.Id == geom.Id).Count }; natureAreas.Add(natureArea); } }