private void FillFailure(pt.sapo.gis.trace.Entry entry, List<Failure> failures, EntryFilterHandler filter) { // only add entry if there is no filter or it pass the filter test if (filter(entry)) { Failure failure = new Failure { FailureID = GetFailureCodeFromEntry(entry), SourceID = entry.Properties.ContainsKey(FAILURE_SOURCE_ID_PROPERTY) ? entry.Properties[FAILURE_SOURCE_ID_PROPERTY] as String : (TraceManager.Trace.Properties.ContainsKey(REPORT_SOURCE_ID_PROPERTY) ? TraceManager.Trace.Properties[REPORT_SOURCE_ID_PROPERTY] as String : Properties.DefaultSourceId), //Details = entry.Properties.Where(e => e.Key != FAILURE_SOURCE_ID_PROPERTY).ToDictionary(x => x.Key, x => x.Value) //correction for exceptionEntries }; FillFailureDetails(entry.Properties.Where(e => e.Key != FAILURE_SOURCE_ID_PROPERTY).ToDictionary(x => x.Key, x => x.Value), failure); failures.Add(failure); } }
private void FillFailures(trace.Entry entry, List<Failure> failures, EntryFilterHandler filter) { FillFailure(entry, failures, filter); // fill child entries foreach (trace.Entry innerEntry in entry.Entries) FillFailures(innerEntry, failures, filter); }