コード例 #1
0
        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));
        }
コード例 #2
0
        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.");
        }
コード例 #3
0
        public async Task CompactionCellDatumExecutor_TRex_NoCoords()
        {
            var expectedResult = new CompactionCellDatumResult(DisplayMode.Height, CellDatumReturnCode.ValueFound, 5.23,
                                                               DateTime.UtcNow.AddHours(-4.5), 12345, 9876);

            var tRexProxy = new Mock <ITRexCompactionDataProxy>();

            tRexProxy.Setup(x => x.SendDataPostRequest <CompactionCellDatumResult, CellDatumTRexRequest>(
                                It.IsAny <CellDatumTRexRequest>(),
                                It.IsAny <string>(),
                                It.IsAny <IDictionary <string, string> >(), false))
            .ReturnsAsync(expectedResult);

            var configStore = new Mock <IConfigurationStore>();

            configStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_CELL_DATUM")).Returns(true);

            var executor = RequestExecutorContainerFactory
                           .Build <CompactionCellDatumExecutor>(logger, configStore: configStore.Object, trexCompactionDataProxy: tRexProxy.Object);

            var request =
                new CellDatumRequest(0, Guid.NewGuid(), expectedResult.displayMode, null, new Point(expectedResult.northing, expectedResult.easting), null, null, null);

            var ex = await Assert.ThrowsExceptionAsync <ServiceException>(async() => await executor.ProcessAsync(request));

            Assert.AreEqual(HttpStatusCode.BadRequest, ex.Code);
            Assert.AreEqual("No WGS84 coordinates provided", ex.GetResult.Message);
        }
コード例 #4
0
        public async Task CompactionCellDatumExecutor_TRex_Success()
        {
            var expectedResult = new CompactionCellDatumResult(DisplayMode.Height, CellDatumReturnCode.ValueFound, 5.23,
                                                               DateTime.UtcNow.AddHours(-4.5), 12345, 9876);

            var tRexProxy = new Mock <ITRexCompactionDataProxy>();

            tRexProxy.Setup(x => x.SendDataPostRequest <CompactionCellDatumResult, CellDatumTRexRequest>(
                                It.IsAny <CellDatumTRexRequest>(),
                                It.IsAny <string>(),
                                It.IsAny <IDictionary <string, string> >(), false))
            .ReturnsAsync(expectedResult);

            var configStore = new Mock <IConfigurationStore>();

            configStore.Setup(x => x.GetValueBool("ENABLE_TREX_GATEWAY_CELL_DATUM")).Returns(true);

            var executor = RequestExecutorContainerFactory
                           .Build <CompactionCellDatumExecutor>(logger, configStore: configStore.Object, trexCompactionDataProxy: tRexProxy.Object);

            var request =
                new CellDatumRequest(0, Guid.NewGuid(), expectedResult.displayMode, new WGSPoint(123.456, 678.987), null, null, null, null);

            var result = await executor.ProcessAsync(request) as CompactionCellDatumResult;

            Assert.AreEqual(expectedResult.displayMode, result.displayMode, "Wrong displayMode");
            Assert.AreEqual(expectedResult.returnCode, result.returnCode, "Wrong returnCode");
            Assert.AreEqual(expectedResult.value, result.value, "Wrong value");
            Assert.AreEqual(expectedResult.timestamp, result.timestamp, "Wrong timestamp");
            Assert.AreEqual(expectedResult.northing, result.northing, "Wrong northing");
            Assert.AreEqual(expectedResult.easting, result.easting, "Wrong easting");
        }
コード例 #5
0
        protected virtual async Task <CellDatumResult> GetTRexCellDatumData(CellDatumRequest request)
        {
            var trexRequest = new CellDatumTRexRequest(request.ProjectUid.Value, request.DisplayMode, request.LLPoint,
                                                       request.GridPoint, request.Filter, request.Design?.FileUid, request.Design?.Offset,
                                                       AutoMapperUtility.Automapper.Map <OverridingTargets>(request.LiftBuildSettings),
                                                       AutoMapperUtility.Automapper.Map <LiftSettings>(request.LiftBuildSettings));

            return(await trexCompactionDataProxy.SendDataPostRequest <CompactionCellDatumResult, CellDatumTRexRequest>(trexRequest, "/cells/datum", customHeaders));
        }
コード例 #6
0
        public async Task <CellDatumResult> PostCellDatumTbc([FromBody] CellDatumRequest request)
        {
            request.Validate();

            return(await RequestExecutorContainerFactory.Build <CellDatumExecutor>(
                       LoggerFactory,
                       configStore : ConfigStore,
                       trexCompactionDataProxy : TRexCompactionDataProxy,
                       fileImportProxy : FileImportProxy, customHeaders : CustomHeaders, userId : GetUserId()
                       ).ProcessAsync(request) as CellDatumResult);
        }
コード例 #7
0
        protected override bool GetCellDatumData(CellDatumRequest request, out TCellProductionData data)
        {
            CheckForCoordinate(request.LLPoint);

            var pointList = GetGridCoordinates(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.LLPoint);

            _northing = pointList.Points.Coords[0].Y;
            _easting  = pointList.Points.Coords[0].X;

            return(base.GetCellDatumData(request, out data));
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        public async Task <CompactionCellDatumResult> GetProductionDataCellsDatum(
            [FromQuery] Guid projectUid,
            [FromQuery] Guid?filterUid,
            [FromQuery] Guid?cutfillDesignUid,
            [FromQuery] DisplayMode displayMode,
            [FromQuery] double lat,
            [FromQuery] double lon)
        {
            Log.LogInformation("GetProductionDataCellsDatum: " + Request.QueryString);

            var projectId       = ((RaptorPrincipal)User).GetLegacyProjectId(projectUid);
            var filter          = GetCompactionFilter(projectUid, filterUid, filterMustExist: true);
            var projectSettings = GetProjectSettingsTargets(projectUid);
            var cutFillDesign   = GetAndValidateDesignDescriptor(projectUid, cutfillDesignUid);

            await Task.WhenAll(projectId, filter, projectSettings, cutFillDesign);

            var liftSettings = SettingsManager.CompactionLiftBuildSettings(projectSettings.Result);

            var request = new CellDatumRequest(
                projectId.Result,
                projectUid,
                displayMode,
                new WGSPoint(lat.LatDegreesToRadians(), lon.LonDegreesToRadians()),
                null,
                filter.Result,
                liftSettings,
                cutFillDesign.Result);

            request.Validate();

            return(await RequestExecutorContainerFactory.Build <CompactionCellDatumExecutor>(LoggerFactory,
#if RAPTOR
                                                                                             RaptorClient,
#endif
                                                                                             configStore : ConfigStore, trexCompactionDataProxy : TRexCompactionDataProxy, customHeaders : CustomHeaders,
                                                                                             userId : GetUserId(), fileImportProxy : FileImportProxy).ProcessAsync(request) as CompactionCellDatumResult);
        }
コード例 #10
0
        protected override async Task <CellDatumResult> GetTRexCellDatumData(CellDatumRequest request)
        {
            CheckForCoordinate(request.LLPoint);

            return(await base.GetTRexCellDatumData(request));
        }