public async Task Load() { try { IsProcessing = true; var tools = await Task.Run(() => _compareToolSettingsPersist.Load()); _orgContainer = tools; CompareTools.Assign(tools.GetCompareTools()); SelectedComapreToolSettings = CompareTools.ElementAtOrDefault(tools.CurrentActiveIndex); } finally { IsProcessing = false; } }
public void Setup() { _compareTools = new List <CompareToolSettings> { new CompareToolSettings { Name = "Beyond Compare3", ExePath = "dummyPath" }, new CompareToolSettings { Name = "KDiff3", ExePath = "dummyPath" } }; _compareToolsContainer = new CompareToolSettingsContainer(_compareTools, -1); _compareToolSettingsPersist = Substitute.For <ICompareToolSettingsPersist>(); _compareToolSettingsPersist.Load().Returns(_compareToolsContainer); _viewModel = new CompareToolSettingsVm(_compareToolSettingsPersist); }
private void TryAddDifftool(string appName, string keyPath, string exeItemName, CompareToolSettingsContainer settingsContainer) { var appPath = FindAppPath(Registry.CurrentUser, keyPath, exeItemName); if (string.IsNullOrWhiteSpace(appPath)) { appPath = FindAppPath(Registry.LocalMachine, keyPath, exeItemName); } if (string.IsNullOrWhiteSpace(appPath)) { return; } var bcSettings = new CompareToolSettings() { ExePath = appPath, Name = appName, }; settingsContainer.CompareToolSettingses.Add(bcSettings.ToSerializable()); }
public async Task Save() { try { IsProcessing = true; CorrectsCompareToolsWithSelection(); var toRemove = CompareTools.Where(r => !IsValidSetting(r)).ToList(); foreach (var rm in toRemove) { CompareTools.Remove(rm); } // Reverse before distinct so the later one will be kept. var toKeep = CompareTools.Reverse().Distinct().ToArray(); foreach (var tool in CompareTools.ToList()) { if (!toKeep.Contains(tool)) { CompareTools.Remove(tool); } } var newIndx = -1; if (SelectedComapreToolSettings != null) { newIndx = CompareTools.IndexOf(SelectedComapreToolSettings); } var serializable = new CompareToolSettingsContainer(CompareTools, newIndx); await Task.Run(() => _compareToolSettingsPersist.Save(serializable)); } finally { IsProcessing = false; } }