public ConfigurationApplicator( IConfigurationProvider configurationProvider, IApplicationPathsProvider pathsProvider, INotifyIconManager notifyIconManager, ISyncthingManager syncthingManager, IAutostartProvider autostartProvider, IWatchedFolderMonitor watchedFolderMonitor, IUpdateManager updateManager, IConflictFileWatcher conflictFileWatcher, IAlertsManager alertsManager, IMeteredNetworkManager meteredNetworkManager, IPathTransformer pathTransformer) { this.configurationProvider = configurationProvider; this.configurationProvider.ConfigurationChanged += this.ConfigurationChanged; this.pathsProvider = pathsProvider; this.notifyIconManager = notifyIconManager; this.syncthingManager = syncthingManager; this.autostartProvider = autostartProvider; this.watchedFolderMonitor = watchedFolderMonitor; this.updateManager = updateManager; this.conflictFileWatcher = conflictFileWatcher; this.alertsManager = alertsManager; this.meteredNetworkManager = meteredNetworkManager; this.pathTransformer = pathTransformer; this.syncthingManager.Folders.FoldersChanged += this.FoldersChanged; this.updateManager.VersionIgnored += this.VersionIgnored; }
public ConflictResolutionViewModel( ISyncthingManager syncthingManager, IConflictFileManager conflictFileManager, IProcessStartProvider processStartProvider, IConflictFileWatcher conflictFileWatcher, IWindowManager windowManager, IConfigurationProvider configurationProvider) { this.syncthingManager = syncthingManager; this.conflictFileManager = conflictFileManager; this.processStartProvider = processStartProvider; this.conflictFileWatcher = conflictFileWatcher; this.configurationProvider = configurationProvider; this.windowManager = windowManager; this.DeleteToRecycleBin = this.configurationProvider.Load().ConflictResolverDeletesToRecycleBin; this.Bind(s => s.DeleteToRecycleBin, (o, e) => this.configurationProvider.AtomicLoadAndSave(c => c.ConflictResolverDeletesToRecycleBin = e.NewValue)); this.Conflicts.CollectionChanged += (o, e) => { if ((e.Action == NotifyCollectionChangedAction.Add && (e.OldItems?.Count ?? 0) == 0) || (e.Action == NotifyCollectionChangedAction.Remove && (e.NewItems?.Count ?? 0) == 0) || (e.Action == NotifyCollectionChangedAction.Reset)) { this.NotifyOfPropertyChange(nameof(this.Conflicts)); this.NotifyOfPropertyChange(nameof(this.IsLoadingAndNoConflictsFound)); this.NotifyOfPropertyChange(nameof(this.HasFinishedLoadingAndNoConflictsFound)); if (this.SelectedConflict == null && this.Conflicts.Count > 0) this.SelectedConflict = this.Conflicts[0]; } }; }
public ConflictResolutionViewModel( ISyncthingManager syncthingManager, IConflictFileManager conflictFileManager, IProcessStartProvider processStartProvider, IConflictFileWatcher conflictFileWatcher, IWindowManager windowManager, IConfigurationProvider configurationProvider) { this.syncthingManager = syncthingManager; this.conflictFileManager = conflictFileManager; this.processStartProvider = processStartProvider; this.conflictFileWatcher = conflictFileWatcher; this.configurationProvider = configurationProvider; this.windowManager = windowManager; this.DeleteToRecycleBin = this.configurationProvider.Load().ConflictResolverDeletesToRecycleBin; this.Bind(s => s.DeleteToRecycleBin, (o, e) => this.configurationProvider.AtomicLoadAndSave(c => c.ConflictResolverDeletesToRecycleBin = e.NewValue)); this.Conflicts.CollectionChanged += (o, e) => { if ((e.Action == NotifyCollectionChangedAction.Add && (e.OldItems?.Count ?? 0) == 0) || (e.Action == NotifyCollectionChangedAction.Remove && (e.NewItems?.Count ?? 0) == 0) || (e.Action == NotifyCollectionChangedAction.Reset)) { this.NotifyOfPropertyChange(nameof(this.Conflicts)); this.NotifyOfPropertyChange(nameof(this.IsLoadingAndNoConflictsFound)); this.NotifyOfPropertyChange(nameof(this.HasFinishedLoadingAndNoConflictsFound)); if (this.SelectedConflict == null && this.Conflicts.Count > 0) { this.SelectedConflict = this.Conflicts[0]; } } }; }
public ConfigurationApplicator( IConfigurationProvider configurationProvider, IApplicationPathsProvider pathsProvider, INotifyIconManager notifyIconManager, ISyncthingManager syncthingManager, IAutostartProvider autostartProvider, IWatchedFolderMonitor watchedFolderMonitor, IUpdateManager updateManager, IConflictFileWatcher conflictFileWatcher, IAlertsManager alertsManager, IMeteredNetworkManager meteredNetworkManager) { this.configurationProvider = configurationProvider; this.configurationProvider.ConfigurationChanged += this.ConfigurationChanged; this.pathsProvider = pathsProvider; this.notifyIconManager = notifyIconManager; this.syncthingManager = syncthingManager; this.autostartProvider = autostartProvider; this.watchedFolderMonitor = watchedFolderMonitor; this.updateManager = updateManager; this.conflictFileWatcher = conflictFileWatcher; this.alertsManager = alertsManager; this.meteredNetworkManager = meteredNetworkManager; this.syncthingManager.DataLoaded += this.OnDataLoaded; this.updateManager.VersionIgnored += this.VersionIgnored; }
public AlertsManager(ISyncthingManager syncthingManager, IConflictFileWatcher conflictFileWatcher, IMeteredNetworkManager meteredNetworkManager) { this.syncthingManager = syncthingManager; this.conflictFileWatcher = conflictFileWatcher; this.meteredNetworkManager = meteredNetworkManager; this.eventDispatcher = new SynchronizedEventDispatcher(this); this.syncthingManager.Folders.FolderErrorsChanged += this.FolderErrorsChanged; this.conflictFileWatcher.ConflictedFilesChanged += this.ConflictFilesChanged; this.meteredNetworkManager.PausedDevicesChanged += this.PausedDevicesChanged; }