Ejemplo n.º 1
0
        private async Task <CompactionProfileResult <CompactionProfileCell> > ProcessProductionDataWithTRexGateway(CompactionProfileProductionDataRequest request)
        {
            if (request.IsAlignmentDesign)
            {
                throw new ServiceException(HttpStatusCode.BadRequest,
                                           new ContractExecutionResult(ContractExecutionStatesEnum.ValidationError, "TRex unsupported request"));
            }

            var liftBuildSettings = request.LiftBuildSettings;

            var productionDataProfileDataRequest = new ProductionDataProfileDataRequest(
                request.ProjectUid ?? Guid.Empty,
                request.Filter,
                request.ReturnAllPassesAndLayers,
                request.CutFillDesignDescriptor?.FileUid,
                request.CutFillDesignDescriptor?.Offset,
                request.GridPoints != null,
                request.GridPoints?.x1 ?? (request.WGS84Points?.lon1 ?? 0.0),
                request.GridPoints?.y1 ?? (request.WGS84Points?.lat1 ?? 0.0),
                request.GridPoints?.x2 ?? (request.WGS84Points?.lon2 ?? 0.0),
                request.GridPoints?.y2 ?? (request.WGS84Points?.lat2 ?? 0.0),
                AutoMapperUtility.Automapper.Map <OverridingTargets>(liftBuildSettings),
                AutoMapperUtility.Automapper.Map <LiftSettings>(liftBuildSettings));

            var trexResult = await trexCompactionDataProxy.SendDataPostRequest <ProfileDataResult <ProfileCellData>, ProductionDataProfileDataRequest>(productionDataProfileDataRequest, "/productiondata/profile", customHeaders);

            return(trexResult != null && trexResult.HasData() ? ConvertTRexProductioDataProfileResult(trexResult, request.LiftBuildSettings) : null);
        }
Ejemplo n.º 2
0
        public Task <ContractExecutionResult> PostProductionDataProfile([FromBody] ProductionDataProfileDataRequest productionDataProfileRequest)
        {
            Log.LogInformation($"{nameof(PostProductionDataProfile)}: {JsonConvert.SerializeObject(productionDataProfileRequest)}");

            productionDataProfileRequest.Validate();
            ValidateFilterMachines(nameof(PostProductionDataProfile), productionDataProfileRequest.ProjectUid, productionDataProfileRequest.Filter);

            return(WithServiceExceptionTryExecuteAsync(() =>
                                                       RequestExecutorContainer
                                                       .Build <ProductionDataProfileExecutor>(ConfigStore, LoggerFactory, ServiceExceptionHandler)
                                                       .ProcessAsync(productionDataProfileRequest)));
        }