protected void AddStaticAnalysisMetrics(CAD.AssemblyType assemblyRoot) { if (ExportComponentPoints && cadDataContainer.PointCoordinatesList.Any()) { StaticAnalysisMetrics.AddRange(cadDataContainer.PointCoordinatesList.Where(x => !StaticAnalysisMetrics.Exists(r => r.MetricID == x.MetricID))); } if (StaticAnalysisMetrics.Any()) { CAD.AnalysesType cadanalysis = GetCADAnalysis(assemblyRoot); CAD.StaticType staticanalysis = GetStaticAnalysis(cadanalysis); //CAD.StaticType staticanalysis = new CAD.StaticType(); List <CAD.MetricType> metriclist = MetricsToCADXMLOutput(StaticAnalysisMetrics); staticanalysis.Metrics = new CAD.MetricsType(); staticanalysis.Metrics._id = UtilityHelpers.MakeUdmID(); staticanalysis.Metrics.Metric = metriclist.ToArray(); cadanalysis.Static = new CAD.StaticType[] { staticanalysis }; } }
// This code is copy/pasted from TestBench. Since this class is not a subclass of TestBench, // it can't be re-used. Can this code be re-used from there by moving it to TestBenchBase? private void AddComputations(CAD.AssemblyType assemblyRoot) { if (Computations.Any()) { CAD.AnalysesType cadanalysis = GetCADAnalysis(assemblyRoot); CAD.StaticType staticanalysis = new CAD.StaticType(); staticanalysis._id = UtilityHelpers.MakeUdmID(); staticanalysis.AnalysisID = AnalysisID; List<CAD.MetricType> metriclist = new List<CAD.MetricType>(); foreach (var item in Computations) { if (item.ComputationType == "PointCoordinates") { CAD.MetricType ptout = new CAD.MetricType(); ptout._id = UtilityHelpers.MakeUdmID(); ptout.ComponentID = item.ComponentID; ptout.MetricID = item.MetricID; ptout.MetricType1 = item.ComputationType; ptout.RequestedValueType = item.RequestedValueType; ptout.Details = item.FeatureDatumName; ptout.ComponentID = String.IsNullOrEmpty(item.ComponentID) ? "" : item.ComponentID; // PointCoordinate metric is tied to a specific Component metriclist.Add(ptout); } else { CAD.MetricType metric = new CAD.MetricType(); metric._id = UtilityHelpers.MakeUdmID(); metric.MetricID = item.MetricID; metric.MetricType1 = item.ComputationType; metric.RequestedValueType = item.RequestedValueType; metric.ComponentID = assemblyRoot.ConfigurationID; metric.Details = ""; metriclist.Add(metric); } } staticanalysis.Metrics = new CAD.MetricsType(); staticanalysis.Metrics._id = UtilityHelpers.MakeUdmID(); staticanalysis.Metrics.Metric = metriclist.ToArray(); cadanalysis.Static = new CAD.StaticType[] { staticanalysis }; } }