From d2f46ef5b451f8c945685b2d90b8b16bd4d14465 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Fri, 31 Jul 2026 11:34:33 +0200 Subject: [PATCH] Remove clone feature --- .../GeneratedAiEnhancedService.cs | 9 --- BeWo/Styles/Features/AIChatStyles.xaml | 28 -------- .../Detail/AI/AiConversationChatView.xaml | 64 ------------------- .../Detail/AI/AiConversationChatView.xaml.cs | 5 -- BeWo/ViewModel/AiConversationMessageVM.cs | 23 ------- .../AiConversationMessageListVM.cs | 60 ----------------- .../View/AI/AiConversationChatViewModel.cs | 50 --------------- Service/Plugins/AiService2.cs | 49 -------------- .../Enhanced/IAiEnhancedService.cs | 5 -- .../Enhanced/AiEnhancedServiceImp.cs | 5 +- 10 files changed, 1 insertion(+), 297 deletions(-) diff --git a/BeWo/ServiceProxy/GeneratedAiEnhancedService.cs b/BeWo/ServiceProxy/GeneratedAiEnhancedService.cs index 491630257..67389f6e8 100644 --- a/BeWo/ServiceProxy/GeneratedAiEnhancedService.cs +++ b/BeWo/ServiceProxy/GeneratedAiEnhancedService.cs @@ -104,10 +104,6 @@ namespace BeWo.ServiceProxy [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiRoutineType))] BS.Shared.DataContracts.Feature.AI.AiConversationDC CreateAiConversationWithMessage(BS.Shared.DataContracts.Feature.AI.AiConversationDC conversation, BS.Shared.DataContracts.Feature.AI.AiViewContextDC view_context, string message); - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/CloneAiConversation", ReplyAction="http://tempuri.org/IAiEnhancedService/CloneAiConversationResponse")] - [System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/CloneAiConversationBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")] - BS.Shared.DataContracts.Feature.AI.AiConversationDC CloneAiConversation(long conversation_oid, System.Nullable message_oid); - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/UpdateAiConversationDisplayname", ReplyAction="http://tempuri.org/IAiEnhancedService/UpdateAiConversationDisplaynameResponse")] [System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/UpdateAiConversationDisplaynameBeWoFaultFau" + "lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")] @@ -344,11 +340,6 @@ namespace BeWo.ServiceProxy return base.Channel.CreateAiConversationWithMessage(conversation, view_context, message); } - public BS.Shared.DataContracts.Feature.AI.AiConversationDC CloneAiConversation(long conversation_oid, System.Nullable message_oid) - { - return base.Channel.CloneAiConversation(conversation_oid, message_oid); - } - public long UpdateAiConversationDisplayname(long oid, long version, string displayname) { return base.Channel.UpdateAiConversationDisplayname(oid, version, displayname); diff --git a/BeWo/Styles/Features/AIChatStyles.xaml b/BeWo/Styles/Features/AIChatStyles.xaml index 82447a4d7..36e5a90d0 100644 --- a/BeWo/Styles/Features/AIChatStyles.xaml +++ b/BeWo/Styles/Features/AIChatStyles.xaml @@ -548,37 +548,9 @@ ToolTip="Kopieren"> - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/BeWo/View/Detail/AI/AiConversationChatView.xaml b/BeWo/View/Detail/AI/AiConversationChatView.xaml index 8951ed0e2..3b3461a4c 100644 --- a/BeWo/View/Detail/AI/AiConversationChatView.xaml +++ b/BeWo/View/Detail/AI/AiConversationChatView.xaml @@ -489,11 +489,6 @@ Margin="4,0,0,0" Command="{Binding RenameCommand}" Content="Umbennen" /> - - - - - BeWoWpfUtils.ScrollToBottom(listview_messages))); } - private void popup_conversation_clone_Loaded(object sender, RoutedEventArgs e) - { - Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() => BeWoWpfUtils.ScrollToBottom(listbox_messages_clone))); - } - private void Grid_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) diff --git a/BeWo/ViewModel/AiConversationMessageVM.cs b/BeWo/ViewModel/AiConversationMessageVM.cs index 54df1cbac..38b5616e9 100644 --- a/BeWo/ViewModel/AiConversationMessageVM.cs +++ b/BeWo/ViewModel/AiConversationMessageVM.cs @@ -8,7 +8,6 @@ namespace BeWo.ViewModel { public class AiConversationMessageVM : AbstractDCMapperVM { - private bool _IsChecked; private string _Message; public AiConversationMessageVM(AiConversationMessageDC dc) : base(dc, dc.Oid is null) @@ -16,22 +15,6 @@ namespace BeWo.ViewModel } - public event EventHandler IsCheckedChanged; - - public bool IsChecked - { - get { return _IsChecked; } - set - { - if (!AreDifferent(IsChecked, value)) - return; - - _IsChecked = value; - FirePropertyChanged(nameof(IsChecked)); - IsCheckedChanged?.Invoke(this, EventArgs.Empty); - } - } - public string Message { get { return _Message; } @@ -88,11 +71,5 @@ namespace BeWo.ViewModel return pDataContract; } - - public void SetIsChecked(bool value) - { - _IsChecked = value; - FirePropertyChanged(nameof(IsChecked)); - } } } diff --git a/BeWo/ViewModel/ListViewModel/AiConversationMessageListVM.cs b/BeWo/ViewModel/ListViewModel/AiConversationMessageListVM.cs index 756f63ab1..791d10cf8 100644 --- a/BeWo/ViewModel/ListViewModel/AiConversationMessageListVM.cs +++ b/BeWo/ViewModel/ListViewModel/AiConversationMessageListVM.cs @@ -20,67 +20,7 @@ namespace BeWo.ViewModel.ListViewModel { public AiConversationMessageListVM(List pDCs) : base(pDCs) { - foreach(var vm in VMList) - { - vm.IsCheckedChanged += CloneIsCheckedChanged; - } - - //VMList.ListChanged += (s, e) => - // { - // if (e.ListChangedType == ListChangedType.ItemChanged) - // { - // var changedItem = VMList[e.NewIndex]; - // Item_PropertyChanged(changedItem, new PropertyChangedEventArgs(nameof(AiConversationMessageVM.IsChecked))); - // } - // }; } public AiConversationMessageListVM() : this(null) { } - - private void CloneIsCheckedChanged(object sender, EventArgs e) - { - if(sender is AiConversationMessageVM vm) - { - int index = VMList.IndexOf(vm); - - if (vm.IsChecked) - { - for (int i = 0; i < index; i++) - { - VMList[i].SetIsChecked(true); - } - } - else - { - for (int i = index - 1; i < VMList.Count; i++) - { - VMList[i].SetIsChecked(false); - } - } - } - } - - //private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e) - //{ - // if (e.PropertyName == nameof(AiConversationMessageVM.IsChecked) - // && sender is AiConversationMessageVM vm - // && vm.Role == BS.Shared.AiConversationMessageRole.Assistent) - // { - // var changedItem = (AiConversationMessageVM)sender; - // int index = VMList.IndexOf(changedItem); - - // if (changedItem.IsChecked) - // { - // for (int i = 0; i <= index; i++) - // if (!VMList[i].IsChecked) - // VMList[i].IsChecked = true; - // } - // else - // { - // for (int i = index - 1; i < VMList.Count; i++) - // if (VMList[i].IsChecked) - // VMList[i].IsChecked = false; - // } - // } - //} } } diff --git a/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs b/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs index 6451b35de..a8a540a0d 100644 --- a/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs +++ b/BeWo/ViewModel/View/AI/AiConversationChatViewModel.cs @@ -26,7 +26,6 @@ namespace BeWo.ViewModel.View.AI public class AiConversationChatViewModel : DialogViewModel { private bool _IsSettingsOpen; - private bool _IsCloneOpen; private bool _IsSending; private string _MessageInput; @@ -50,8 +49,6 @@ namespace BeWo.ViewModel.View.AI OpenSettingCommand = new DelegateCommand(OpenSetting, () => BeWoApp.AppSettings?.ModuleAiSettingsEnabled ?? false); RenameCommand = new DelegateCommand(Rename, () => ListVM.SelectedVM is object); - OpenCloneCommand = new DelegateCommand(OpenClone, () => ListVM.SelectedVM is object && BeWoAppInfo.IsInAiDeveloperMode); - CloneCommand = new DelegateCommand(Clone); AskDeleteCommand = new DelegateCommand(AskDelete, () => ListVM.SelectedVM is object); @@ -79,8 +76,6 @@ namespace BeWo.ViewModel.View.AI public ICommand OpenSettingCommand { get; set; } public ICommand RenameCommand { get; set; } - public ICommand OpenCloneCommand { get; set; } - public ICommand CloneCommand { get; set; } public ICommand SavePromptCommand { get; set; } public ICommand AcceptSavePromptCommand { get; set; } @@ -145,15 +140,6 @@ namespace BeWo.ViewModel.View.AI FirePropertyChanged(nameof(IsSettingsOpen)); } } - public bool IsCloneOpen - { - get => _IsCloneOpen; - set - { - _IsCloneOpen = value; - FirePropertyChanged(nameof(IsCloneOpen)); - } - } public bool IsSending { get => _IsSending; @@ -401,42 +387,6 @@ namespace BeWo.ViewModel.View.AI vm.IsEditing = !vm.IsEditing; } } - private void OpenClone() - { - foreach (var message in ListVM.SelectedVM.Messages.VMList) - { - message.SetIsChecked(true); - } - - IsCloneOpen = true; - } - private void Clone() - { - var conv = ListVM.SelectedVM; - - AiConversationMessageVM last = null; - foreach (var msg in conv.Messages.VMList) - { - if (!msg.IsChecked) - break; - - last = msg; - } - - var conv_oid = conv.DataContract.Oid.Value; - var msg_oid = last?.DataContract.Oid; - - ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.CloneAiConversation(conv_oid, msg_oid), dc => - { - InsertConverstion(dc); - CloseClone(); - }); - } - private void CloseClone() - { - IsCloneOpen = false; - } - public void AskDelete() { var selected = ListVM.SelectedVM; diff --git a/Service/Plugins/AiService2.cs b/Service/Plugins/AiService2.cs index 18913fbe5..92d82b302 100644 --- a/Service/Plugins/AiService2.cs +++ b/Service/Plugins/AiService2.cs @@ -175,55 +175,6 @@ namespace BeWo.Service.Plugins // return conv_dc; //} - public virtual AiConversationDC CloneAiConversation(long conversation_oid, long? last_message_oid) - { - var parent_conv = DAOFactory.GenericDAO.GetByID(conversation_oid); - - if (parent_conv is null) - throw new InvalidOperationException("conv_oid unknown"); - - var clone_conv = new AiConversation(); - - clone_conv.Created = DateTime.Now; - clone_conv.ContextBeWoObjects = parent_conv.ContextBeWoObjects.ToList(); - clone_conv.Displayname = "Klon von " + parent_conv.Displayname; - clone_conv.Messages = new List(); - clone_conv.Modell = parent_conv.Modell; - clone_conv.ActionType = parent_conv.ActionType; - clone_conv.Updated = DateTime.Now; - clone_conv.ApplicationUserOid = parent_conv.ApplicationUserOid; - - if (last_message_oid is null) - last_message_oid = parent_conv.Messages[0].Oid; - - foreach (var msg in parent_conv.Messages) - { - var clone_msg = new AiConversationMessage(); - - clone_msg.Created = msg.Created; - clone_msg.Message = msg.Message; - clone_msg.Role = msg.Role; - clone_msg.Duration = msg.Duration; - clone_msg.ModelName = msg.ModelName; - clone_msg.ShowMessage = msg.ShowMessage; - clone_msg.UsedPromptbausteinTitle = msg.UsedPromptbausteinTitle; - clone_msg.UsedPromptbaustein = msg.UsedPromptbaustein; - clone_msg.StepCount = msg.StepCount; - - clone_conv.Messages.Add(clone_msg); - clone_msg.AiConversation = clone_conv; - - if (msg.Oid == last_message_oid) - break; - } - - DAOFactory.GenericDAO.Insert(clone_conv); - - var dc = MapperFactory.AiConversation.MapToNewDC(clone_conv); - - return dc; - } - public virtual long UpdateAiConversationDisplayname(long oid, long version, string displayname) { var conv = DAOFactory.GenericDAO.GetByID(oid); diff --git a/Service/ServiceContracts/Enhanced/IAiEnhancedService.cs b/Service/ServiceContracts/Enhanced/IAiEnhancedService.cs index 638d625f0..4d43e213d 100644 --- a/Service/ServiceContracts/Enhanced/IAiEnhancedService.cs +++ b/Service/ServiceContracts/Enhanced/IAiEnhancedService.cs @@ -46,11 +46,6 @@ namespace BeWo.Service.ServiceContracts.Enhanced [OperationContract] AiConversationDC CreateAiConversationWithMessage(AiConversationDC conversation, AiViewContextDC view_context, string message); - [FaultContract(typeof(BeWoFault))] - [OperationContract] - //[RequireWcfAuthorization(UserRightType.AiModuleServiceRecordChat)] - AiConversationDC CloneAiConversation(long conversation_oid, long? message_oid); - [FaultContract(typeof(BeWoFault))] [OperationContract] //[RequireWcfAuthorization(UserRightType.AiModuleServiceRecordChat)] diff --git a/Service/ServiceImplementations/Enhanced/AiEnhancedServiceImp.cs b/Service/ServiceImplementations/Enhanced/AiEnhancedServiceImp.cs index 3fdb3a3a2..7ba68e7ce 100644 --- a/Service/ServiceImplementations/Enhanced/AiEnhancedServiceImp.cs +++ b/Service/ServiceImplementations/Enhanced/AiEnhancedServiceImp.cs @@ -36,10 +36,7 @@ namespace BeWo.Service.ServiceImplementations.Enhanced public AiConversationDC CreateAiConversationWithMessage(AiConversationDC conversation, AiViewContextDC view_context, string message) => GetAiService().CreateAiConversationWithMessage(conversation, view_context, message); - public AiConversationDC CloneAiConversation(long conversation_oid, long? last_message_oid) - => GetAiService().CloneAiConversation(conversation_oid, last_message_oid); - - public long UpdateAiConversationDisplayname(long oid, long version, string displayname) + public long UpdateAiConversationDisplayname(long oid, long version, string displayname) => GetAiService().UpdateAiConversationDisplayname(oid, version, displayname); public void DeleteAiConversation(long conversation_oid)