/// <summary> /// Called when [activated]. /// </summary> /// <param name="disposables">The disposables.</param> protected override void OnActivated(CompositeDisposable disposables) { var createEnabled = this.WhenAnyValue(v => v.NewCollectionName, v => !string.IsNullOrWhiteSpace(v)); CreateCommand = ReactiveCommand.Create(() => { if (!string.IsNullOrWhiteSpace(NewCollectionName)) { var colName = NewCollectionName.Trim(); if (modCollectionService.Exists(NewCollectionName)) { if (RenamingCollection != null && RenamingCollection.Name.Equals(NewCollectionName, StringComparison.OrdinalIgnoreCase)) { return(new CommandResult <string>(colName, CommandState.NotExecuted)); } else { return(new CommandResult <string>(colName, CommandState.Exists)); } } var collection = modCollectionService.Create(); collection.Name = colName; collection.IsSelected = true; if (RenamingCollection != null) { collection.Mods = RenamingCollection.Mods; collection.PatchModEnabled = RenamingCollection.PatchModEnabled; modCollectionService.Delete(RenamingCollection.Name); modPatchCollectionService.InvalidatePatchModState(RenamingCollection.Name); } if (modCollectionService.Save(collection)) { NewCollectionName = string.Empty; return(new CommandResult <string>(collection.Name, CommandState.Success)); } } return(new CommandResult <string>(!string.IsNullOrEmpty(NewCollectionName) ? NewCollectionName.Trim() : string.Empty, CommandState.Failed)); }, createEnabled).DisposeWith(disposables); CancelCommand = ReactiveCommand.Create(() => { }).DisposeWith(disposables); hotkeyPressedHandler.Subscribe(hotkey => { switch (hotkey.Hotkey) { case Enums.HotKeys.Return: Observable.Start(() => { }).InvokeCommand(this, vm => vm.CreateCommand); break; default: break; } }).DisposeWith(disposables); base.OnActivated(disposables); }
/// <summary> /// Called when [activated]. /// </summary> /// <param name="disposables">The disposables.</param> protected override void OnActivated(CompositeDisposable disposables) { var createEnabled = this.WhenAnyValue(v => v.NewCollectionName, v => !string.IsNullOrWhiteSpace(v)); CreateCommand = ReactiveCommand.Create(() => { if (!string.IsNullOrWhiteSpace(NewCollectionName)) { var colName = NewCollectionName.Trim(); if (modCollectionService.Exists(NewCollectionName)) { if (RenamingCollection != null && RenamingCollection.Name.Equals(NewCollectionName, StringComparison.OrdinalIgnoreCase)) { return(new CommandResult <string>(colName, CommandState.NotExecuted)); } else { return(new CommandResult <string>(colName, CommandState.Exists)); } } var collection = modCollectionService.Create(); collection.Name = colName; collection.IsSelected = true; if (RenamingCollection != null) { collection.Mods = RenamingCollection.Mods; modCollectionService.Delete(RenamingCollection.Name); modPatchCollectionService.InvalidatePatchModState(RenamingCollection.Name); } if (modCollectionService.Save(collection)) { NewCollectionName = string.Empty; return(new CommandResult <string>(collection.Name, CommandState.Success)); } } return(new CommandResult <string>(!string.IsNullOrEmpty(NewCollectionName) ? NewCollectionName.Trim() : string.Empty, CommandState.Failed)); }, createEnabled).DisposeWith(disposables); CancelCommand = ReactiveCommand.Create(() => { }).DisposeWith(disposables); base.OnActivated(disposables); }