From d252863fc5aa3e20434e5308fe8bab798cd7e77b Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Thu, 24 Apr 2025 14:48:47 +0200 Subject: [PATCH] ErrorCallback on ServiceFacade --- BeWo/ServiceProxy/ServiceFacade.cs | 42 ++++++++++++------- BeWo/Services/BeWoWindowService.cs | 1 - .../ListViewModel/AiConversationListVM.cs | 2 + 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/BeWo/ServiceProxy/ServiceFacade.cs b/BeWo/ServiceProxy/ServiceFacade.cs index b06a17d35..48eb2be67 100644 --- a/BeWo/ServiceProxy/ServiceFacade.cs +++ b/BeWo/ServiceProxy/ServiceFacade.cs @@ -80,10 +80,10 @@ namespace BeWo.ServiceProxy => DoSync(pAction); public static T DoAiEnhancedServiceSnyc(Func pFunc) => DoSync(pFunc); - public static void DoAiEnhancedServiceAsnyc(Action pAction, Action pCallback = null, bool showWaitDialog = true, UserControl caller = null) - => DoAsync(pAction, pCallback, showWaitDialog, caller?.Dispatcher); - public static void DoAiEnhancedServiceAsnyc(Func pFunc, Action pCallback = null, bool showWaitDialog = true, UserControl caller = null) - => DoAsync(pFunc, pCallback, showWaitDialog, caller?.Dispatcher); + public static void DoAiEnhancedServiceAsnyc(Action pAction, Action pCallback = null, Action pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null) + => DoAsync(pAction, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher); + public static void DoAiEnhancedServiceAsnyc(Func pFunc, Action pCallback = null, Action pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null) + => DoAsync(pFunc, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher); #endregion #region OperationsEnhancedService @@ -91,10 +91,10 @@ namespace BeWo.ServiceProxy => DoSync(pAction); public static T DoOperationsEnhancedServiceSnyc(Func pFunc) => DoSync(pFunc); - public static void DoOperationsEnhancedServiceAsnyc(Action pAction, Action pCallback = null, bool showWaitDialog = true, UserControl caller = null) - => DoAsync(pAction, pCallback, showWaitDialog, caller?.Dispatcher); - public static void DoOperationsEnhancedServiceAsnyc(Func pFunc, Action pCallback = null, bool showWaitDialog = true, UserControl caller = null) - => DoAsync(pFunc, pCallback, showWaitDialog, caller?.Dispatcher); + public static void DoOperationsEnhancedServiceAsnyc(Action pAction, Action pCallback = null, Action pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null) + => DoAsync(pAction, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher); + public static void DoOperationsEnhancedServiceAsnyc(Func pFunc, Action pCallback = null, Action pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null) + => DoAsync(pFunc, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher); #endregion @@ -311,7 +311,7 @@ namespace BeWo.ServiceProxy } public static void DoGkvAccountingServiceAsyncGUI(Func pFunc, Action pCallBack, Dispatcher dispatcher) { - DoAsync(pFunc, pCallBack, true, dispatcher); + DoAsync(pFunc, pCallBack, null, true, dispatcher); } public static void DoGkvAccountingServiceAsync(Action pAction) @@ -694,12 +694,12 @@ namespace BeWo.ServiceProxy DoAsync(pFunc, pCallback, null, showWaitDialog); } - private static void DoAsync(Func pFunc, Action pCallback, bool showWaitDialog, Dispatcher dispatcher) + private static void DoAsync(Func pFunc, Action pCallback, Action pErrorCallback, bool showWaitDialog, Dispatcher dispatcher) where TClient : ClientBase, TInterface, new() where TInterface : class { - - if(dispatcher is null) + + if (dispatcher is null) { dispatcher = BeWoApp.Current.Dispatcher; } @@ -711,7 +711,7 @@ namespace BeWo.ServiceProxy pCallback(t); }); - DoAsync(pFunc, action, showWaitDialog); + DoAsync(pFunc, action, pErrorCallback, showWaitDialog); } private static void DoAsync(Func pFunc, Action pCallback, Action pErrorCallback, bool showWaitDialog) @@ -785,7 +785,7 @@ namespace BeWo.ServiceProxy DoAsync(pAction, null, showWaitDialog); } - private static void DoAsync(Action pAction, Action pCallback, bool showWaitDialog, Dispatcher dispatcher) + private static void DoAsync(Action pAction, Action pCallback, Action pErrorCallback, bool showWaitDialog, Dispatcher dispatcher) where TClient : ClientBase, TInterface, new() where TInterface : class { @@ -801,7 +801,7 @@ namespace BeWo.ServiceProxy }); } - DoAsync(pAction, action, showWaitDialog); + DoAsync(pAction, action, pErrorCallback, showWaitDialog); } // private static void DoAsync(Action pAction, Action pCallback, bool ) @@ -809,6 +809,13 @@ namespace BeWo.ServiceProxy private static void DoAsync(Action pAction, Action pCallback, bool showWaitDialog) where TClient : ClientBase, TInterface, new() where TInterface : class + { + DoAsync(pAction, pCallback, null, showWaitDialog); + } + + private static void DoAsync(Action pAction, Action pCallback, Action pErrorCallback, bool showWaitDialog) + where TClient : ClientBase, TInterface, new() + where TInterface : class { try { @@ -846,6 +853,11 @@ namespace BeWo.ServiceProxy } ShowErrorMessage(e); + + if (pErrorCallback != null) + { + pErrorCallback(); + } } }, null); diff --git a/BeWo/Services/BeWoWindowService.cs b/BeWo/Services/BeWoWindowService.cs index 287bb5a11..54819bf90 100644 --- a/BeWo/Services/BeWoWindowService.cs +++ b/BeWo/Services/BeWoWindowService.cs @@ -32,7 +32,6 @@ namespace BeWo.Services ShowWindowDialog( cf => cf.GetAiConversationControl(uIContext, bewoObjects), (wf, ctrl) => wf.GetAiConversationWindow(uIContext, ctrl)); - } public void ShowAiConversationModalViewWindow(UIContext uIContext, Dictionary bewoObjects) { diff --git a/BeWo/ViewModel/ListViewModel/AiConversationListVM.cs b/BeWo/ViewModel/ListViewModel/AiConversationListVM.cs index e146d6897..af42cdac7 100644 --- a/BeWo/ViewModel/ListViewModel/AiConversationListVM.cs +++ b/BeWo/ViewModel/ListViewModel/AiConversationListVM.cs @@ -172,6 +172,8 @@ namespace BeWo.ViewModel.ListViewModel msg_vm.DataContract = messages[0]; conv.Messages.VMList.Add(new AiConversationMessageVM(messages[1])); + + }); } public void Test()