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); }
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); }
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()); }
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); }
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()); }
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)); }