Add event-driven quick action dispatch

This commit is contained in:
Drechsler, Meik
2026-07-22 11:57:32 +02:00
parent fb45f1c42b
commit 9bd3896ba0
20 changed files with 591 additions and 139 deletions

View File

@@ -4,10 +4,14 @@ using C4IT.FASD.Security;
using C4IT.Graphics;
using C4IT.Logging;
using C4IT.MultiLanguage;
using C4IT.XML;
using F4SD.ActionConnector.Bus;
using F4SD.ActionConnector.Models;
using FasdDesktopUi.Basics;
using FasdDesktopUi.Basics.Helper;
using FasdDesktopUi.Basics.Models;
using FasdDesktopUi.Basics.Services.Models;
using FasdDesktopUi.Basics.UiActions.NativeActions;
using FasdDesktopUi.Pages.CustomMessageBox;
using FasdDesktopUi.Pages.PhoneSettingsPage;
using FasdDesktopUi.Pages.SearchPage;
@@ -45,6 +49,8 @@ namespace FasdDesktopUi
private TileScope? _pendingTicketOverviewScope;
#endregion
private ActionBus _actionBus;
private async void Application_Startup(object sender, StartupEventArgs e)
{
@@ -62,7 +68,7 @@ namespace FasdDesktopUi
Thread.Sleep(100);
}
Console.WriteLine("Debugger attached");
*/
*/
Assembly assembly = Assembly.GetExecutingAssembly();
var ProductName = FileVersionInfo.GetVersionInfo(assembly.Location).ProductName;
var attribute = (GuidAttribute)assembly.GetCustomAttributes(typeof(GuidAttribute), true)[0];
@@ -127,7 +133,24 @@ namespace FasdDesktopUi
InitializeNotifyIcon();
//CustomMessageBox.ShowCustomContent("Close case", enumHealthCardStateLevel.None, null, true, new CloseCaseDialogWithTicket());
try
{
//_actionBus = new ActionBus(new ActionBusOptions()
//{
// ConfigRootElement = cXmlParser.OpenXmlDocument(new List<cXmlFileLocation>() { new cXmlFileLocation()
// {
// LocationType = cXmlFileLocation.enumXmlLocationType.StringContent,
// StringContent = string.Empty
// } }, out cXmlParser parser, ExternalCommunicationConfiguration.ConfigRootElement),
// Parser = parser,
// QuickActionExecutor = QuickActionExecutor.RunAction
//});
//_actionBus.Start();
}
catch (Exception ex)
{
LogException(ex);
}
await cAppStartUp.StartAsync(e.Args);
notifyIcon.Visible = true;
@@ -491,19 +514,19 @@ namespace FasdDesktopUi
}
}
#endregion
#endregion
private async void Application_Exit(object sender, ExitEventArgs e)
{
cF4sdUserInfo userInfo = null;
ConfiguredTaskAwaitable? closeUserSessionTask = null;
lock (cFasdCockpitCommunicationBase.CockpitUserInfoLock)
{
userInfo = cFasdCockpitCommunicationBase.CockpitUserInfo;
}
if (userInfo?.Id.Equals(Guid.Empty) is false)
lock (cFasdCockpitCommunicationBase.CockpitUserInfoLock)
{
closeUserSessionTask = cFasdCockpitCommunicationBase.Instance?.CloseUserSession(cFasdCockpitConfig.SessionId).ConfigureAwait(false);
userInfo = cFasdCockpitCommunicationBase.CockpitUserInfo;
}
if (userInfo?.Id.Equals(Guid.Empty) is false)
{
closeUserSessionTask = cFasdCockpitCommunicationBase.Instance?.CloseUserSession(cFasdCockpitConfig.SessionId).ConfigureAwait(false);
}
if (cFasdCockpitCommunicationBase.Instance != null)
@@ -545,6 +568,8 @@ namespace FasdDesktopUi
}
catch { }
_actionBus?.Stop();
if (closeUserSessionTask is ConfiguredTaskAwaitable _t)
await _t;
}