protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { var request = item as ElevationDataRequest; if (request == null) { ThrowRequestTypeCastException <ElevationStatisticsExecutor>(); } var siteModel = GetSiteModel(request.ProjectUid); var filter = ConvertFilter(request?.Filter, siteModel); var operation = new ElevationStatisticsOperation(); var elevationStatisticsResult = await operation.ExecuteAsync(new ElevationStatisticsArgument() { ProjectID = siteModel.ID, Filters = new FilterSet(filter), Overrides = AutoMapperUtility.Automapper.Map <OverrideParameters>(request.Overrides), LiftParams = ConvertLift(request.LiftSettings, request.Filter?.LayerType) }); if (elevationStatisticsResult != null) { if (elevationStatisticsResult.ResultStatus == RequestErrorStatus.OK) { return(ConvertResult(elevationStatisticsResult)); } throw CreateServiceException <ElevationStatisticsExecutor>(elevationStatisticsResult.ResultStatus); } throw CreateServiceException <ElevationStatisticsExecutor>(); }
public async Task <JsonResult> GetElevationRange([FromRoute] string siteModelID, [FromBody] OverrideParameters overrides) { string resultToReturn; if (!Guid.TryParse(siteModelID, out var UID)) { resultToReturn = $"<b>Invalid Site Model UID: {siteModelID}</b>"; } else { var siteModel = DIContext.Obtain <ISiteModels>().GetSiteModel(UID, false); if (siteModel == null) { resultToReturn = $"<b>Site model {UID} is unavailable</b>"; } else { var sw = new Stopwatch(); sw.Start(); var operation = new ElevationStatisticsOperation(); var result = await operation.ExecuteAsync(new ElevationStatisticsArgument() { ProjectID = siteModel.ID, Filters = new FilterSet { Filters = new[] { new CombinedFilter() } }, Overrides = overrides }); if (result != null) { var resultString = $"<b>Elevation Statistics Result (in {sw.Elapsed}) :</b><br/>"; resultString += "<b>================================================</b><br/>"; resultString += $"<b>Minimum Elevation:</b> {result.MinElevation}<br/>"; resultString += $"<b>Maximum Elevation:</b> {result.MaxElevation}<br/>"; resultString += $"<b>Coverage Area:</b> {result.CoverageArea}<br/>"; resultString += "<b>Bounding Extents:</b><br/>"; resultString += $"<b>Minimum X:</b> {result.BoundingExtents.MinX}<br/>"; resultString += $"<b>Minimum Y:</b> {result.BoundingExtents.MinY}<br/>"; resultString += $"<b>Minimum Z:</b> {result.BoundingExtents.MinZ}<br/>"; resultString += $"<b>Maximum X:</b> {result.BoundingExtents.MaxX}<br/>"; resultString += $"<b>Maximum Y:</b> {result.BoundingExtents.MaxY}<br/>"; resultString += $"<b>Maximum Z:</b> {result.BoundingExtents.MaxZ}<br/>"; resultToReturn = resultString; } else { resultToReturn = "<b>No result</b>"; } } } return(new JsonResult(resultToReturn)); }
public async Task Test_SummaryElevationStatistics_EmptySiteModel_FullExtents() { AddClusterComputeGridRouting(); AddApplicationGridRouting(); var siteModel = DITAGFileAndSubGridRequestsWithIgniteFixture.NewEmptyModel(); var operation = new ElevationStatisticsOperation(); var elevationStatisticsResult = await operation.ExecuteAsync(SimpleElevationStatisticsArgument(siteModel)); elevationStatisticsResult.Should().NotBeNull(); elevationStatisticsResult.ResultStatus.Should().Be(RequestErrorStatus.FailedToRequestDatamodelStatistics); }
public async Task Test_SummaryElevationStatistics_SiteModelWithSingleCell_FullExtents() { AddClusterComputeGridRouting(); AddApplicationGridRouting(); var siteModel = BuildModelForSingleCellElevation(ELEVATION_INCREMENT_1_0); var operation = new ElevationStatisticsOperation(); var elevationStatisticsResult = await operation.ExecuteAsync(SimpleElevationStatisticsArgument(siteModel)); elevationStatisticsResult.Should().NotBeNull(); elevationStatisticsResult.ResultStatus.Should().Be(RequestErrorStatus.OK); elevationStatisticsResult.MinElevation.Should().Be(10.0); elevationStatisticsResult.MaxElevation.Should().Be(10.0); elevationStatisticsResult.CoverageArea.Should().BeApproximately(SubGridTreeConsts.DefaultCellSize * SubGridTreeConsts.DefaultCellSize, 0.000001); elevationStatisticsResult.BoundingExtents.IsValidPlanExtent.Should().Be(true); }
public void Test_SummaryElevationStatistics_Creation() { var operation = new ElevationStatisticsOperation(); operation.Should().NotBeNull(); }