From f7a96b378415892c5b0f6a599b830d3c4ea698b3 Mon Sep 17 00:00:00 2001 From: Dan Clark Date: Mon, 25 Nov 2024 10:39:14 +0000 Subject: [PATCH] Fixes --- Toolkit.Avalonia/ContentDialogHandler.cs | 3 -- .../AsyncHandlerInitialization.cs | 47 ++++++++----------- .../AsyncHandlerKeyedInitialization.cs | 47 ++++++++----------- .../ConfigurationInitializer.cs | 2 +- Toolkit.UI.Avalonia/EventListenerBehaviour.cs | 6 --- 5 files changed, 41 insertions(+), 64 deletions(-) diff --git a/Toolkit.Avalonia/ContentDialogHandler.cs b/Toolkit.Avalonia/ContentDialogHandler.cs index 7a8cbfc..f73af47 100644 --- a/Toolkit.Avalonia/ContentDialogHandler.cs +++ b/Toolkit.Avalonia/ContentDialogHandler.cs @@ -62,15 +62,12 @@ public class ContentDialogHandler : dialog.Closing -= HandleClosing; if (dialog.DataContext is object content) { - bool cancelled = false; if (content is IAsyncConfirmation confirmation) { Deferral deferral = args.GetDeferral(); if (!await confirmation.Confirm()) { args.Cancel = true; - cancelled = true; - dialog.Closing += HandleClosing; } diff --git a/Toolkit.Foundation/AsyncHandlerInitialization.cs b/Toolkit.Foundation/AsyncHandlerInitialization.cs index 4daaf1a..98c03a6 100644 --- a/Toolkit.Foundation/AsyncHandlerInitialization.cs +++ b/Toolkit.Foundation/AsyncHandlerInitialization.cs @@ -12,28 +12,24 @@ public class AsyncHandlerInitialization(IServiceP if (!StrongReferenceMessenger.Default.IsRegistered>(provider)) { StrongReferenceMessenger.Default.Register>(provider, - async (provider, args) => + (provider, args) => { IEnumerable> handlers = provider.GetServices>(); IEnumerable> behaviors = provider.GetServices>(); - AsyncHandlerDelegate handlerDelegate = async () => + foreach (IAsyncHandler handler in handlers) { - TResponse response = default!; - foreach (IAsyncHandler handler in handlers) + AsyncHandlerDelegate handlerDelegate = () => + handler.Handle(args.Message, args.CancellationToken); + + foreach (IAsyncPipelineBehavior? behavior in behaviors.Reverse()) { - response = await handler.Handle(args.Message, args.CancellationToken); + AsyncHandlerDelegate next = handlerDelegate; + handlerDelegate = () => behavior.Handle(args.Message, next); } - return response; - }; - foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) - { - AsyncHandlerDelegate next = handlerDelegate; - handlerDelegate = () => behavior.Handle(args.Message, next); + args.Reply(handlerDelegate()); } - - args.Reply(await handlerDelegate()); }); } } @@ -48,29 +44,26 @@ public class AsyncHandlerInitialization(IServiceProvider pro if (!StrongReferenceMessenger.Default.IsRegistered>(provider)) { StrongReferenceMessenger.Default.Register>(provider, - async (provider, args) => + (provider, args) => { IEnumerable> handlers = provider.GetServices>(); IEnumerable> behaviors = provider.GetServices>(); - AsyncHandlerDelegate handlerDelegate = async () => + foreach (IAsyncHandler handler in handlers) { - foreach (IAsyncHandler handler in handlers) + AsyncHandlerDelegate handlerDelegate = () => + handler.Handle(args.Message, args.CancellationToken).ContinueWith(_ => Unit.Value); + + foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) { - await handler.Handle(args.Message, args.CancellationToken); + AsyncHandlerDelegate next = handlerDelegate; + handlerDelegate = () => behavior.Handle(args.Message, next); } - return Unit.Value; - }; - foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) - { - AsyncHandlerDelegate next = handlerDelegate; - handlerDelegate = () => behavior.Handle(args.Message, next); + handlerDelegate(); + args.Reply(Unit.Value); } - - await handlerDelegate(); - args.Reply(Unit.Value); }); } } -} +} \ No newline at end of file diff --git a/Toolkit.Foundation/AsyncHandlerKeyedInitialization.cs b/Toolkit.Foundation/AsyncHandlerKeyedInitialization.cs index 7b7b0c1..86ea47f 100644 --- a/Toolkit.Foundation/AsyncHandlerKeyedInitialization.cs +++ b/Toolkit.Foundation/AsyncHandlerKeyedInitialization.cs @@ -12,28 +12,25 @@ public class AsyncHandlerKeyedInitialization(string key, ISe if (!StrongReferenceMessenger.Default.IsRegistered, string>(provider, key)) { StrongReferenceMessenger.Default.Register, string>(provider, key, - async (provider, args) => + (provider, args) => { IEnumerable> handlers = provider.GetKeyedServices>(key); IEnumerable> behaviors = provider.GetServices>(); - AsyncHandlerDelegate handlerDelegate = async () => + foreach (IAsyncHandler handler in handlers) { - foreach (IAsyncHandler handler in handlers) + AsyncHandlerDelegate handlerDelegate = () => + handler.Handle(args.Message, args.CancellationToken).ContinueWith(_ => Unit.Value); + + foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) { - await handler.Handle(args.Message, args.CancellationToken); + AsyncHandlerDelegate next = handlerDelegate; + handlerDelegate = () => behavior.Handle(args.Message, next); } - return Unit.Value; - }; - foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) - { - AsyncHandlerDelegate next = handlerDelegate; - handlerDelegate = () => behavior.Handle(args.Message, next); + handlerDelegate(); + args.Reply(Unit.Value); } - - await handlerDelegate(); - args.Reply(Unit.Value); }); } } @@ -48,29 +45,25 @@ public class AsyncHandlerKeyedInitialization(stri if (!StrongReferenceMessenger.Default.IsRegistered, string>(provider, key)) { StrongReferenceMessenger.Default.Register, string>(provider, key, - async (provider, args) => + (provider, args) => { IEnumerable> handlers = provider.GetKeyedServices>(key); IEnumerable> behaviors = provider.GetServices>(); - AsyncHandlerDelegate handlerDelegate = async () => + foreach (IAsyncHandler handler in handlers) { - TResponse response = default!; - foreach (IAsyncHandler handler in handlers) + AsyncHandlerDelegate handlerDelegate = () => + handler.Handle(args.Message, args.CancellationToken); + + foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) { - response = await handler.Handle(args.Message, args.CancellationToken); + AsyncHandlerDelegate next = handlerDelegate; + handlerDelegate = () => behavior.Handle(args.Message, next); } - return response; - }; - foreach (IAsyncPipelineBehavior behavior in behaviors.Reverse()) - { - AsyncHandlerDelegate next = handlerDelegate; - handlerDelegate = () => behavior.Handle(args.Message, next); + args.Reply(handlerDelegate()); } - - args.Reply(await handlerDelegate()); }); } } -} +} \ No newline at end of file diff --git a/Toolkit.Foundation/ConfigurationInitializer.cs b/Toolkit.Foundation/ConfigurationInitializer.cs index d2fa61c..82643eb 100644 --- a/Toolkit.Foundation/ConfigurationInitializer.cs +++ b/Toolkit.Foundation/ConfigurationInitializer.cs @@ -22,6 +22,6 @@ public class ConfigurationInitializer(IConfigurationReader(configuration)); + messenger.Send(new ActivatedEventArgs(configuration)); } } \ No newline at end of file diff --git a/Toolkit.UI.Avalonia/EventListenerBehaviour.cs b/Toolkit.UI.Avalonia/EventListenerBehaviour.cs index b0004c9..89d906f 100644 --- a/Toolkit.UI.Avalonia/EventListenerBehaviour.cs +++ b/Toolkit.UI.Avalonia/EventListenerBehaviour.cs @@ -14,7 +14,6 @@ public class EventListenerBehaviour : public static readonly StyledProperty SourceProperty = AvaloniaProperty.Register(nameof(Source)); - private readonly Delegate? eventHandler; private object? resolvedSource; static EventListenerBehaviour() @@ -109,11 +108,6 @@ public class EventListenerBehaviour : private void UnregisterEvent(string eventName) { - if (eventHandler is null) - { - return; - } - if (eventName is { Length: 0 }) { return;