/// <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);
        }
Esempio n. 2
0
        /// <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);
        }