Exemplo n.º 1
0
        public Task <ContractExecutionResult> PostPassCountDetails([FromBody] PassCountDetailsRequest passCountDetailsRequest)
        {
            Log.LogInformation($"{nameof(PostPassCountDetails)}: {Request.QueryString}");

            passCountDetailsRequest.Validate();
            ValidateFilterMachines(nameof(PostPassCountDetails), passCountDetailsRequest.ProjectUid, passCountDetailsRequest.Filter);

            return(WithServiceExceptionTryExecuteAsync(() =>
                                                       RequestExecutorContainer
                                                       .Build <DetailedPassCountExecutor>(ConfigStore, LoggerFactory, ServiceExceptionHandler)
                                                       .ProcessAsync(passCountDetailsRequest)));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Processes the detailed pass counts request by passing the request to Raptor and returning the result.
        /// </summary>
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            try
            {
                var request = CastRequestObjectTo <PassCounts>(item);
#if RAPTOR
                if (UseTRexGateway("ENABLE_TREX_GATEWAY_PASSCOUNT"))
                {
#endif
                await PairUpAssetIdentifiers(request.ProjectUid.Value, request.Filter);
                await PairUpImportedFileIdentifiers(request.ProjectUid.Value, filter1 : request.Filter);

                var pcDetailsRequest = new PassCountDetailsRequest(
                    request.ProjectUid.Value,
                    request.Filter,
                    request.passCountSettings.passCounts,
                    AutoMapperUtility.Automapper.Map <OverridingTargets>(request.liftBuildSettings),
                    AutoMapperUtility.Automapper.Map <LiftSettings>(request.liftBuildSettings));
                log.LogDebug($"{nameof(DetailedPassCountExecutor)} trexRequest {JsonConvert.SerializeObject(pcDetailsRequest)}");

                return(await trexCompactionDataProxy.SendDataPostRequest <PassCountDetailedResult, PassCountDetailsRequest>(pcDetailsRequest, "/passcounts/details", customHeaders));

#if RAPTOR
            }

            var raptorFilter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient, request.OverrideStartUTC, request.OverrideEndUTC, request.OverrideAssetIds);
            var raptorResult = raptorClient.GetPassCountDetails(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID,
                                                                ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor((request.CallId ?? Guid.NewGuid()), 0,
                                                                                                                      TASNodeCancellationDescriptorType.cdtPassCountDetailed),
                                                                request.passCountSettings != null ? ConvertSettings(request.passCountSettings) : new TPassCountSettings(),
                                                                raptorFilter,
                                                                RaptorConverters.ConvertLift(request.liftBuildSettings, raptorFilter.LayerMethod),
                                                                out var passCountDetails);

            if (raptorResult == TASNodeErrorStatus.asneOK)
            {
                return(ConvertResult(passCountDetails, request.liftBuildSettings));
            }

            throw CreateServiceException <DetailedPassCountExecutor>((int)raptorResult);
#endif
            }
            finally
            {
                ContractExecutionStates.ClearDynamic();
            }
        }