Esempio n. 1
0
        private async Task <DxfLineworkFileResult> ProcessForTRex(LineworkRequest request)
        {
            try
            {
                log.LogDebug($"{nameof(LineworkFileExecutor)}::{nameof(ProcessForTRex)}()");

                var req = new DXFBoundariesRequest(request.CoordinateSystemFileData, ImportedFileType.SiteBoundary,
                                                   request.DxfFileData, (DxfUnitsType)request.LineworkUnits, (uint)request.NumberOfBoundariesToProcess,
                                                   request.ConvertLineStringCoordsToPolygon);
                var returnResult = await trexCompactionDataProxy.SendDataPostRequest <DXFBoundaryResult, DXFBoundariesRequest>(req, "files/dxf/boundaries");

                log.LogInformation($"RequestBoundariesFromLineWork: result: {JsonConvert.SerializeObject(returnResult)}");

                if (returnResult.Code != ContractExecutionStatesEnum.ExecutedSuccessfully)
                {
                    throw CreateServiceException <LineworkFileExecutor>(returnResult.Code);
                }

                return(new DxfLineworkFileResult(returnResult.Boundaries, returnResult.Code, returnResult.Message));
            }
            catch (ServiceException ex)
            {
                var errorMessage = ex.GetResult.Message;

                log.LogError($"RequestBoundariesFromLinework: exception {errorMessage}");

                return(new DxfLineworkFileResult(ContractExecutionStatesEnum.InternalProcessingError, errorMessage, null));
            }
            finally
            {
                ContractExecutionStates.ClearDynamic();
            }
        }
Esempio n. 2
0
        public void Should_return_correct_boundary_for_request(int maxBoundariesToProcess, int expectedResult)
        {
            var request = new LineworkRequest(new DxfFileRequest
            {
                MaxBoundariesToProcess = maxBoundariesToProcess
            }, null);

            Assert.AreEqual(expectedResult, request.NumberOfBoundariesToProcess);
        }
Esempio n. 3
0
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            if (!(item is DxfFileRequest dxfRequest))
            {
                throw new ServiceException(HttpStatusCode.InternalServerError, new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError, "Request is not a DxfFileRequest"));
            }

            var request = new LineworkRequest(dxfRequest).Validate();

            return(await ProcessForTRex(request));
        }