Example #1
0
        public void Test_GriddedReportRequestArgument_WithContent()
        {
            var request = new GriddedReportRequestArgument()
            {
                ProjectID         = Guid.NewGuid(),
                Filters           = new FilterSet(new CombinedFilter()),
                ReferenceDesign   = new DesignOffset(Guid.NewGuid(), 1.5),
                ReportElevation   = true,
                ReportCmv         = true,
                ReportMdp         = true,
                ReportPassCount   = true,
                ReportTemperature = true,
                ReportCutFill     = false,
                GridInterval      = 1.5,
                GridReportOption  = GridReportOption.Direction,
                StartNorthing     = 808000,
                StartEasting      = 400000,
                EndNorthing       = 809000,
                EndEasting        = 400100,
                Azimuth           = 4.6,
                Overrides         = new OverrideParameters {
                    OverrideMachineCCV = true, OverridingMachineCCV = 45
                }
            };

            SimpleBinarizableInstanceTester.TestClass(request, "Empty GriddedReportRequestArgument not same after round trip serialisation");
        }
Example #2
0
 /// <summary>
 /// Constructor for the renderer accepting all parameters necessary for its operation
 /// </summary>
 public GriddedReportComputeFuncExecutor(GriddedReportRequestArgument arg)
 {
     _griddedReportRequestArgument = arg;
     if (arg != null)
     {
         _siteModel = DIContext.Obtain <ISiteModels>().GetSiteModel(arg.ProjectID);
     }
 }
Example #3
0
        public void Test_GriddedReportRequestArgument_Empty()
        {
            var request = new GriddedReportRequestArgument()
            {
            };

            SimpleBinarizableInstanceTester.TestClass(request, "Empty GriddedReportRequestArgument not same after round trip serialisation");
        }
Example #4
0
        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);
        }