private void RefreshLogFilesSourceCacheAsync(LogView oldLogView, LogView newLogView) { Task.Run(() => { var logFilesToRefresh = new List <LogFile>(); if (oldLogView != null) { foreach (var identifier in oldLogView.AllLogFilePathsAndDatabaseNames) { var logFile = LogFilesSourceCache.Lookup(identifier); if (logFile.HasValue) { logFilesToRefresh.Add(logFile.Value); } } } if (newLogView != null) { foreach (var identifier in newLogView.AllLogFilePathsAndDatabaseNames) { var logFile = LogFilesSourceCache.Lookup(identifier); if (logFile.HasValue) { logFilesToRefresh.Add(logFile.Value); } } } LogFilesSourceCache.Refresh(logFilesToRefresh); RaisePropertyChangedEvent("LogFiles"); }); }
private void RemoveLogSourceFromLogView(ILogEntriesSource logEntriesSource) { if (logEntriesSource is LogFile logFile) { _selectedLogView.LogFilePaths.Remove(logFile.NetworkFile.FullName); LogFilesSourceCache.Refresh(logFile); } else if (logEntriesSource is Database database) { _selectedLogView.DatabaseNames.Remove(database.Name); DatabasesSourceCache.Refresh(database); } Mediator.NotifyColleagues(MediatorMessages.LogSourceRemovedFromSelectedLogView, logEntriesSource); }