private void dynamicJoin_onTraceSelected(IO2Trace o2TraceSelected) { if (o2TraceSelected.traceType == TraceType.Lost_Sink) { var sources = JoinFindings_OnInterfaces.getSources(findingsViewer_SourcesMappedToInterfaces.currentO2Findings); if (sources.ContainsKey(o2TraceSelected.signature)) { findingsViewers_withSourcesForInterfaces.loadO2Findings(sources[o2TraceSelected.signature], true); } } }
public void calculateSourcesMappedToInterfaces(bool includeOriginalFindings) { var baseO2Findings = findingsViewer_BaseFindings.currentO2Findings; var cirData = cirDataViewer.getCirDataObject(); var sourcesMappedToInterfaces = JoinFindings_OnInterfaces.getSourcesMappedToInterfaces(baseO2Findings, cirData); findingsViewer_SourcesMappedToInterfaces.loadO2Findings(sourcesMappedToInterfaces, true); findingsViewer_DynamicJoin.loadO2Findings(baseO2Findings, true); var results = new List <IO2Finding>(); while (true) { if (includeOriginalFindings) { results.AddRange(baseO2Findings); // will add both Joined-up ones and original findings } DI.log.info("************************* MAPPING INTERFACES **************"); var joinedFindings = JoinFindings_OnInterfaces.mapInterfaces(baseO2Findings, sourcesMappedToInterfaces, cirData); if (joinedFindings.Count == 0) { break; } baseO2Findings = joinedFindings; if (false == includeOriginalFindings) { results.AddRange(baseO2Findings); // will only add the joined up ones } } // now remove the findings with Lost Sinks in sourcesMappedToInterfaces (since these should have already been mapped var finalResults = new List <IO2Finding>(); var sources = JoinFindings_OnInterfaces.getSources(sourcesMappedToInterfaces); foreach (O2.DotNetWrappers.O2Findings.O2Finding o2Finding in results) { var lostSink = o2Finding.LostSink; if (lostSink == "") { finalResults.Add(o2Finding); } else if (false == sources.ContainsKey(lostSink)) { finalResults.Add(o2Finding); } } //if (false == sourcesMappedToInterfaces.Contains(o2Finding.LostSink)) //var join2 = JoinFindings_OnInterfaces.mapInterfaces(joinedFindings, sourcesMappedToInterfaces, cirData); //var join3 = JoinFindings_OnInterfaces.mapInterfaces(join2, sourcesMappedToInterfaces, cirData); findingsViewer_AutoMappingOfInterfaces.loadO2Findings(finalResults, true); }