Esempio n. 1
0
        private async Task <CellPassesResult> GetTRexCellPasses(CellPassesRequest request)
        {
            var overrides    = AutoMapperUtility.Automapper.Map <OverridingTargets>(request.liftBuildSettings);
            var liftSettings = AutoMapperUtility.Automapper.Map <LiftSettings>(request.liftBuildSettings);
            CellPassesTRexRequest tRexRequest;

            if (request.probePositionGrid != null)
            {
                tRexRequest = new CellPassesTRexRequest(request.ProjectUid.Value,
                                                        request.probePositionGrid,
                                                        request.filter,
                                                        overrides,
                                                        liftSettings);
            }
            else
            {
                tRexRequest = new CellPassesTRexRequest(request.ProjectUid.Value,
                                                        request.probePositionLL,
                                                        request.filter,
                                                        overrides,
                                                        liftSettings);
            }

            var trexResult = await trexCompactionDataProxy.SendDataPostRequest <CellPassesV2Result, CellPassesTRexRequest>(tRexRequest, "/cells/passes", customHeaders);

            if (trexResult != null)
            {
                return(ConvertTRexResult(trexResult));
            }

            return(null);
        }
Esempio n. 2
0
        private CellPassesV2Result GetRaptorResult(CellPassesRequest request)
        {
            bool   isGridCoord  = request.probePositionGrid != null;
            bool   isLatLgCoord = request.probePositionLL != null;
            double probeX       = isGridCoord ? request.probePositionGrid.x : (isLatLgCoord ? request.probePositionLL.Lon : 0);
            double probeY       = isGridCoord ? request.probePositionGrid.y : (isLatLgCoord ? request.probePositionLL.Lat : 0);

            var raptorFilter = RaptorConverters.ConvertFilter(request.filter, request.ProjectId, raptorClient, overrideAssetIds: new List <long>());

            int code = raptorClient.RequestCellProfile
                           (request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID,
                           RaptorConverters.convertCellAddress(request.cellAddress ?? new CellAddress()),
                           probeX, probeY,
                           isGridCoord,
                           RaptorConverters.ConvertLift(request.liftBuildSettings, raptorFilter.LayerMethod),
                           request.gridDataType,
                           raptorFilter,
                           out var profile);


            if (code == 1)//TICServerRequestResult.icsrrNoError
            {
                return(ConvertRaptorResult(profile));
            }

            return(null);
        }
Esempio n. 3
0
        public void CPR_CellPassesRequestValidateTest()
        {
            // test that all three cell address types are not set
            CellPassesRequest cpRequest = CellPassesRequest.CreateCellPassRequest(544, null, null, null, null, 0, 0, null);

            Assert.ThrowsException <ServiceException>(() => cpRequest.Validate());
        }
Esempio n. 4
0
        public async Task <CellPassesResult> CellPassesTbc([FromBody] CellPassesRequest request)
        {
            request.Validate();

            return(await RequestExecutorContainerFactory.Build <CellPassesExecutor>(
                       LoggerFactory,
                       configStore : ConfigStore,
                       trexCompactionDataProxy : TRexCompactionDataProxy,
                       fileImportProxy : FileImportProxy, customHeaders : CustomHeaders, userId : GetUserId()
                       ).ProcessAsync(request) as CellPassesResult);
        }
