/// <summary> /// Selects the current cipher. /// </summary> /// <param name="cipher">The cipher to select.</param> /// <param name="cipherSettingsObservable">The cipher's settings.</param> /// <param name="settingsView">The view to select.</param> public void SelectCipher(ICipher cipher, ICipherSettingsViewModel cipherSettingsObservable, ICipherSettingsView settingsView) { if (cipher == null) { throw new ArgumentNullException(nameof(cipher)); } if (settingsView == null) { throw new ArgumentNullException(nameof(settingsView)); } _repository.SetCurrentItem(x => x == cipher); ISettingsController settingsController = new SettingsController(cipherSettingsObservable, settingsView); settingsController?.LoadView(); _view.ShowSettings(settingsView); }
/// <summary> /// Initializes a new instance of the <see cref="SettingsController"/> class. /// </summary> /// <param name="cipherSettingsObservable">The cipher's settings.</param> /// <param name="cipherSettingsView">The view that is controlled.</param> public SettingsController(ICipherSettingsViewModel cipherSettingsObservable, ICipherSettingsView cipherSettingsView) { _view = cipherSettingsView ?? throw new ArgumentNullException(nameof(cipherSettingsView)); Settings = cipherSettingsObservable ?? throw new ArgumentNullException(nameof(cipherSettingsObservable)); _view.SetController(this); }