public ProfilesPageViewModel(ISettingsService settingsService, IDialogService dialogService, IDefaultValueProvider defaultValueProvider, IFileSystemService fileSystemService, IApplicationView applicationView) { _settingsService = settingsService; _dialogService = dialogService; _defaultValueProvider = defaultValueProvider; _fileSystemService = fileSystemService; _applicationView = applicationView; CreateShellProfileCommand = new RelayCommand(CreateShellProfile); CloneCommand = new RelayCommand <ShellProfileViewModel>(Clone); var defaultShellProfileId = _settingsService.GetDefaultShellProfileId(); foreach (var shellProfile in _settingsService.GetShellProfiles()) { var viewModel = new ShellProfileViewModel(shellProfile, settingsService, dialogService, fileSystemService, applicationView, defaultValueProvider, false); viewModel.Deleted += OnShellProfileDeleted; viewModel.SetAsDefault += OnShellProfileSetAsDefault; if (shellProfile.Id == defaultShellProfileId) { viewModel.IsDefault = true; } ShellProfiles.Add(viewModel); } SelectedShellProfile = ShellProfiles.First(p => p.IsDefault); }
public ProfilesPageViewModel(ISettingsService settingsService, IDialogService dialogService, IDefaultValueProvider defaultValueProvider) { _settingsService = settingsService; _dialogService = dialogService; _defaultValueProvider = defaultValueProvider; CreateShellProfileCommand = new RelayCommand(CreateShellProfile); var defaultShellProfileId = _settingsService.GetDefaultShellProfileId(); foreach (var shellProfile in _settingsService.GetShellProfiles()) { var viewModel = new ShellProfileViewModel(shellProfile, settingsService, dialogService); viewModel.Deleted += OnShellProfileDeleted; viewModel.SetAsDefault += OnShellProfileSetAsDefault; if (shellProfile.Id == defaultShellProfileId) { viewModel.IsDefault = true; } ShellProfiles.Add(viewModel); } SelectedShellProfile = ShellProfiles.First(p => p.IsDefault); }
private void AddShellProfile(ShellProfile shellProfile) { var viewModel = new ShellProfileViewModel(shellProfile, _settingsService, _dialogService, _fileSystemService, _applicationView, _defaultValueProvider, true); viewModel.EditCommand.Execute(null); viewModel.SetAsDefault += OnShellProfileSetAsDefault; viewModel.Deleted += OnShellProfileDeleted; ShellProfiles.Add(viewModel); SelectedShellProfile = viewModel; }
private void OnShellProfileDeleted(object sender, EventArgs e) { if (sender is ShellProfileViewModel shellProfile) { if (SelectedShellProfile == shellProfile) { SelectedShellProfile = ShellProfiles.First(); } ShellProfiles.Remove(shellProfile); if (shellProfile.IsDefault) { ShellProfiles.First().IsDefault = true; _settingsService.SaveDefaultShellProfileId(ShellProfiles.First().Id); } _settingsService.DeleteShellProfile(shellProfile.Id); } }
private void CreateShellProfile() { var shellProfile = new ShellProfile { Id = Guid.NewGuid(), PreInstalled = false, Name = "New profile" }; _settingsService.SaveShellProfile(shellProfile); var viewModel = new ShellProfileViewModel(shellProfile, _settingsService, _dialogService); viewModel.EditCommand.Execute(null); viewModel.SetAsDefault += OnShellProfileSetAsDefault; viewModel.Deleted += OnShellProfileDeleted; ShellProfiles.Add(viewModel); SelectedShellProfile = viewModel; }