From b95b6a77019c559e7a19600849138a94e60f5e89 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Wed, 11 Mar 2026 15:09:57 +0100 Subject: [PATCH] Geteilter Aufruf -> Nur ein Server Request --- .../Controls/AI/AiConversationButton.xaml.cs | 36 ++++++++++--------- ...PromptbausteinComplexSelectionView.xaml.cs | 1 - BeWo/ViewModel/VMFactory.cs | 14 ++++---- ...PromptbausteinComplexSelectionViewModel.cs | 11 ------ 4 files changed, 27 insertions(+), 35 deletions(-) diff --git a/BeWo/View/Controls/AI/AiConversationButton.xaml.cs b/BeWo/View/Controls/AI/AiConversationButton.xaml.cs index bda87c2a8..4e6961f56 100644 --- a/BeWo/View/Controls/AI/AiConversationButton.xaml.cs +++ b/BeWo/View/Controls/AI/AiConversationButton.xaml.cs @@ -166,25 +166,27 @@ namespace BeWo.View.Controls.AI } private void InitPromptbausteine(AiActionType actionType, List folders) { - var viewmodel = new AiPromptbausteinSelectionComplexViewModel(actionType); - viewmodel.PromptAccepted += PromptAccepted; - viewmodel.InitVMList(); - var view = new AiPromptbausteinComplexSelectionView(viewmodel); - view.Padding = new Thickness(3); - view.Background = FindResource("ObjectEditBackgroundBrush") as System.Windows.Media.Brush; - border_promptbaustein_al.Child = view; + VMFactory.CreateAiPromptbausteinFolderListVM(folders, (listvm) => + { + var viewmodel = new AiPromptbausteinSelectionComplexViewModel(actionType, listvm); + viewmodel.PromptAccepted += PromptAccepted; + var view = new AiPromptbausteinComplexSelectionView(viewmodel); + view.Padding = new Thickness(3); + view.Background = FindResource("ObjectEditBackgroundBrush") as System.Windows.Media.Brush; + border_promptbaustein_al.Child = view; - var viewmodel2 = new AiPromptbausteinSelectionComplexViewModel(actionType, viewmodel.Folders); - viewmodel2.PromptAccepted += PromptAccepted; - viewmodel2.InitVMList(); - var view2 = new AiPromptbausteinComplexSelectionView(viewmodel2); - view2.ReduceSelection(); - view2.Padding = new Thickness(3); - view2.Background = FindResource("ObjectEditBackgroundBrush") as System.Windows.Media.Brush; - border_promptbaustein_favoriten.Child = view2; + var viewmodel2 = new AiPromptbausteinSelectionComplexViewModel(actionType, listvm); + viewmodel2.PromptAccepted += PromptAccepted; + var view2 = new AiPromptbausteinComplexSelectionView(viewmodel2); + view2.ReduceSelection(); + viewmodel2.SelectedFolder = viewmodel2.Folders.VMList[0]; + view2.Padding = new Thickness(3); + view2.Background = FindResource("ObjectEditBackgroundBrush") as System.Windows.Media.Brush; + border_promptbaustein_favoriten.Child = view2; - AiPromptOpenAllCommand = new DelegateCommand(AiPromptOpenAll); - AiPromptOpenFavoriteCommand = new DelegateCommand(AiPromptOpenFavorite); + AiPromptOpenAllCommand = new DelegateCommand(AiPromptOpenAll); + AiPromptOpenFavoriteCommand = new DelegateCommand(AiPromptOpenFavorite); + }); } } } diff --git a/BeWo/View/Detail/AI/AiPromptbausteinComplexSelectionView.xaml.cs b/BeWo/View/Detail/AI/AiPromptbausteinComplexSelectionView.xaml.cs index eaf4213d2..316a14706 100644 --- a/BeWo/View/Detail/AI/AiPromptbausteinComplexSelectionView.xaml.cs +++ b/BeWo/View/Detail/AI/AiPromptbausteinComplexSelectionView.xaml.cs @@ -41,7 +41,6 @@ namespace BeWo.View.Detail.AI groupbox2.Header = "Favoriten"; Grid.SetColumn(groupbox2, 0); Grid.SetColumnSpan(groupbox2, 3); - ViewModel.SelectedFolderId = 0; } private void treeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) diff --git a/BeWo/ViewModel/VMFactory.cs b/BeWo/ViewModel/VMFactory.cs index 05fcc7955..7f40f470d 100644 --- a/BeWo/ViewModel/VMFactory.cs +++ b/BeWo/ViewModel/VMFactory.cs @@ -949,14 +949,16 @@ namespace BeWo.ViewModel { ServiceFacade.DoAiEnhancedServiceAsnyc( req => req.GetAiPromptbausteinFolder(aiActionType), - res => - { - var listvm = new AiPromptbausteinFolderListVM(res); + res => CreateAiPromptbausteinFolderListVM(res, get_viewmodel)); + } - reloadFavoriten(listvm); + internal static void CreateAiPromptbausteinFolderListVM(List res, Action get_viewmodel) + { + var listvm = new AiPromptbausteinFolderListVM(res); - get_viewmodel(listvm); - }); + reloadFavoriten(listvm); + + get_viewmodel(listvm); } static void reloadFavoriten(AiPromptbausteinFolderListVM folders) diff --git a/BeWo/ViewModel/View/AI/AiPromptbausteinComplexSelectionViewModel.cs b/BeWo/ViewModel/View/AI/AiPromptbausteinComplexSelectionViewModel.cs index b4447b0ff..7f30a0cd7 100644 --- a/BeWo/ViewModel/View/AI/AiPromptbausteinComplexSelectionViewModel.cs +++ b/BeWo/ViewModel/View/AI/AiPromptbausteinComplexSelectionViewModel.cs @@ -50,17 +50,11 @@ namespace BeWo.ViewModel.View.AI { _SelectedFolder = value; FirePropertyChanged(nameof(SelectedFolder)); - - if (value is null) - SelectedFolderId = null; - else - SelectedFolderId = Folders.VMList.IndexOf(value); } } public AiPromptbausteinPromptVM SelectedPrompt { get; set; } public AiPromptbausteinFolderListVM Folders { get; private set; } public AiActionType LoadedActionType { get; set; } - public int? SelectedFolderId { get; set; } public void Send() { @@ -89,11 +83,6 @@ namespace BeWo.ViewModel.View.AI { Folders = new_list; FirePropertyChanged(nameof(Folders)); - - if(SelectedFolderId is int folder_id) - { - SelectedFolder = Folders.VMList[folder_id]; - } } } }