public void WriteToLog(ILogManager logManager) { // Enumerate over the input file counters and total up all the matched and unmatched totals. UInt32 matchedTotal = 0, unmatchedTotal = 0; PerformActionOverInputFileCounters((i) => { matchedTotal += i.Matched; unmatchedTotal += i.Unmatched; }); logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) processed.", matchedTotal + unmatchedTotal)); if (matchedTotal + unmatchedTotal == 0) { // No records processed so nothing more to report. return; } logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) matched.", matchedTotal)); logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) not matched.", unmatchedTotal)); // Enumerate over the input file counters and write out the individual totals to the log. PerformActionOverInputFileCounters((i) => { logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) processed from input file {1}.", i.Matched + i.Unmatched, i.FilePath)); logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) matched from input file {1}.", i.Matched, i.FilePath)); logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) not matched from input file {1}.", i.Unmatched, i.FilePath)); }); // Enumerate over the output file counters and write out the individual totals to the log. foreach (var outputFileCounter in this.outputFileCounters.Values) { logManager.WriteImportantMessageToJobLog(String.Format("{0} Record(s) written to output file {1}.", outputFileCounter.Total, outputFileCounter.FilePath)); } }