private void RefreshLogEntriesSourceCacheAsync(LogView oldLogView, LogView newLogView) { Task.Run(() => { LogEntriesSourceCache.Refresh(LogEntriesSourceCache.Items.Where(l => (oldLogView != null && (oldLogView.LogFilePaths.Contains(l.LogEntriesSource.Identifier) || oldLogView.DatabaseNames.Contains(l.LogEntriesSource.Identifier))) || (newLogView != null && (newLogView.LogFilePaths.Contains(l.LogEntriesSource.Identifier) || newLogView.DatabaseNames.Contains(l.LogEntriesSource.Identifier))))); RaisePropertyChangedEvent("LogEntries"); }); }
private void InitializeBindings() { //TODO: Add filtering. LogEntriesSourceCache.Connect() .Filter(logEntry => IncludeLogEntry(logEntry)) .ObserveOnDispatcher() .Bind(out var logEntries) .Subscribe(); LogEntries = logEntries; }
private void LogSourceRemovedFromSelectedLogView(object obj) { Task.Run(() => { if (obj is ILogEntriesSource logEntriesSource) { var logEntriesToRefresh = new List <LogEntry>(); if (logEntriesSource != null) { logEntriesToRefresh.Add(LogEntriesSourceCache.Items.Where(logEntry => logEntry.LogEntriesSource == logEntriesSource)); } LogEntriesSourceCache.Refresh(logEntriesToRefresh); RaisePropertyChangedEvent("LogEntries"); } }); }