public Task <ContractExecutionResult> PostCutFillDetails([FromBody] TRexCutFillDetailsRequest cutFillRequest) { Log.LogInformation($"{nameof(PostCutFillDetails)}: {Request.QueryString}"); cutFillRequest.Validate(); ValidateFilterMachines(nameof(PostCutFillDetails), cutFillRequest.ProjectUid, cutFillRequest.Filter); return(WithServiceExceptionTryExecuteAsync(() => RequestExecutorContainer .Build <CutFillExecutor>(ConfigStore, LoggerFactory, ServiceExceptionHandler) .ProcessAsync(cutFillRequest))); }
protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { try { var request = CastRequestObjectTo <CutFillDetailsRequest>(item); #if RAPTOR if (UseTRexGateway("ENABLE_TREX_GATEWAY_CUTFILL")) { #endif var trexRequest = new TRexCutFillDetailsRequest( request.ProjectUid.Value, request.CutFillTolerances, request.Filter, request.DesignDescriptor, AutoMapperUtility.Automapper.Map <OverridingTargets>(request.LiftBuildSettings), AutoMapperUtility.Automapper.Map <LiftSettings>(request.LiftBuildSettings)); return(await trexCompactionDataProxy.SendDataPostRequest <CompactionCutFillDetailedResult, TRexCutFillDetailsRequest>(trexRequest, "/cutfill/details", customHeaders)); #if RAPTOR } var filter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient); var designDescriptor = RaptorConverters.DesignDescriptor(request.DesignDescriptor); var liftBuildSettings = RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmNone); var raptorResult = raptorClient.GetCutFillDetails(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtCutfillDetailed), new TCutFillSettings { Offsets = request.CutFillTolerances, DesignDescriptor = designDescriptor } , filter, liftBuildSettings, out var cutFillDetails); if (raptorResult == TASNodeErrorStatus.asneOK) { return(new CompactionCutFillDetailedResult(cutFillDetails.Percents)); } throw CreateServiceException <CompactionCutFillExecutor>((int)raptorResult); #endif } finally { ContractExecutionStates.ClearDynamic(); } }