コード例 #1
0
        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)));
        }
コード例 #2
0
        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();
            }
        }