public async Task <IActionResult> GetBoundariesFromLinework([FromForm] DxfFileRequest requestDto) { Log.LogDebug($"{nameof(GetBoundariesFromLinework)}: {requestDto}"); var result = await RequestExecutorContainerFactory .Build <LineworkFileExecutor>(LoggerFactory, configStore : ConfigStore, trexCompactionDataProxy : TRexCompactionDataProxy, userId : GetUserId(), fileImportProxy : FileImportProxy) .ProcessAsync(requestDto) as DxfLineworkFileResult; return(result.Code == 0 ? StatusCode((int)HttpStatusCode.OK, result.ConvertToGeoJson(requestDto.ConvertLineStringCoordsToPolygon, requestDto.MaxVerticesPerBoundary)) : StatusCode((int)HttpStatusCode.BadRequest, result)); }
public async void Execute_ClosedOnly() { var mockCoordFile = new Mock <IFormFile>(); mockCoordFile.Setup(x => x.Length).Returns(4); mockCoordFile.Setup(x => x.CopyTo(It.IsAny <MemoryStream>())).Callback((Stream ms) => { ms.Write(new byte[] { 1, 2, 3, 4 }); }); var mockDXFFile = new Mock <IFormFile>(); mockDXFFile.Setup(x => x.Length).Returns(CreateTestPolyline().Length); mockDXFFile.Setup(x => x.CopyTo(It.IsAny <MemoryStream>())).Callback((Stream ms) => { CreateTestPolyline().CopyTo((MemoryStream)ms); }); var requestDto = new DxfFileRequest { ConvertLineStringCoordsToPolygon = false, DxfUnits = (int)DxfUnitsType.Meters, MaxBoundariesToProcess = 10, MaxVerticesPerBoundary = 1000, CoordinateSystemFile = mockCoordFile.Object, DxfFile = mockDXFFile.Object }; var result = await RequestExecutorContainerFactory .Build <LineworkFileExecutor>(logger, configStore : configStore, trexCompactionDataProxy : trexCompactionDataProxy) .ProcessAsync(requestDto); result.Code.Should().Be(ContractExecutionStatesEnum.ExecutedSuccessfully); result.Message.Should().Be("Success"); var testResult = TestResultBoundary().Select(b => new WGS84LineworkBoundary { Boundary = b.Fence.ToArray(), BoundaryName = b.Name, BoundaryType = b.Type }).ToArray(); ((DxfLineworkFileResult)result).LineworkBoundaries.Should().BeEquivalentTo(testResult); }