using BeWo.ServiceProxy; using BeWo.Services; using BeWo.ViewModel.ListViewModel; using BS.Shared; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Feature.AI; using BS.Shared.Extensions.CustomInterfaces; using DevExpress.Xpf.Layout.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using DelegateCommand = DevExpress.Mvvm.DelegateCommand; namespace BeWo.ViewModel.View.Administration { public class AiPromptbausteinComplexTreeViewModel : WindowViewModel { private AiPromptbausteinFolderVM _SelectedFolder; private IBeWoWindowService WindowService { get; set; } private AiActionType AiActionType { get; set; } public AiPromptbausteinFolderListVM Folders { get; set; } public AiPromptbausteinPromptVM SelectedPrompt { get; set; } public AiPromptbausteinFolderVM CopiedFolder { get; set; } public ICommand OpenAddFolderDialogCommand { get; private set; } public ICommand OpenEditFolderDialogCommand { get; private set; } public ICommand CopyFolderCommand { get; private set; } public ICommand PasteFolderCommand { get; private set; } public ICommand DeleteFolderCommand { get; private set; } public ICommand OpenAddPromptDialogCommand { get; private set; } public ICommand OpenEditPromptDialogCommand { get; private set; } public ICommand CopyPromptCommand { get; private set; } public ICommand PastePromptCommand { get; private set; } public ICommand DeletePromptCommand { get; private set; } public AiPromptbausteinFolderVM SelectedFolder { get => _SelectedFolder; set => SetProperty(ref _SelectedFolder, value, nameof(SelectedFolder)); } public AiPromptbausteinComplexTreeViewModel() { if (BeWoApp.IsInDesignMode) { AiActionType = AiActionType.ServiceRecordConversation; ReloadVMList(); return; } OpenAddFolderDialogCommand = new DelegateCommand(OpenAddFolderDialog, CanOpenAddFolderDialog, false); OpenEditFolderDialogCommand = new DelegateCommand(OpenEditFolderDialog, CanOpenEditFolderDialog, false); CopyFolderCommand = new DelegateCommand(CopyFolder, CanCopyFolder, false); PasteFolderCommand = new DelegateCommand(PasteFolder, CanPasteFolder, false); DeleteFolderCommand = new DelegateCommand(DeleteFolder, CanDeleteFolder, false); } public AiPromptbausteinComplexTreeViewModel(IBeWoWindowService windowService, AiActionType aiActionType) : this() { WindowService = windowService; AiActionType = aiActionType; } public override bool IsDirty { get { return false; } } public void SaveVMList() { } internal void ReloadVMList() { var folders_dc = PredefinedAiPromptbausteinFolders.CreateSubTree(AiActionType); Folders = new AiPromptbausteinFolderListVM(folders_dc); FirePropertyChanged(nameof(Folders)); } public void UpdateVMList(AiPromptbausteinTreeListVM new_list) { } void OpenAddFolderDialog() { var vm = new AiPromptbausteinFolderViewModel(); WindowService.Show(vm); } void OpenEditFolderDialog() { } void CopyFolder() { } void PasteFolder() { } void DeleteFolder() { } bool CanOpenAddFolderDialog() { return false; } bool CanOpenEditFolderDialog() { return false; } bool CanCopyFolder() { return false; } bool CanPasteFolder() { return false; } bool CanDeleteFolder() { return false; } } }