private void WriteSummary(SummaryAnalyzer otherAnalyzer, StreamWriter writer) { writer.WriteLine("Current Execution Log = {0}", m_analyzer.ExecutionLogPath); writer.WriteLine("Previous Execution Log: {0}", otherAnalyzer.ExecutionLogPath); writer.WriteLine("Number of Process Pips : {0}", m_analyzer.GetProcessPipCount()); writer.WriteLine("Number of executed Process Pips : {0}", m_analyzer.GetExecutedProcessPipCount()); var fileDependencyDiff = SummaryAnalyzer.GetFileDependencyDiff(m_analyzer.Summary.FileArtifactSummary, otherAnalyzer.Summary.FileArtifactSummary); writer.WriteLine("Number of dependency files with mismatch hash : {0}", fileDependencyDiff.Count()); var observedDiff = SummaryAnalyzer.GetFileDependencyDiff(m_analyzer.Summary.ObservedSummary, otherAnalyzer.Summary.ObservedSummary); writer.WriteLine("Number of observed inputs with mismatch hash : {0}", observedDiff.Count()); if (m_analyzer.Summary.DirectoryMembership.Count == 0 || otherAnalyzer.Summary.DirectoryMembership.Count == 0) { var fileName = m_analyzer.Summary.DirectoryMembership.Count == 0 ? m_analyzer.ExecutionLogPath : otherAnalyzer.ExecutionLogPath; writer.WriteLine("No directory membership event in execution log : {0}", fileName); } else { var directoryMembershipNotInTwo = SummaryAnalyzer.GetDirectoryMembershipDiff(m_analyzer.Summary.DirectoryMembership, otherAnalyzer.Summary.DirectoryMembership); var directoryMembershipNotInOne = SummaryAnalyzer.GetDirectoryMembershipDiff(otherAnalyzer.Summary.DirectoryMembership, m_analyzer.Summary.DirectoryMembership); writer.WriteLine("Number of directory membership differences : {0}", directoryMembershipNotInTwo.Count() + directoryMembershipNotInOne.Count); } int produced = m_analyzer.GetProducedFileCount(); var cached = m_analyzer.GetCachedFileCount(); var upToDate = m_analyzer.GetUpToDateFileCount(); writer.WriteLine("Current XLG Output Files : {0}/{1}/{2}(Produced/FromCache/UpToDate)", produced, cached, upToDate); produced = otherAnalyzer.GetProducedFileCount(); cached = otherAnalyzer.GetCachedFileCount(); upToDate = otherAnalyzer.GetUpToDateFileCount(); writer.WriteLine("Previous XLG Output Files : {0}/{1}/{2}(Produced/FromCache/UpToDate)", produced, cached, upToDate); writer.WriteLine(); }