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 void ChooseOriginal(ConflictViewModel conflict) { if (!this.ResolveConflict(this.SelectedConflict.ConflictSet, conflict.ConflictSet.File.FilePath)) { return; } // The conflict will no longer exist, so remove it this.Conflicts.Remove(conflict); }
public void ChooseConflictFile(ConflictViewModel conflict, ConflictOptionViewModel conflictOption) { if (!this.ResolveConflict(conflict.ConflictSet, conflictOption.ConflictOption.FilePath)) { return; } // The conflict will no longer exist, so remove it this.Conflicts.Remove(conflict); }
public void ChooseOriginal(ConflictViewModel conflict) { if (!this.ResolveConflict(this.SelectedConflict.ConflictSet, conflict.ConflictSet.File.FilePath)) return; // The conflict will no longer exist, so remove it this.Conflicts.Remove(conflict); }
public void ShowFileInFolder(ConflictViewModel conflict) { this.processStartProvider.ShowFileInExplorer(conflict.FilePath); }