/// <summary> /// Called when [activated]. /// </summary> /// <param name="disposables">The disposables.</param> protected override void OnActivated(CompositeDisposable disposables) { var saveEnabled = this.WhenAnyValue(v => v.AllowSave, v => v == true); var loadEnabled = this.WhenAnyValue(v => v.AllowLoad, v => v == true); this.WhenAnyValue(v => v.Path).Subscribe(s => { EvalConditions(); }).DisposeWith(disposables); this.WhenAnyValue(v => v.CurrentEditText).Subscribe(s => { EvalConditions(); }).DisposeWith(disposables); CloseCommand = ReactiveCommand.Create(() => { ForceClosePopup(); }).DisposeWith(disposables); CustomPatchCommand = ReactiveCommand.Create(() => { Document = new TextDocument(CurrentEditText ?? string.Empty); IsOpen = true; }).DisposeWith(disposables); SaveCommand = ReactiveCommand.CreateFromTask(async() => { var definition = InitDefinition(); if (ConflictResult.CustomConflicts.GetByFile(Path.StandardizeDirectorySeparator()).Count() > 0) { await modPatchCollectionService.ResetCustomConflictAsync(ConflictResult, definition.TypeAndId, CollectionName); } if (await modPatchCollectionService.AddCustomModPatchAsync(ConflictResult, definition, CollectionName)) { Saved = true; Saved = false; Path = string.Empty; CurrentEditText = string.Empty; Document = new TextDocument(CurrentEditText); } }, saveEnabled).DisposeWith(disposables); LoadCommand = ReactiveCommand.CreateFromTask(async() => { var definition = ConflictResult.CustomConflicts.GetByFile(Path.StandardizeDirectorySeparator()).FirstOrDefault(); if (definition != null) { var code = await modPatchCollectionService.LoadDefinitionContentsAsync(definition, CollectionName); CurrentEditText = code; Document = new TextDocument(CurrentEditText ?? string.Empty); } }, loadEnabled).DisposeWith(disposables); base.OnActivated(disposables); }
/// <summary> /// Called when [activated]. /// </summary> /// <param name="disposables">The disposables.</param> protected override void OnActivated(CompositeDisposable disposables) { var saveEnabled = this.WhenAnyValue(v => v.AllowSave, v => v == true); var loadEnabled = this.WhenAnyValue(v => v.AllowLoad, v => v == true); this.WhenAnyValue(v => v.Path).Subscribe(s => { EvalConditions(); }).DisposeWith(disposables); this.WhenAnyValue(v => v.CurrentEditText).Subscribe(s => { EvalConditions(); }).DisposeWith(disposables); CloseCommand = ReactiveCommand.Create(() => { ForceClosePopup(); }).DisposeWith(disposables); CustomPatchCommand = ReactiveCommand.Create(() => { Document = new TextDocument(CurrentEditText ?? string.Empty); IsOpen = true; }).DisposeWith(disposables); SaveCommand = ReactiveCommand.CreateFromTask(async() => { var definition = InitDefinition(); if (ConflictResult.CustomConflicts.GetByFile(Path.StandardizeDirectorySeparator()).Any()) { await modPatchCollectionService.ResetCustomConflictAsync(ConflictResult, definition.TypeAndId, CollectionName); } if (await modPatchCollectionService.AddCustomModPatchAsync(ConflictResult, definition, CollectionName)) { if (!promptShown && ConflictResult.AllConflicts.GetByFile(definition.FileCI).Any()) { promptShown = true; var title = localizationManager.GetResource(LocalizationResources.Notifications.CustomPatchRerunConflictSolver.Title); var message = localizationManager.GetResource(LocalizationResources.Notifications.CustomPatchRerunConflictSolver.Message); notificationAction.ShowNotification(title, message, NotificationType.Warning, 10); } Saved = true; Saved = false; Path = string.Empty; CurrentEditText = string.Empty; Document = new TextDocument(CurrentEditText); } }, saveEnabled).DisposeWith(disposables); LoadCommand = ReactiveCommand.CreateFromTask(async() => { var definition = ConflictResult.CustomConflicts.GetByFile(Path.StandardizeDirectorySeparator()).FirstOrDefault(); if (definition != null) { var code = await modPatchCollectionService.LoadDefinitionContentsAsync(definition, CollectionName); CurrentEditText = code; Document = new TextDocument(CurrentEditText ?? string.Empty); } }, loadEnabled).DisposeWith(disposables); base.OnActivated(disposables); }