public async Task <PointsListResult> GetFilterPointsList( [FromServices] ISummaryDataHelper summaryDataHelper, [FromQuery] Guid projectUid, [FromQuery] Guid?filterUid, [FromQuery] Guid?baseUid, [FromQuery] Guid?topUid, [FromQuery] FilterBoundaryType boundaryType, [FromServices] IBoundingBoxService boundingBoxService) { Log.LogInformation($"{nameof(GetFilterPointsList)}: " + Request.QueryString); var projectTask = ((RaptorPrincipal)User).GetProject(projectUid); var filterTask = GetCompactionFilter(projectUid, filterUid); //Base or top may be a design UID var baseFilterTask = summaryDataHelper.WithSwallowExceptionExecute(() => GetCompactionFilter(projectUid, baseUid)); var topFilterTask = summaryDataHelper.WithSwallowExceptionExecute(() => GetCompactionFilter(projectUid, topUid)); var result = new PointsListResult(); await Task.WhenAll(projectTask, filterTask, baseFilterTask, topFilterTask); var polygons = await boundingBoxService.GetFilterBoundaries(projectTask.Result, filterTask.Result, baseFilterTask.Result, topFilterTask.Result, boundaryType, CustomHeaders); result.PointsList = ConvertPoints(polygons); return(result); }
public async Task <PointsListResult> GetFilterPoints( [FromQuery] Guid projectUid, [FromQuery] Guid filterUid, [FromServices] IBoundingBoxService boundingBoxService) { Log.LogInformation("GetFilterPoints: " + Request.QueryString); var project = ((RaptorPrincipal)User).GetProject(projectUid); var filter = GetCompactionFilter(projectUid, filterUid); await Task.WhenAll(project, filter); var result = new PointsListResult(); if (filter.Result != null) { var polygons = await boundingBoxService.GetFilterBoundaries( project.Result, filter.Result, FilterBoundaryType.All, CustomHeaders); result.PointsList = ConvertPoints(polygons); } return(result); }