예제 #1
0
        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);
        }
예제 #2
0
        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);
        }