Fix manual handler registrations

This commit is contained in:
Daniel Clark
2022-12-16 09:06:14 +00:00
parent 96cafa9082
commit 2b7bd315a5
4 changed files with 5 additions and 4 deletions
@@ -1,6 +1,5 @@
using Avalonia;
using Mediator;
using System.Diagnostics;
using Toolkit.Framework.Foundation;
namespace Toolkit.Framework.Avalonia;
@@ -6,10 +6,11 @@ namespace Toolkit.Framework.Avalonia;
public static class IServiceCollectionExtensions
{
public static IServiceCollection AddNavigation(this IServiceCollection serviceCollection)
public static IServiceCollection AddAvalonia(this IServiceCollection serviceCollection)
{
serviceCollection.TryAddSingleton<INavigationRouteDescriptorCollection, NavigationRouteDescriptorCollection>();
serviceCollection.AddHandler<ContentHandler>();
serviceCollection.AddHandler<NavigationRouteHandler>();
serviceCollection.AddHandler<NavigateHandler>();
serviceCollection.AddHandler<FrameNavigationHandler>();
@@ -5,7 +5,7 @@ namespace Toolkit.Framework.Avalonia;
public class ContentControlNavigationHandler : IRequestHandler<ContentControlNavigation, bool>
{
public async ValueTask<bool> Handle(ContentControlNavigation request, CancellationToken cancellationToken)
public ValueTask<bool> Handle(ContentControlNavigation request, CancellationToken cancellationToken)
{
if (request.Template is TemplatedControl control)
{
@@ -13,6 +13,6 @@ public class ContentControlNavigationHandler : IRequestHandler<ContentControlNav
request.Route.Content = control;
}
return await Task.FromResult(true);
return new ValueTask<bool>(true);
}
}
@@ -37,6 +37,7 @@ public static class IServiceCollectionExtensions
.AddSingleton<IMediator, Mediator>()
.AddHandler<InitializeHandler>()
.AddSingleton<IServiceFactory>(provider => new ServiceFactory(provider.GetService, (instanceType, parameters) => ActivatorUtilities.CreateInstance(provider, instanceType, parameters!)))
.AddHandler<ServiceFactoryHandler>()
.AddSingleton<IInitialization, Initialization>(provider => new Initialization(() =>
{
return serviceCollection.Where(x => x.ServiceType.GetInterfaces()