示例#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> GetAlignmentPointsList(
            [FromQuery] Guid projectUid,
            [FromServices] IBoundingBoxService boundingBoxService)
        {
            Log.LogInformation($"{nameof(GetAlignmentPointsList)}: " + Request.QueryString);

            var projectId            = GetLegacyProjectId(projectUid);
            var alignmentDescriptors = GetAlignmentDescriptors(projectUid);

            await Task.WhenAll(projectId, alignmentDescriptors);

            var result = new PointsListResult();
            var list   = new List <List <WGSPoint> >();

            foreach (var alignmentDescriptor in alignmentDescriptors.Result)
            {
                var alignmentPoints = await boundingBoxService.GetAlignmentPoints(
                    new ProjectData { ProjectUID = projectUid.ToString() },
                    alignmentDescriptor,
                    0, 0, 0, 0,
                    CustomHeaders);

                if (alignmentPoints != null && alignmentPoints.Any())
                {
                    list.Add(alignmentPoints.ToList());
                }
            }

            result.PointsList = ConvertPoints(list);

            return(result);
        }
示例#3
0
        public async Task <PointsListResult> GetDesignBoundaryPoints(
            [FromQuery] Guid projectUid,
            [FromQuery] Guid designUid,
            [FromServices] IBoundingBoxService boundingBoxService)
        {
            Log.LogInformation("GetDesignBoundaryPoints: " + Request.QueryString);

            var projectId        = GetLegacyProjectId(projectUid);
            var designDescriptor = GetAndValidateDesignDescriptor(projectUid, designUid);

            await Task.WhenAll(projectId, designDescriptor);

            var project = new ProjectData {
                ProjectUID = projectUid.ToString()
            };
            var result   = new PointsListResult();
            var polygons = await boundingBoxService.GetDesignBoundaryPolygons(project, designDescriptor.Result, CustomHeaders);

            result.PointsList = ConvertPoints(polygons);

            return(result);
        }
示例#4
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);
        }