private StationOffsetRow ExtractRequiredValues(IDesignWrapper cutFillDesignWrapper, StationOffsetPoint point, ClientCellProfileLeafSubgrid clientGrid, int cellX, int cellY) { clientGrid.CalculateWorldOrigin(out double subgridWorldOriginX, out double subgridWorldOriginY); var cell = clientGrid.Cells[cellX, cellY]; var result = new StationOffsetRow(point.Station, point.Offset, cell.CellYOffset + subgridWorldOriginY, cell.CellXOffset + subgridWorldOriginX); (IClientHeightLeafSubGrid designHeights, DesignProfilerRequestResult errorCode)getDesignHeightsResult = (null, DesignProfilerRequestResult.UnknownError); if (requestArgument.ReferenceDesign != null && requestArgument.ReferenceDesign.DesignID != Guid.Empty) { getDesignHeightsResult = cutFillDesignWrapper.Design.GetDesignHeightsViaLocalCompute(siteModel, cutFillDesignWrapper.Offset, clientGrid.OriginAsCellAddress(), clientGrid.CellSize); if (getDesignHeightsResult.errorCode != DesignProfilerRequestResult.OK || getDesignHeightsResult.designHeights == null) { string errorMessage; if (getDesignHeightsResult.errorCode == DesignProfilerRequestResult.NoElevationsInRequestedPatch) { errorMessage = "StationOffset Report. Call to RequestDesignElevationPatch failed due to no elevations in requested patch."; Log.LogInformation(errorMessage); } else { errorMessage = $"StationOffset Report. Call to RequestDesignElevationPatch failed due to no TDesignProfilerRequestResult return code {getDesignHeightsResult.errorCode}."; Log.LogWarning(errorMessage); } } } if (cell.PassCount == 0) // Nothing for us to do, as cell is not in our areaControlSet... { return(result); } result.Elevation = requestArgument.ReportElevation ? cell.Height : Consts.NullHeight; result.CutFill = (requestArgument.ReportCutFill && (getDesignHeightsResult.designHeights != null) && getDesignHeightsResult.designHeights.Cells[cellX, cellY] != Consts.NullHeight) ? cell.Height - getDesignHeightsResult.designHeights.Cells[cellX, cellY] : Consts.NullHeight; // CCV is equiv to CMV in this instance result.Cmv = (short)(requestArgument.ReportCmv ? cell.LastPassValidCCV : CellPassConsts.NullCCV); result.Mdp = (short)(requestArgument.ReportMdp ? cell.LastPassValidMDP : CellPassConsts.NullMDP); result.PassCount = (short)(requestArgument.ReportPassCount ? cell.PassCount : CellPassConsts.NullPassCountValue); result.Temperature = (short)(requestArgument.ReportTemperature ? cell.LastPassValidTemperature : CellPassConsts.NullMaterialTemperatureValue); return(result); }
private List <GriddedReportDataRow> ExtractRequiredValues(GriddedReportRequestArgument griddedReportRequestArgument, ClientCellProfileLeafSubgrid subGrid) { var result = new List <GriddedReportDataRow>(); (IClientHeightLeafSubGrid designHeights, DesignProfilerRequestResult errorCode)getDesignHeightsResult = (null, DesignProfilerRequestResult.UnknownError); if (_griddedReportRequestArgument.ReferenceDesign != null && _griddedReportRequestArgument.ReferenceDesign.DesignID != Guid.Empty) { var cutFillDesign = _siteModel.Designs.Locate(_griddedReportRequestArgument.ReferenceDesign.DesignID); if (cutFillDesign == null) { throw new ArgumentException($"Design {_griddedReportRequestArgument.ReferenceDesign.DesignID} not a recognized design in project {_griddedReportRequestArgument.ProjectID}"); } getDesignHeightsResult = cutFillDesign.GetDesignHeightsViaLocalCompute(_siteModel, _griddedReportRequestArgument.ReferenceDesign.Offset, subGrid.OriginAsCellAddress(), subGrid.CellSize); if (getDesignHeightsResult.errorCode != DesignProfilerRequestResult.OK || getDesignHeightsResult.designHeights == null) { string errorMessage; if (getDesignHeightsResult.errorCode == DesignProfilerRequestResult.NoElevationsInRequestedPatch) { errorMessage = "Gridded Report. Call to RequestDesignElevationPatch failed due to no elevations in requested patch."; Log.LogInformation(errorMessage); } else { errorMessage = $"Gridded Report. Call to RequestDesignElevationPatch failed due to no TDesignProfilerRequestResult return code {getDesignHeightsResult.errorCode}."; Log.LogWarning(errorMessage); } } } subGrid.CalculateWorldOrigin(out double subGridWorldOriginX, out double subGridWorldOriginY); SubGridUtilities.SubGridDimensionalIterator((x, y) => { var cell = subGrid.Cells[x, y]; if (cell.PassCount == 0) // Nothing for us to do, as cell is not in our areaControlSet... { return; } result.Add(new GriddedReportDataRow { Easting = cell.CellXOffset + subGridWorldOriginX, Northing = cell.CellYOffset + subGridWorldOriginY, Elevation = griddedReportRequestArgument.ReportElevation ? cell.Height : Consts.NullHeight, CutFill = griddedReportRequestArgument.ReportCutFill && getDesignHeightsResult.designHeights != null && getDesignHeightsResult.designHeights.Cells[x, y] != Consts.NullHeight ? cell.Height - getDesignHeightsResult.designHeights.Cells[x, y] : Consts.NullHeight, // CCV is equiv to CMV in this instance Cmv = griddedReportRequestArgument.ReportCmv ? cell.LastPassValidCCV : CellPassConsts.NullCCV, Mdp = griddedReportRequestArgument.ReportMdp ? cell.LastPassValidMDP : CellPassConsts.NullMDP, PassCount = (short)(griddedReportRequestArgument.ReportPassCount ? cell.PassCount : CellPassConsts.NullPassCountValue), Temperature = (short)(griddedReportRequestArgument.ReportTemperature ? cell.LastPassValidTemperature : CellPassConsts.NullMaterialTemperatureValue) }); }); return(result); }