From 474fecb878a5051e872aa46678d71ddd9b7169cf Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Mon, 5 Jan 2026 10:58:12 +0100 Subject: [PATCH] Copy Prompt --- .../AiPromptbausteinComplexTreeViewModel.cs | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs b/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs index 1a91f37d1..9f96f9d1d 100644 --- a/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs +++ b/BeWo/ViewModel/View/Administration/AiPromptbausteinComplexTreeViewModel.cs @@ -3,6 +3,7 @@ using BeWo.Services; using BeWo.ViewModel.ListViewModel; using BS.Shared; using BS.Shared.DataContracts; +using BS.Shared.DataContracts.Compact; using BS.Shared.DataContracts.Feature.AI; using BS.Shared.Extensions.CustomInterfaces; using DevExpress.Mvvm; @@ -27,6 +28,7 @@ namespace BeWo.ViewModel.View.Administration public AiPromptbausteinFolderListVM Folders { get; set; } public AiPromptbausteinPromptVM SelectedPrompt { get; set; } public AiPromptbausteinFolderVM CopiedFolder { get; set; } + public AiPromptbausteinPromptVM CopiedPrompt { get; set; } public DelegateCommand OpenAddFolderDialogCommand { get; private set; } public DelegateCommand OpenEditFolderDialogCommand { get; private set; } @@ -48,6 +50,7 @@ namespace BeWo.ViewModel.View.Administration set => SetProperty(ref _SelectedFolder, value, nameof(SelectedFolder)); } + public AiPromptbausteinComplexTreeViewModel() : this(null, AiActionType.ServiceRecordConversation) { if (BeWoApp.IsInDesignMode) @@ -56,7 +59,6 @@ namespace BeWo.ViewModel.View.Administration return; } } - public AiPromptbausteinComplexTreeViewModel(IBeWoWindowService windowService, AiActionType aiActionType) { WindowService = windowService; @@ -77,6 +79,7 @@ namespace BeWo.ViewModel.View.Administration IsEditingMode = true; } + public override bool IsDirty { get @@ -84,8 +87,10 @@ namespace BeWo.ViewModel.View.Administration return false; } } - public bool HasCopiedFolder => CopiedFolder is object; + public bool HasCopiedPrompt => CopiedPrompt is object; + public CompactEmployeeDC CurrentEmployee => BeWoApp.CompactLoggedOnEmployee; + public void UpdateFolderCommands() { @@ -94,8 +99,7 @@ namespace BeWo.ViewModel.View.Administration CopyFolderCommand.RaiseCanExecuteChanged(); PasteFolderCommand.RaiseCanExecuteChanged(); DeleteFolderCommand.RaiseCanExecuteChanged(); - } - + } public void UpdatePromptCommands() { OpenAddPromptDialogCommand.RaiseCanExecuteChanged(); @@ -109,7 +113,6 @@ namespace BeWo.ViewModel.View.Administration { } - internal void ReloadVMList() { var folders_dc = PredefinedAiPromptbausteinFolders.CreateSubTree(AiActionType); @@ -128,7 +131,7 @@ namespace BeWo.ViewModel.View.Administration var sel_folder = SelectedFolder; var new_vm = sel_folder.SubFolders.CreateNewVM(); - new_vm.Creator = BeWoApp.CompactLoggedOnEmployee; + new_vm.Creator = CurrentEmployee; new_vm.Parent = sel_folder; new_vm.CanAdd = true; new_vm.CanEdit = true; @@ -209,7 +212,7 @@ namespace BeWo.ViewModel.View.Administration var sel_folder = SelectedFolder; var new_vm = sel_folder.SubPrompts.CreateNewVM(); - new_vm.Creator = BeWoApp.CompactLoggedOnEmployee; + new_vm.Creator = CurrentEmployee; new_vm.ParentFolderOid = sel_folder.DataContract.Oid; new_vm.ShowPrompt = true; new_vm.ShowPromptByTenant = true; @@ -243,11 +246,19 @@ namespace BeWo.ViewModel.View.Administration } void CopyPrompt() { - + CopiedPrompt = SelectedPrompt; } void PastePrompt() { + var copied_dc = CopiedPrompt.CommitToDataContract(); + copied_dc.Creator = CurrentEmployee; + copied_dc.CanEdit = true; + copied_dc.IsPublic = false; + copied_dc.Oid = null; + copied_dc.Version = 0; + var copied_vm = new AiPromptbausteinPromptVM(copied_dc); + SelectedFolder.SubPrompts.VMList.Add(copied_vm); } void OpenDeletePromptDialog() { @@ -264,7 +275,7 @@ namespace BeWo.ViewModel.View.Administration } bool canOpenAddPromptDialog() { - return SelectedFolder.CanAdd; + return SelectedFolder?.CanAdd ?? false; } bool canOpenEditPromptDialog() { @@ -272,11 +283,11 @@ namespace BeWo.ViewModel.View.Administration } bool canCopyPrompt() { - return false; + return SelectedPrompt is object; } bool canPastePrompt() { - return false; + return canOpenAddPromptDialog() && HasCopiedPrompt; } bool canOpenDeletePromptDialog() {