private void FileExplorerCommandOnProcessingEntryUpdateReceived(object sender, ProcessingEntryUpdate processingEntryUpdate) { if (processingEntryUpdate.Progress != 1 && processingEntryUpdate.Progress != -1) { return; } if ( _cachedEntries.TryGetValue(Path.GetDirectoryName(processingEntryUpdate.Path).NormalizePath(), out var cachedEntry) && !cachedEntry.DirectoriesOnly) { lock (cachedEntry) { var entry = cachedEntry.Entries.FirstOrDefault(x => x.Path == processingEntryUpdate.Path) as ProcessingEntry; if (entry != null) { cachedEntry.Entries.Remove(entry); if (processingEntryUpdate.Progress == 1) { cachedEntry.Entries.Add(entry.ToFileExplorerEntry()); } } } } }
public void Update(ProcessingEntryUpdate processingEntryUpdate) { Size = processingEntryUpdate.Size; Progress = processingEntryUpdate.Progress; ((ProcessingEntry)Value).Size = processingEntryUpdate.Size; }