Esempio n. 5
0
        public async Task <List <CellPassesV2Result.FilteredPassData> > CellPassesV2(
            [FromQuery] Guid projectUid,
            [FromQuery] Guid?filterUid,
            [FromQuery] double lat,
            [FromQuery] double lon)
        {
            Log.LogInformation("GetProductionDataCellsDatum: " + Request.QueryString);

            var projectId = ((RaptorPrincipal)User).GetLegacyProjectId(projectUid);
            var filter    = GetCompactionFilter(projectUid, filterUid, filterMustExist: true);

            await Task.WhenAll(projectId, filter);

            var request = new CellPassesRequest
            {
                ProjectId         = await projectId,
                ProjectUid        = projectUid,
                filter            = await filter,
                liftBuildSettings = new LiftBuildSettings
                {
                    LiftDetectionType = LiftDetectionType.None
                },
                probePositionLL = new WGSPoint(lat.LatDegreesToRadians(), lon.LonDegreesToRadians())
            };

            request.Validate();
            var result = await RequestExecutorContainerFactory.Build <CellPassesV2Executor>(LoggerFactory,
#if RAPTOR
                                                                                            RaptorClient,
#endif
                                                                                            configStore : ConfigStore, trexCompactionDataProxy : TRexCompactionDataProxy, customHeaders : CustomHeaders,
                                                                                            userId : GetUserId(), fileImportProxy : FileImportProxy)
                         .ProcessAsync(request) as CellPassesV2Result;

            if (result?.Layers == null || result?.Layers.Length == 0)
            {
                throw new ServiceException(HttpStatusCode.NoContent, new ContractExecutionResult(ContractExecutionStatesEnum.FailedToGetResults, "No layers found"));
            }

            if (result?.Layers.Length > 1)
            {
                throw new ServiceException(HttpStatusCode.BadRequest, new ContractExecutionResult(ContractExecutionStatesEnum.FailedToGetResults, "Multiple layers found"));
            }

            if (result?.Layers[0].PassData == null)
            {
                throw new ServiceException(HttpStatusCode.NoContent, new ContractExecutionResult(ContractExecutionStatesEnum.FailedToGetResults, "No cell passes found"));
            }

            // With our lift settings set to None, we should have exactly 1 layer
            return(result.Layers[0].PassData.ToList());
        }
Esempio n. 6
0
        public void CPR_CanCreateCellPassesRequestTest()
        {
            var liftThicknessTarget = new LiftThicknessTarget {
                AboveToleranceLiftThickness = (float)0.001,
                BelowToleranceLiftThickness = (float)0.002,
                TargetLiftThickness         = (float)0.05
            };

            var validator = new DataAnnotationsValidator();

            CellPassesRequest cpRequest = CellPassesRequest.CreateCellPassRequest(544, null, null, null, null, 0, 0,
                                                                                  null);

            Assert.IsTrue(validator.TryValidate(cpRequest, out ICollection <ValidationResult> results));

            // invalid projectid
            cpRequest = CellPassesRequest.CreateCellPassRequest(-1, null, null, null, null, 0, 0, null);
            Assert.IsFalse(validator.TryValidate(cpRequest, out results));

            // full data
            CellAddress       cellAddress = CellAddress.CreateCellAddress(1, 2);
            Point             point       = Point.CreatePoint(1.0, 2.0);
            WGSPoint          wgsPoint    = new WGSPoint(1.0, 2.0);
            LiftBuildSettings settings    = new LiftBuildSettings(
                new CCVRangePercentage(30.0, 70.0), false, 0.0, 0.0, 0.2f, LiftDetectionType.Automatic,
                LiftThicknessType.Compacted, new MDPRangePercentage(35.0, 75.0),
                false, 0.0f, 0, 0, null, null, null, liftThicknessTarget, null);

            var filterResult = FilterResult.CreateFilterObsolete(null, null, null, null, null, null, 1, "", new List <long>(), true, false, null,
                                                                 new List <WGSPoint>(),
                                                                 new List <Point>(),
                                                                 false,
                                                                 new DesignDescriptor(1, FileDescriptor.EmptyFileDescriptor, 0),
                                                                 0, 0, 0, 0,
                                                                 null, new DesignDescriptor(1, FileDescriptor.EmptyFileDescriptor, 0),
                                                                 0, 0, 0,
                                                                 new List <MachineDetails>(),
                                                                 new List <long>(),
                                                                 false, GPSAccuracyType.Medium, false, null, null, null,
                                                                 new DesignDescriptor(1, FileDescriptor.EmptyFileDescriptor, 0));

            cpRequest = CellPassesRequest.CreateCellPassRequest(544, cellAddress, point, wgsPoint, settings, 0, 0, filterResult);
            Assert.IsTrue(validator.TryValidate(cpRequest, out results));
        }