예제 #1
0
        public async Task Test_DesignBoundaryRequest()
        {
            const int EXPECTED_BOUNDARY_COUNT          = 7;
            const int EXPECTED_BOUNDARY_POINTS_COUNT_0 = 1528;
            const int EXPECTED_BOUNDARY_POINTS_COUNT_2 = 15;
            const int EXPECTED_BOUNDARY_POINTS_COUNT   = 6;

            AddDesignProfilerGridRouting();

            var siteModel       = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel();
            var designUid       = DITAGFileAndSubGridRequestsWithIgniteFixture.AddDesignToSiteModel(ref siteModel, TestHelper.CommonTestDataPath, "Bug36372.ttm", false);
            var referenceDesign = new DesignOffset(designUid, 0);

            var request  = new DesignBoundaryRequest();
            var response = await request.ExecuteAsync(new DesignBoundaryArgument()
            {
                ProjectID       = siteModel.ID,
                ReferenceDesign = referenceDesign,
                Filters         = new FilterSet(new CombinedFilter()),
                TRexNodeID      = Guid.NewGuid()
            });

            response.RequestResult.Should().Be(DesignProfilerRequestResult.OK);
            response.Boundary.Count.Should().Be(EXPECTED_BOUNDARY_COUNT);
            response.Boundary[0].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT_0);
            response.Boundary[1].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT);
            response.Boundary[2].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT_2);
            response.Boundary[3].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT);
            response.Boundary[4].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT);
            response.Boundary[5].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT);
            response.Boundary[6].Points.Count.Should().Be(EXPECTED_BOUNDARY_POINTS_COUNT);
        }
예제 #2
0
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            var request = item as DesignBoundariesRequest;

            if (request == null)
            {
                ThrowRequestTypeCastException <DesignBoundariesRequest>();
            }

            var siteModel = GetSiteModel(request.ProjectUid);

            var csib = siteModel.CSIB();

            if (csib == string.Empty)
            {
                throw new ServiceException(HttpStatusCode.BadRequest, new ContractExecutionResult(ContractExecutionStatesEnum.FailedToGetResults,
                                                                                                  $"The project does not have Coordinate System definition data. Project UID: {siteModel.ID}"));
            }

            var referenceDesign        = new DesignOffset(request.DesignUid, request.Tolerance);
            var designBoundaryRequest  = new DesignBoundaryRequest();
            var designBoundaryResponse = await designBoundaryRequest.ExecuteAsync(new DesignBoundaryArgument
            {
                ProjectID       = siteModel.ID,
                ReferenceDesign = referenceDesign
            });

            if (designBoundaryResponse != null &&
                designBoundaryResponse.RequestResult == DesignProfilerRequestResult.OK &&
                designBoundaryResponse.Boundary != null)
            {
                return(await DesignBoundaryHelper.ConvertBoundary(designBoundaryResponse.Boundary, request.Tolerance, siteModel.CellSize, csib, request.FileName));
            }

            throw new ServiceException(HttpStatusCode.BadRequest, new ContractExecutionResult(ContractExecutionStatesEnum.FailedToGetResults,
                                                                                              $"Failed to get requested Design Boundary data. Project UID: {siteModel.ID}, Design UID: {request.DesignUid}"));
        }