public void Should_set_MachineDirection_From_ForwardDirection_value(bool?forwardDirection, TICMachineDirection expectedState) { var filterResult = new FilterResult(filter: CreateFilter(forwardDirection: forwardDirection)); var result = RaptorConverters.ConvertFilter(filterResult); Assert.AreEqual(expectedState, result.MachineDirection); }
public void Should_return_Default_filter_When_input_filter_is_null() { var result = RaptorConverters.ConvertFilter(null); Assert.IsNotNull(result); Assert.IsTrue(TFilterLayerMethod.flmAutoMapReset == result.LayerMethod); }
public void Should_set_GCSGuidanceMode_From_AutomaticsType_value(AutomaticsType automaticsType, TGCSAutomaticsMode automaticsMode) { var filterResult = new FilterResult(filter: CreateFilter(automaticsType: automaticsType)); var result = RaptorConverters.ConvertFilter(filterResult); Assert.AreEqual(automaticsMode, result.GCSGuidanceMode); }
public void Should_set_DesignNameID_From_OnMachineDesignId_value(long machineDesignId, int expectedValue) { var filterResult = new FilterResult(filter: CreateFilter(machineDesignId)); var result = RaptorConverters.ConvertFilter(filterResult); Assert.AreEqual(expectedValue, result.DesignNameID); }
private ContractExecutionResult ProcessWithRaptor(ExportReport request) { var raptorFilter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient); bool success = raptorClient.GetProductionDataExport(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(request.CallId ?? Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtProdDataExport), RaptorConverters.convertToRaptorUserPreferences(request.UserPrefs), (int)request.ExportType, request.CallerId, raptorFilter, RaptorConverters.ConvertLift(request.LiftBuildSettings, raptorFilter.LayerMethod), request.TimeStampRequired, request.CellSizeRequired, request.RawData, request.RestrictSize, true, request.Tolerance, request.IncludeSurveydSurface, request.Precheckonly, request.Filename, RaptorConverters.convertToRaptorMachines(request.MachineList), (int)request.CoordType, (int)request.OutputType, request.DateFromUTC, request.DateToUTC, RaptorConverters.convertToRaptorTranslations(request.Translations), RaptorConverters.convertToRaptorProjectExtents(request.ProjectExtents), out var dataexport); if (success) { try { return(ExportResult.Create( File.ReadAllBytes(BuildFilePath(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.CallerId, request.Filename, true)), dataexport.ReturnCode)); } catch (Exception ex) { throw new ServiceException(HttpStatusCode.NoContent, new ContractExecutionResult(ContractExecutionStatesEnum.ValidationError, "Failed to retrieve received export data: " + ex.Message)); } } throw CreateServiceException <ExportReportExecutor>(dataexport.ReturnCode); }
protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { var request = item as ProjectStatisticsMultiRequest; log.LogInformation($"ProjectStatisticsExecutor: {JsonConvert.SerializeObject(request)}, UseTRexGateway: {UseTRexGateway("ENABLE_TREX_GATEWAY_PROJECTSTATISTICS")}"); #if RAPTOR if (UseTRexGateway("ENABLE_TREX_GATEWAY_PROJECTSTATISTICS") && request.ProjectUid != null) #endif { var tRexRequest = new ProjectStatisticsTRexRequest(request.ProjectUid.Value, request.ExcludedSurveyedSurfaceUids); var result = await trexCompactionDataProxy.SendDataPostRequest <ProjectStatisticsResult, ProjectStatisticsTRexRequest>( tRexRequest, $"/sitemodels/statistics", customHeaders); if (!result.extents.ValidExtents) { result.Empty(); } return(result); } #if RAPTOR bool success = raptorClient.GetDataModelStatistics( request.ProjectId, RaptorConverters.convertSurveyedSurfaceExlusionList(request.ExcludedSurveyedSurfaceIds), out var statistics); if (success) { return(ConvertProjectStatistics(statistics)); } #endif throw CreateServiceException <ProjectStatisticsExecutor>(); }
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 PD_PostProfileProductionDataFailed() { ProfileProductionDataRequest request = CreateRequest(); MemoryStream raptorResult = null; Assert.IsTrue(RaptorConverters.DesignDescriptor(request.AlignmentDesign).IsNull(), "A linear profile expected."); ProfilesHelper.ConvertProfileEndPositions(request.GridPoints, request.WGS84Points, out TWGS84Point startPt, out var endPt, out bool positionsAreGrid); TASNodeServiceRPCVerb_RequestProfile_Args args = __Global.Construct_RequestProfile_Args (request.ProjectId.Value, -1, // don't care positionsAreGrid, startPt, endPt, RaptorConverters.ConvertFilter(request.Filter), RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmAutomatic), RaptorConverters.DesignDescriptor(request.AlignmentDesign), request.ReturnAllPassesAndLayers); // Create the mock PDSClient with successful result... var mockRaptorClient = new Mock <IASNodeClient>(); var mockLogger = new Mock <ILoggerFactory>(); var mockConfigStore = new Mock <IConfigurationStore>(); mockRaptorClient.Setup(prj => prj.GetProfile(It.IsAny <TASNodeServiceRPCVerb_RequestProfile_Args>() /*args*/)).Returns(raptorResult); // Create an executor... var executor = RequestExecutorContainerFactory.Build <ProfileProductionDataExecutor>(mockLogger.Object, mockRaptorClient.Object, configStore: mockConfigStore.Object); Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request)); }
public void CompactionCellDatumExecutorNoResult() { var request = new CellDatumRequest(0, null, DisplayMode.CompactionCoverage, null, null, null, null, null); TCellProductionData data = new TCellProductionData(); var raptorClient = new Mock <IASNodeClient>(); var configStore = new Mock <IConfigurationStore>(); raptorClient.Setup(x => x.GetCellProductionData( request.ProjectId.Value, (int)RaptorConverters.convertDisplayMode(request.DisplayMode), request.GridPoint != null ? request.GridPoint.x : 0.0, request.GridPoint != null ? request.GridPoint.y : 0.0, It.IsAny <TWGS84Point>(), request.LLPoint == null, It.IsAny <TICFilterSettings>(), It.IsAny <TICLiftBuildSettings>(), It.IsAny <TVLPDDesignDescriptor>(), out data)) .Returns(false); var executor = RequestExecutorContainerFactory .Build <CompactionCellDatumExecutor>(logger, raptorClient.Object, configStore: configStore.Object); Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request)); }
public void CompactionCellDatumExecutorSuccessNoNECoordinates() { var request = new CellDatumRequest(0, null, DisplayMode.CCV, new WGSPoint(0.84, -1.75), null, null, null, null); TCellProductionData data = new TCellProductionData { DisplayMode = (int)request.DisplayMode, Value = 500, ReturnCode = 0 }; var raptorClient = new Mock <IASNodeClient>(); var configStore = new Mock <IConfigurationStore>(); raptorClient.Setup(x => x.GetCellProductionData( request.ProjectId.Value, (int)RaptorConverters.convertDisplayMode(request.DisplayMode), request.GridPoint != null ? request.GridPoint.x : 0.0, request.GridPoint != null ? request.GridPoint.y : 0.0, It.IsAny <TWGS84Point>(), request.LLPoint == null, It.IsAny <TICFilterSettings>(), It.IsAny <TICLiftBuildSettings>(), It.IsAny <TVLPDDesignDescriptor>(), out data)) .Returns(true); var executor = RequestExecutorContainerFactory .Build <CompactionCellDatumExecutor>(logger, raptorClient.Object, configStore: configStore.Object); Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request), "On Cell Datum request. Failed to process coordinate conversion request."); }
public void Should_set_ElevationType_From_ElevationType_value(ElevationType elevationType, TICElevationType expectedElevationType) { var filterResult = new FilterResult(filter: CreateFilter(elevationType: elevationType)); var result = RaptorConverters.ConvertFilter(filterResult); Assert.AreEqual(expectedElevationType, result.ElevationType); }
public void Should_set_VibeState_From_VibeStateOn_value(bool vibeStateOn, TICVibrationState expectedState) { var filterResult = new FilterResult(filter: CreateFilter(vibeStateOn: vibeStateOn)); var result = RaptorConverters.ConvertFilter(filterResult); Assert.AreEqual(expectedState, result.VibeState); }
protected virtual CellDatumResult ConvertCellDatumResult(TCellProductionData result) { return(new CellDatumResult( RaptorConverters.convertDisplayMode((TICDisplayMode)result.DisplayMode), (CellDatumReturnCode)result.ReturnCode, result.ReturnCode == 0 ? result.Value : (double?)null, result.TimeStampUTC)); }
protected override CellDatumResult ConvertCellDatumResult(TCellProductionData result) { return(new CompactionCellDatumResult( RaptorConverters.convertDisplayMode((TICDisplayMode)result.DisplayMode), (CellDatumReturnCode)result.ReturnCode, result.ReturnCode == 0 ? result.Value : (double?)null, result.TimeStampUTC, _northing, _easting)); }
public void CompactionReportStationOffsetExecutor_Raptor_NoResult() { var userPreferences = new UserPreferenceData { Language = "en-US" }; var request = CompactionReportStationOffsetRequest.CreateRequest( 33, null, null, 0, null, true, true, true, true, true, true, null, null, 0, 0, 0, null, userPreferences, "New Zealand Standard Time"); var filterSettings = RaptorConverters.ConvertFilter(request.Filter); var cutfillDesignDescriptor = RaptorConverters.DesignDescriptor(request.DesignFile); var alignmentDescriptor = RaptorConverters.DesignDescriptor(request.AlignmentFile); var TASNodeUserPreference = ExportRequestHelper.ConvertToRaptorUserPreferences(request.UserPreferences, request.ProjectTimezone); var options = RaptorConverters.convertOptions(null, request.LiftBuildSettings, 0, request.Filter?.LayerType ?? FilterLayerMethod.None, DisplayMode.Height, false); var mockConfigStore = new Mock <IConfigurationStore>(); mockConfigStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_STATIONOFFSET")).Returns(false); MemoryStream responseData; var raptorClient = new Mock <IASNodeClient>(); var args = ASNode.StationOffsetReport.RPC.__Global.Construct_StationOffsetReport_Args( request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, (int)CompactionReportType.StationOffset, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtProdDataReport), TASNodeUserPreference, alignmentDescriptor, cutfillDesignDescriptor, request.StartStation, request.EndStation, request.Offsets, request.CrossSectionInterval, request.ReportElevation, request.ReportCutFill, request.ReportCMV, request.ReportMDP, request.ReportPassCount, request.ReportTemperature, (int)GridReportOption.Unused, 0, 0, 0, 0, 0, 0, 0, // Northings, Eastings and Direction values are not used on Station Offset report. filterSettings, RaptorConverters.ConvertLift(request.LiftBuildSettings, filterSettings.LayerMethod), options ); raptorClient.Setup(x => x.GetReportStationOffset(args, out responseData)).Returns(0); // icsrrUnknownError var executor = RequestExecutorContainerFactory .Build <CompactionReportStationOffsetExecutor>(_logger, raptorClient.Object, configStore: mockConfigStore.Object); Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request)); }
public void Should_return_filter_with_correct_startUTC_When_overrideStartUTC_is_set() { var filter = CreateFilter(); var filterResult = new FilterResult(filter: filter); var overrideStartUTC = new DateTime(2019, 1, 1); var result = RaptorConverters.ConvertFilter(filterResult, overrideStartUTC: overrideStartUTC); Assert.AreEqual(overrideStartUTC, result.StartTime.Value); Assert.IsNotNull(filter.StartUtc); Assert.AreNotEqual(filter.StartUtc.Value, result.StartTime.Value); }
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(); } }
public void Should_set_Machines_From_AssetIDs_list_When_ContributingMachines_is_null_or_empty(bool setContributingMachines) { var assetIds = new List <long> { 1, 2, 3, 5, 8, 13 }; var contributingMachines = setContributingMachines ? new List <MachineDetails>() : null; var filterResult = FilterResult.CreateFilterForCCATileRequest(assetIDs: assetIds, contributingMachines: contributingMachines); var result = RaptorConverters.ConvertFilter(filterResult); Assert.IsTrue(result.Machines.Length == assetIds.Count); }
private ContractExecutionResult ProcessWithRaptor(CompactionReportStationOffsetRequest request) { var filterSettings = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient); var cutfillDesignDescriptor = RaptorConverters.DesignDescriptor(request.DesignFile); var alignmentDescriptor = RaptorConverters.DesignDescriptor(request.AlignmentFile); var userPreferences = ExportRequestHelper.ConvertToRaptorUserPreferences(request.UserPreferences, request.ProjectTimezone); var options = RaptorConverters.convertOptions(null, request.LiftBuildSettings, 0, request.Filter?.LayerType ?? FilterLayerMethod.None, DisplayMode.Height, false); log.LogDebug($"{nameof(ProcessWithRaptor)}: About to call GetReportStationOffset"); var args = ASNode.StationOffsetReport.RPC.__Global.Construct_StationOffsetReport_Args( request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, (int)CompactionReportType.StationOffset, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtProdDataReport), userPreferences, alignmentDescriptor, cutfillDesignDescriptor, request.StartStation, request.EndStation, request.Offsets, request.CrossSectionInterval, request.ReportElevation, request.ReportCutFill, request.ReportCMV, request.ReportMDP, request.ReportPassCount, request.ReportTemperature, (int)GridReportOption.Unused, 0, 0, 0, 0, 0, 0, 0, // Northings, Eastings and Direction values are not used on Station Offset report. filterSettings, RaptorConverters.ConvertLift(request.LiftBuildSettings, filterSettings.LayerMethod), options ); int raptorResult = raptorClient.GetReportStationOffset(args, out var responseData); if (raptorResult == 1) // icsrrNoError { return(responseData.Length > 0 ? ConvertStationOffsetResult(request, responseData) : CreateNullStationOffsetReturnedResult()); } throw CreateServiceException <CompactionReportStationOffsetExecutor>(); }
private CompactionProfileResult <CompactionProfileCell> ProcessProductionDataWithRaptor( CompactionProfileProductionDataRequest request) { MemoryStream memoryStream; var filter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient); var designDescriptor = RaptorConverters.DesignDescriptor(request.CutFillDesignDescriptor); var alignmentDescriptor = RaptorConverters.DesignDescriptor(request.AlignmentDesign); var liftBuildSettings = RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmNone); ProfilesHelper.ConvertProfileEndPositions(request.GridPoints, request.WGS84Points, out var startPt, out var endPt, out var positionsAreGrid); if (request.IsAlignmentDesign) { var args = ASNode.RequestAlignmentProfile.RPC.__Global.Construct_RequestAlignmentProfile_Args (request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ProfilesHelper.PROFILE_TYPE_NOT_REQUIRED, request.StartStation ?? ValidationConstants3D.MIN_STATION, request.EndStation ?? ValidationConstants3D.MIN_STATION, alignmentDescriptor, filter, liftBuildSettings, designDescriptor, request.ReturnAllPassesAndLayers); memoryStream = raptorClient.GetAlignmentProfile(args); } else { var args = ASNode.RequestProfile.RPC.__Global.Construct_RequestProfile_Args (request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ProfilesHelper.PROFILE_TYPE_HEIGHT, positionsAreGrid, startPt, endPt, filter, liftBuildSettings, designDescriptor, request.ReturnAllPassesAndLayers); memoryStream = raptorClient.GetProfile(args); } return(memoryStream != null?ConvertProfileResult(memoryStream, request.LiftBuildSettings) : null); }
/// <summary> /// Processes the summary CMV 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 <CMVRequest>(item); #if RAPTOR if (configStore.GetValueBool("ENABLE_TREX_GATEWAY_CMV") ?? false) { #endif await PairUpAssetIdentifiers(request.ProjectUid.Value, request.Filter); await PairUpImportedFileIdentifiers(request.ProjectUid.Value, filter1 : request.Filter); var cmvSummaryRequest = new CMVSummaryRequest( request.ProjectUid.Value, request.Filter, request.CmvSettings.CmvTarget, request.CmvSettings.OverrideTargetCMV, request.CmvSettings.MaxCMVPercent, request.CmvSettings.MinCMVPercent, AutoMapperUtility.Automapper.Map <LiftSettings>(request.LiftBuildSettings)); log.LogDebug($"{nameof(SummaryCMVExecutor)} trexRequest {JsonConvert.SerializeObject(cmvSummaryRequest)}"); return(await trexCompactionDataProxy.SendDataPostRequest <CMVSummaryResult, CMVSummaryRequest>(cmvSummaryRequest, "/cmv/summary", customHeaders)); #if RAPTOR } var raptorFilter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient, request.OverrideStartUTC, request.OverrideEndUTC, request.OverrideAssetIds); var raptorResult = raptorClient.GetCMVSummary(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(request.CallId ?? Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtCMVSummary), ConvertSettings(request.CmvSettings), raptorFilter, RaptorConverters.ConvertLift(request.LiftBuildSettings, raptorFilter.LayerMethod), out var cmvSummary); if (raptorResult == TASNodeErrorStatus.asneOK) { return(ConvertResult(cmvSummary)); } throw CreateServiceException <SummaryCMVExecutor>((int)raptorResult); #endif } finally { ContractExecutionStates.ClearDynamic(); } }
public void Should_set_PassCountRange_From_PassCountRange_values(int?passCountRangeMin, int?passCountRangeMax) { var filterResult = new FilterResult(filter: CreateFilter(passCountRangeMin: passCountRangeMin, passCountRangeMax: passCountRangeMax)); var result = RaptorConverters.ConvertFilter(filterResult); if (!passCountRangeMin.HasValue || !passCountRangeMax.HasValue) { Assert.AreEqual(0, result.PassCountRangeMin); Assert.AreEqual(0, result.PassCountRangeMax); return; } Assert.AreEqual(passCountRangeMin, result.PassCountRangeMin); Assert.AreEqual(passCountRangeMax, result.PassCountRangeMax); }
public void Should_set_TemperatureRange_From_TemperatureRange_values(double?temperatureRangeMin, double?temperatureRangeMax) { var filterResult = new FilterResult(filter: CreateFilter(temperatureRangeMin: temperatureRangeMin, temperatureRangeMax: temperatureRangeMax)); var result = RaptorConverters.ConvertFilter(filterResult); if (!temperatureRangeMin.HasValue || !temperatureRangeMax.HasValue) { Assert.AreEqual(4096, result.TemperatureRangeMin); Assert.AreEqual(4096, result.TemperatureRangeMax); return; } Assert.AreEqual((ushort)(temperatureRangeMin * 10), result.TemperatureRangeMin); Assert.AreEqual((ushort)(temperatureRangeMax * 10), result.TemperatureRangeMax); }
protected virtual bool GetCellDatumData(CellDatumRequest request, out TCellProductionData data) { var raptorFilter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient); return(raptorClient.GetCellProductionData (request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, (int)RaptorConverters.convertDisplayMode(request.DisplayMode), request.GridPoint?.x ?? 0, request.GridPoint?.y ?? 0, request.LLPoint != null ? RaptorConverters.ConvertWGSPoint(request.LLPoint) : new TWGS84Point(), request.LLPoint == null, raptorFilter, RaptorConverters.ConvertLift(request.LiftBuildSettings, raptorFilter.LayerMethod), RaptorConverters.DesignDescriptor(request.Design), out data)); }
/// <summary> /// Sends a POST request to Production Data Server (PDS) client. /// </summary> /// <param name="item">POST request description.</param> /// <param name="surveyedSurfaces">Returned list of Surveyed Surfaces.</param> /// <returns>True if the processed request from PDS was successful, false - otherwise.</returns> protected override bool SendRequestToPdsClient(object item, out TSurveyedSurfaceDetails[] surveyedSurfaces) { var request = CastRequestObjectTo <SurveyedSurfaceRequest>(item); surveyedSurfaces = null; var args = ASNode.GroundSurface.RPC.__Global .Construct_GroundSurface_Args( request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.SurveyedSurface.Id, request.SurveyedUtc, RaptorConverters.DesignDescriptor(request.SurveyedSurface) ); return(raptorClient.StoreGroundSurfaceFile(args)); }
protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { try { var request = CastRequestObjectTo <CMVChangeSummaryRequest>(item); #if RAPTOR if (UseTRexGateway("ENABLE_TREX_GATEWAY_CMV")) { #endif await PairUpAssetIdentifiers(request.ProjectUid.Value, request.Filter); await PairUpImportedFileIdentifiers(request.ProjectUid.Value, filter1 : request.Filter); var cmvChangeDetailsRequest = new CMVChangeDetailsRequest( request.ProjectUid.Value, request.Filter, request.CMVChangeSummaryValues, AutoMapperUtility.Automapper.Map <OverridingTargets>(request.LiftBuildSettings), AutoMapperUtility.Automapper.Map <LiftSettings>(request.LiftBuildSettings)); return(await trexCompactionDataProxy.SendDataPostRequest <CMVChangeSummaryResult, CMVChangeDetailsRequest>(cmvChangeDetailsRequest, "/cmv/percentchange", customHeaders)); #if RAPTOR } new TASNodeCMVChangeResult(); TASNodeCMVChangeSettings settings = new TASNodeCMVChangeSettings(request.CMVChangeSummaryValues); var raptorResult = raptorClient.GetCMVChangeSummary(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(request.CallId ?? Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtCMVChange), settings, RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient, overrideAssetIds: new List <long>()), RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmAutomatic), out var result); if (raptorResult == TASNodeErrorStatus.asneOK) { return(ConvertResult(result)); } throw CreateServiceException <CMVChangeSummaryExecutor>((int)raptorResult); #endif } finally { ContractExecutionStates.ClearDynamic(); } }
protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { var request = CastRequestObjectTo <TemperatureDetailsRequest>(item); var temperatureTargets = request.Targets.Select(t => (int)t).ToArray(); // already converted to 10ths #if RAPTOR if (UseTRexGateway("ENABLE_TREX_GATEWAY_TEMPERATURE")) { #endif var temperatureDetailsRequest = new TemperatureDetailRequest( request.ProjectUid.Value, request.Filter, temperatureTargets, AutoMapperUtility.Automapper.Map <OverridingTargets>(request.LiftBuildSettings), AutoMapperUtility.Automapper.Map <LiftSettings>(request.LiftBuildSettings)); var temperatureDetailsResult = await trexCompactionDataProxy.SendDataPostRequest <TemperatureDetailResult, TemperatureDetailRequest>(temperatureDetailsRequest, "/temperature/details", customHeaders); return(new CompactionTemperatureDetailResult(temperatureDetailsResult)); #if RAPTOR } var filter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient); var liftBuildSettings = RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmNone); var raptorResult = raptorClient.GetTemperatureDetails(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor(Guid.NewGuid(), 0, TASNodeCancellationDescriptorType.cdtTemperatureDetailed), new TTemperatureDetailSettings { TemperatureList = temperatureTargets, } , filter, liftBuildSettings, out var temperatureDetails); if (raptorResult == TASNodeErrorStatus.asneOK) { return(new CompactionTemperatureDetailResult(temperatureDetails.Percents)); } throw CreateServiceException <DetailedTemperatureExecutor>((int)raptorResult); #endif }
/// <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(); } }
/// <summary> /// Processes the summary MDP request by passing the request to Raptor and returning the result. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="item"></param> /// <returns>a CMVSummaryResult if successful</returns> protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { try { var request = CastRequestObjectTo <MDPRequest>(item); #if RAPTOR if (configStore.GetValueBool("ENABLE_TREX_GATEWAY_MDP") ?? false) { #endif var mdpSummaryRequest = new MDPSummaryRequest( request.ProjectUid.Value, request.Filter, request.MdpSettings.MdpTarget, request.MdpSettings.OverrideTargetMDP, request.MdpSettings.MaxMDPPercent, request.MdpSettings.MinMDPPercent, AutoMapperUtility.Automapper.Map <LiftSettings>(request.LiftBuildSettings)); return(await trexCompactionDataProxy.SendDataPostRequest <MDPSummaryResult, MDPSummaryRequest>(mdpSummaryRequest, "/mdp/summary", customHeaders)); #if RAPTOR } string fileSpaceName = FileDescriptorExtensions.GetFileSpaceId(configStore, log); var raptorFilter = RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient, request.OverrideStartUtc, request.OverrideEndUtc, request.OverrideAssetIds, fileSpaceName); var raptorResult = raptorClient.GetMDPSummary(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ASNodeRPC.__Global.Construct_TASNodeRequestDescriptor((request.CallId ?? Guid.NewGuid()), 0, TASNodeCancellationDescriptorType.cdtMDPSummary), ConvertSettings(request.MdpSettings), raptorFilter, RaptorConverters.ConvertLift(request.LiftBuildSettings, raptorFilter.LayerMethod), out var mdpSummary); if (raptorResult == TASNodeErrorStatus.asneOK) { return(ConvertResult(mdpSummary)); } throw CreateServiceException <SummaryMDPExecutor>((int)raptorResult); #endif } finally { ContractExecutionStates.ClearDynamic(); } }
private ProfileResult PerformProductionDataProfilePost(ProfileProductionDataRequest request) { MemoryStream memoryStream; if (request.IsAlignmentDesign) { var args = ASNode.RequestAlignmentProfile.RPC.__Global.Construct_RequestAlignmentProfile_Args( request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ProfilesHelper.PROFILE_TYPE_NOT_REQUIRED, request.StartStation ?? ValidationConstants3D.MIN_STATION, request.EndStation ?? ValidationConstants3D.MIN_STATION, RaptorConverters.DesignDescriptor(request.AlignmentDesign), RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient), RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmAutomatic), RaptorConverters.DesignDescriptor(request.AlignmentDesign), request.ReturnAllPassesAndLayers); memoryStream = raptorClient.GetAlignmentProfile(args); } else { ProfilesHelper.ConvertProfileEndPositions( request.GridPoints, request.WGS84Points, out VLPDDecls.TWGS84Point startPt, out VLPDDecls.TWGS84Point endPt, out bool positionsAreGrid); var args = ASNode.RequestProfile.RPC.__Global.Construct_RequestProfile_Args( request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, ProfilesHelper.PROFILE_TYPE_NOT_REQUIRED, positionsAreGrid, startPt, endPt, RaptorConverters.ConvertFilter(request.Filter, request.ProjectId, raptorClient), RaptorConverters.ConvertLift(request.LiftBuildSettings, TFilterLayerMethod.flmAutomatic), RaptorConverters.DesignDescriptor(request.AlignmentDesign), request.ReturnAllPassesAndLayers); memoryStream = raptorClient.GetProfile(args); } return(memoryStream != null ? ConvertProfileResult(memoryStream, request.CallId ?? Guid.NewGuid()) : null); // TODO: return appropriate result }