/// <summary> /// Add new duplication entry (Tuple of log entry (original) and collection of log entries (duplications)) /// </summary> /// <param name="entry"></param> /// <param name="timeOfOriginal"></param> private void AddNewDuplicationEntry(Log9KEntry entry, Log9KTime timeOfOriginal) { if (!CheckForDuplicationMethods()) { return; } int duplicationKey = KeyForDuplicationDictionary(entry); Log9KUtil.InvokeInUiThread(() => { if (DuplicationsDictionary.ContainsKey(duplicationKey)) { return; } ObservableCollection <DuplicationLeaf> times = new ObservableCollection <DuplicationLeaf>(); if (timeOfOriginal == null) { times = new ObservableCollection <Tuple <Log9KTime, uint> > { new DuplicationLeaf(entry.Time, entry.ID) }; } DuplicationNode de = new DuplicationNode( entry, times ); DuplicationsDictionary.Add(duplicationKey, de); }); }
/// <summary> /// Find duplication entry for given entry /// </summary> /// <param name="entry"></param> /// <returns></returns> protected DuplicationNode LookupForDuplication(Log9KEntry entry) { int duplicationKey = KeyForDuplicationDictionary(entry); if (!DuplicationsDictionary.ContainsKey(duplicationKey)) { return(null); } return(DuplicationsDictionary[duplicationKey]); }