Improve scoped service

This commit is contained in:
Dan Clark
2025-02-11 19:45:02 +00:00
parent 66d61a3917
commit 92ea28d647
25 changed files with 149 additions and 111 deletions
@@ -4,10 +4,10 @@ using Toolkit.Foundation;
namespace Toolkit.Avalonia;
public class FileProvider(ITopLevelProvider topLevelProvider) :
IFileProvider
public class FilePicker(ITopLevelProvider topLevelProvider) :
IFilePicker
{
public async Task<IReadOnlyCollection<string>> SelectFiles(FileFilter filter)
public async Task<IReadOnlyCollection<string>> Get(FilePickerFilter filter)
{
if (topLevelProvider.Get() is TopLevel topLevel)
{
@@ -4,10 +4,10 @@ using Toolkit.Foundation;
namespace Toolkit.Avalonia;
public class FolderProvider(ITopLevelProvider topLevelProvider) :
IFolderProvider
public class FolderPicker(ITopLevelProvider topLevelProvider) :
IFolderPicker
{
public async Task<IReadOnlyCollection<string>> SelectFolders(FolderFilter filter)
public async Task<IReadOnlyCollection<string>> Get(FolderPickerPicker filter)
{
if (topLevelProvider.Get() is TopLevel topLevel)
{
@@ -12,8 +12,8 @@ public static class IServiceCollectionExtensions
public static IServiceCollection AddAvalonia(this IServiceCollection services)
{
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
services.AddTransient<IFileProvider, FileProvider>();
services.AddTransient<IFolderProvider, FolderProvider>();
services.AddTransient<IFilePicker, FilePicker>();
services.AddTransient<IFolderPicker, FolderPicker>();
services.AddTransient<IClipboardWriter, ClipboardWriter>();
@@ -27,8 +27,8 @@ public static class IServiceCollectionExtensions
services.AddTransient<INavigationRegion, NavigationRegion>();
services.AddAsyncHandler<WriteEventArgs<Clipboard<object>>, WriteClipboardHandler>();
services.AddAsyncHandler<SelectionEventArgs<FolderFilter>, IReadOnlyCollection<string>?, SelectFoldersHandler>();
services.AddAsyncHandler<SelectionEventArgs<FileFilter>, IReadOnlyCollection<string>?, SelectFilesHandler>();
services.AddAsyncHandler<SelectionEventArgs<FolderPickerPicker>, IReadOnlyCollection<string>?, SelectFoldersHandler>();
services.AddAsyncHandler<SelectionEventArgs<FilePickerFilter>, IReadOnlyCollection<string>?, SelectFilesHandler>();
services.AddHandler<NavigateTemplateEventArgs, ClassicDesktopStyleApplicationHandler>(nameof(IClassicDesktopStyleApplicationLifetime));
services.AddHandler<NavigateTemplateEventArgs, SingleViewApplicationHandler>(nameof(ISingleViewApplicationLifetime));
@@ -51,8 +51,8 @@ public static class IServiceCollectionExtensions
new ProxyServiceCollection<IComponentBuilder>(services =>
{
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
services.AddTransient<IFileProvider, FileProvider>();
services.AddTransient<IFolderProvider, FolderProvider>();
services.AddTransient<IFilePicker, FilePicker>();
services.AddTransient<IFolderPicker, FolderPicker>();
services.AddTransient<IClipboardWriter, ClipboardWriter>();
@@ -66,8 +66,8 @@ public static class IServiceCollectionExtensions
services.AddTransient<INavigationRegion, NavigationRegion>();
services.AddAsyncHandler<WriteEventArgs<Clipboard<object>>, WriteClipboardHandler>();
services.AddAsyncHandler<SelectionEventArgs<FolderFilter>, IReadOnlyCollection<string>?, SelectFoldersHandler>();
services.AddAsyncHandler<SelectionEventArgs<FileFilter>, IReadOnlyCollection<string>?, SelectFilesHandler>();
services.AddAsyncHandler<SelectionEventArgs<FolderPickerPicker>, IReadOnlyCollection<string>?, SelectFoldersHandler>();
services.AddAsyncHandler<SelectionEventArgs<FilePickerFilter>, IReadOnlyCollection<string>?, SelectFilesHandler>();
services.AddHandler<NavigateTemplateEventArgs, ContentControlHandler>(nameof(ContentControl));