예제 #1
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);
        }
예제 #2
0
        public async Task <AlignmentPointsResult> GetAlignmentPoints(
            [FromQuery] Guid projectUid,
            [FromQuery] Guid alignmentUid,
            [FromServices] IBoundingBoxService boundingBoxService)
        {
            Log.LogInformation($"{nameof(GetAlignmentPoints)}: " + Request.QueryString);

            var projectId           = GetLegacyProjectId(projectUid);
            var alignmentDescriptor = GetAndValidateDesignDescriptor(projectUid, alignmentUid);

            await Task.WhenAll(projectId, alignmentDescriptor);

            var result          = new AlignmentPointsResult();
            var alignmentPoints = await boundingBoxService.GetAlignmentPoints(
                new ProjectData { ProjectUID = projectUid.ToString() },
                alignmentDescriptor.Result);

            if (alignmentPoints != null && alignmentPoints.Any())
            {
                //TODO: Fix this when WGSPoint & WGSPoint3D aligned
                result.AlignmentPoints = alignmentPoints.Select(x => new WGSPoint(x.Lat, x.Lon)).ToList();
            }

            return(result);
        }