Refactor
This commit is contained in:
@@ -26,7 +26,8 @@ public partial class App : Application
|
|||||||
services.AddHandler<AppHandler>();
|
services.AddHandler<AppHandler>();
|
||||||
|
|
||||||
services.AddTransient<IVaultComponent, VaultComponent>();
|
services.AddTransient<IVaultComponent, VaultComponent>();
|
||||||
services.AddInitializer<VaultConfigurationInitializer>();
|
services.AddTransient<IVaultFactory, VaultFactory>();
|
||||||
|
services.AddInitializer<VaultsInitializer>();
|
||||||
|
|
||||||
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime)
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime)
|
||||||
{
|
{
|
||||||
@@ -38,7 +39,7 @@ public partial class App : Application
|
|||||||
services.AddHandler<VaultHandler>();
|
services.AddHandler<VaultHandler>();
|
||||||
|
|
||||||
services.AddTemplate<MainViewModel, MainView>("Main");
|
services.AddTemplate<MainViewModel, MainView>("Main");
|
||||||
services.AddHandler<MainViewModelHandler>();
|
services.AddHandler<VaultNavigationViewModelHandler>();
|
||||||
|
|
||||||
services.AddTransient<FooterViewModel>();
|
services.AddTransient<FooterViewModel>();
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Toolkit.Foundation;
|
||||||
using Toolkit.Foundation;
|
|
||||||
|
|
||||||
namespace Bitvault.Avalonia;
|
namespace Bitvault.Avalonia;
|
||||||
|
|
||||||
@@ -10,6 +9,8 @@ public class VaultComponent :
|
|||||||
ComponentBuilder.Create()
|
ComponentBuilder.Create()
|
||||||
.AddServices(services =>
|
.AddServices(services =>
|
||||||
{
|
{
|
||||||
|
services.AddInitializer<VaultInitializer>();
|
||||||
|
|
||||||
services.AddTemplate<VaultNavigationViewModel, VaultNavigationView>();
|
services.AddTemplate<VaultNavigationViewModel, VaultNavigationView>();
|
||||||
services.AddTemplate<AllNavigationViewModel, AllNavigationView>();
|
services.AddTemplate<AllNavigationViewModel, AllNavigationView>();
|
||||||
services.AddTemplate<StarredNavigationViewModel, StarredNavigationView>();
|
services.AddTemplate<StarredNavigationViewModel, StarredNavigationView>();
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class AllNavigationViewModel(IServiceProvider serviceProvider,
|
public class AllNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer),
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||||
IMainNavigationViewModel;
|
IMainNavigationViewModel;
|
||||||
@@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class ArchiveNavigationViewModel(IServiceProvider serviceProvider,
|
public class ArchiveNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer),
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||||
IMainNavigationViewModel;
|
IMainNavigationViewModel;
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
|
||||||
|
<PackageReference Include="LiteDB" Version="5.0.19" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0-preview.3.24172.9" />
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0-preview.3.24172.9" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class CategoriesNavigationViewModel(IServiceProvider serviceProvider,
|
public class CategoriesNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer),
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||||
IMainNavigationViewModel;
|
IMainNavigationViewModel;
|
||||||
@@ -2,16 +2,11 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public partial class CreateVaultNavigationViewModel :
|
public partial class CreateVaultNavigationViewModel(IServiceProvider provider,
|
||||||
ObservableViewModel,
|
IServiceFactory factory,
|
||||||
IMainNavigationViewModel
|
IMediator mediator,
|
||||||
{
|
|
||||||
public CreateVaultNavigationViewModel(IServiceProvider serviceProvider,
|
|
||||||
IServiceFactory serviceFactory,
|
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
IDisposer disposer) :
|
||||||
{
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||||
|
IMainNavigationViewModel;
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,12 +4,13 @@ using Toolkit.Foundation;
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public partial class CreateVaultViewModel(IServiceProvider serviceProvider,
|
public partial class CreateVaultViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
|
IMediator mediator,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer),
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||||
IPrimaryConfirmation
|
IPrimaryConfirmation
|
||||||
{
|
{
|
||||||
[MaybeNull]
|
[MaybeNull]
|
||||||
|
|||||||
@@ -5,11 +5,12 @@ namespace Bitvault;
|
|||||||
public partial class FooterViewModel :
|
public partial class FooterViewModel :
|
||||||
ObservableCollectionViewModel<IMainNavigationViewModel>
|
ObservableCollectionViewModel<IMainNavigationViewModel>
|
||||||
{
|
{
|
||||||
public FooterViewModel(IServiceProvider serviceProvider,
|
public FooterViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
Add<ManageNavigationViewModel>();
|
Add<ManageNavigationViewModel>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
|
using Toolkit.Foundation;
|
||||||
|
|
||||||
namespace Bitvault
|
namespace Bitvault
|
||||||
{
|
{
|
||||||
public interface IVaultFactory
|
public interface IVaultFactory
|
||||||
{
|
{
|
||||||
Task CreateAsync(string name, VaultConfiguration configuration);
|
IComponentHost? Create(string name, VaultConfiguration configuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
using Toolkit.Foundation;
|
||||||
|
|
||||||
|
namespace Bitvault;
|
||||||
|
|
||||||
|
public interface IVaultHost : IComponentHost;
|
||||||
@@ -2,15 +2,10 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class LockViewModel(IServiceProvider serviceProvider,
|
public class LockViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||||
{
|
|
||||||
//public Task<bool> Confirm()
|
|
||||||
//{
|
|
||||||
// //return Task.FromResult(false);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
+2
-4
@@ -1,5 +1,3 @@
|
|||||||
using Toolkit.Foundation;
|
namespace Bitvault;
|
||||||
|
|
||||||
namespace Bitvault;
|
public record Locked;
|
||||||
|
|
||||||
public record Locked : INotification;
|
|
||||||
|
|||||||
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class LockerNavigationViewModel(IServiceProvider serviceProvider,
|
public class LockerNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer);
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||||
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class LockerViewModel(IServiceProvider serviceProvider,
|
public class LockerViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer);
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||||
@@ -10,13 +10,14 @@ public partial class MainViewModel :
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private FooterViewModel footer;
|
private FooterViewModel footer;
|
||||||
|
|
||||||
public MainViewModel(IServiceProvider serviceProvider,
|
public MainViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer,
|
IDisposer disposer,
|
||||||
IContentTemplate template,
|
IContentTemplate template,
|
||||||
FooterViewModel footer) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
FooterViewModel footer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
Template = template;
|
Template = template;
|
||||||
Footer = footer;
|
Footer = footer;
|
||||||
|
|||||||
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class MainWindowViewModel(IServiceProvider serviceProvider,
|
public class MainWindowViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer);
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||||
@@ -6,11 +6,12 @@ public partial class ManageNavigationViewModel :
|
|||||||
ObservableViewModel,
|
ObservableViewModel,
|
||||||
IMainNavigationViewModel
|
IMainNavigationViewModel
|
||||||
{
|
{
|
||||||
public ManageNavigationViewModel(IServiceProvider serviceProvider,
|
public ManageNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ public partial class ManageViewModel :
|
|||||||
ObservableCollectionViewModel,
|
ObservableCollectionViewModel,
|
||||||
IMainNavigationViewModel
|
IMainNavigationViewModel
|
||||||
{
|
{
|
||||||
public ManageViewModel(IServiceProvider serviceProvider,
|
public ManageViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer,
|
IDisposer disposer,
|
||||||
IContentTemplate template) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
IContentTemplate template) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
Template = template;
|
Template = template;
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class StarredNavigationViewModel(IServiceProvider serviceProvider,
|
public class StarredNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer),
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||||
IMainNavigationViewModel;
|
IMainNavigationViewModel;
|
||||||
@@ -1,5 +1,3 @@
|
|||||||
using Toolkit.Foundation;
|
namespace Bitvault;
|
||||||
|
|
||||||
namespace Bitvault;
|
public record Unlocked;
|
||||||
|
|
||||||
public record Unlocked : INotification;
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
using Toolkit.Foundation;
|
|
||||||
|
|
||||||
namespace Bitvault;
|
|
||||||
|
|
||||||
public class VaultConfigurationInitializer(IEnumerable<IConfigurationDescriptor<VaultConfiguration>> configurations,
|
|
||||||
IVaultFactory factory) : IInitializer
|
|
||||||
{
|
|
||||||
public async Task Initialize()
|
|
||||||
{
|
|
||||||
foreach (IConfigurationDescriptor<VaultConfiguration> configuration in configurations)
|
|
||||||
{
|
|
||||||
await factory.CreateAsync(configuration.Section,
|
|
||||||
configuration.Value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,7 @@ public class VaultFactory(IServiceProvider provider,
|
|||||||
IComponentScopeCollection scopes,
|
IComponentScopeCollection scopes,
|
||||||
IVaultHostCollection vaults) : IVaultFactory
|
IVaultHostCollection vaults) : IVaultFactory
|
||||||
{
|
{
|
||||||
public async Task CreateAsync(string name,
|
public IComponentHost? Create(string name,
|
||||||
VaultConfiguration configuration)
|
VaultConfiguration configuration)
|
||||||
{
|
{
|
||||||
if (provider.GetRequiredService<IVaultComponent>() is IVaultComponent component)
|
if (provider.GetRequiredService<IVaultComponent>() is IVaultComponent component)
|
||||||
@@ -45,7 +45,9 @@ public class VaultFactory(IServiceProvider provider,
|
|||||||
host.Services.GetRequiredService<IServiceProvider>()));
|
host.Services.GetRequiredService<IServiceProvider>()));
|
||||||
|
|
||||||
vaults.Add(host);
|
vaults.Add(host);
|
||||||
await host.StartAsync();
|
return host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,35 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class VaultHandler(IVaultFactory factory) : INotificationHandler<Create<Vault>>
|
|
||||||
|
public class VaultStorageHandler :
|
||||||
|
INotificationHandler<Create<VaultStorage>>
|
||||||
{
|
{
|
||||||
public async Task Handle(Create<Vault> args,
|
public Task Handle(Create<VaultStorage> args,
|
||||||
CancellationToken cancellationToken = default)
|
CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
if (args.Value is Vault vault)
|
throw new NotImplementedException();
|
||||||
{
|
}
|
||||||
await factory.CreateAsync($"Vault:{vault.Name}", new VaultConfiguration { Name = vault.Name });
|
}
|
||||||
}
|
|
||||||
|
public record VaultStorage(string Name);
|
||||||
|
|
||||||
|
public class VaultHandler(IVaultFactory factory) :
|
||||||
|
IHandler<Create<Vault>, bool>
|
||||||
|
{
|
||||||
|
//public async Task Handle(Create<Vault> args,
|
||||||
|
// CancellationToken cancellationToken = default)
|
||||||
|
//{
|
||||||
|
// if (args.Value is Vault vault)
|
||||||
|
// {
|
||||||
|
// if (factory.Create($"Vault:{vault.Name}", new VaultConfiguration { Name = vault.Name }) is IComponentHost host)
|
||||||
|
// {
|
||||||
|
// await host.StartAsync(cancellationToken);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
public Task<bool> Handle(Create<Vault> args, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,10 +9,7 @@ public class VaultHostCollection :
|
|||||||
{
|
{
|
||||||
private readonly List<IComponentHost> hosts = [];
|
private readonly List<IComponentHost> hosts = [];
|
||||||
|
|
||||||
public void Add(IComponentHost host)
|
public void Add(IComponentHost host) => hosts.Add(host);
|
||||||
{
|
|
||||||
hosts.Add(host);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerator<IComponentHost> GetEnumerator() =>
|
public IEnumerator<IComponentHost> GetEnumerator() =>
|
||||||
hosts.GetEnumerator();
|
hosts.GetEnumerator();
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Toolkit.Foundation;
|
||||||
|
|
||||||
|
namespace Bitvault;
|
||||||
|
|
||||||
|
public class VaultInitializer(IServiceProvider provider,
|
||||||
|
IProxyService<IPublisher> publisher) : IInitializer
|
||||||
|
{
|
||||||
|
public async Task Initialize()
|
||||||
|
{
|
||||||
|
if (provider.GetService<IComponentHost>() is IComponentHost vault)
|
||||||
|
{
|
||||||
|
if (vault.Services.GetRequiredService<VaultConfiguration>() is VaultConfiguration configuration)
|
||||||
|
{
|
||||||
|
if (vault.Services.GetRequiredService<IServiceFactory>() is IServiceFactory factory)
|
||||||
|
{
|
||||||
|
if (factory.Create<VaultNavigationViewModel>(configuration.Name) is VaultNavigationViewModel viewModel)
|
||||||
|
{
|
||||||
|
await publisher.Proxy.Publish(new Create<IMainNavigationViewModel>(viewModel),
|
||||||
|
nameof(MainViewModel));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,19 +15,19 @@ public partial class VaultNavigationViewModel :
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private string name;
|
private string name;
|
||||||
|
|
||||||
public VaultNavigationViewModel(IServiceProvider serviceProvider,
|
public VaultNavigationViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer,
|
IDisposer disposer,
|
||||||
IContentTemplate template,
|
IContentTemplate template,
|
||||||
string name) : base(serviceProvider, serviceFactory, publisher, subscriber, disposer)
|
string name) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
Template = template;
|
Template = template;
|
||||||
Name = name;
|
Name = name;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public IContentTemplate Template { get; set; }
|
public IContentTemplate Template { get; set; }
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Toolkit.Foundation;
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class MainViewModelHandler(IPublisher publisher,
|
public class VaultNavigationViewModelHandler(IPublisher publisher,
|
||||||
IVaultHostCollection vaults) :
|
IVaultHostCollection vaults) :
|
||||||
INotificationHandler<Enumerate<IMainNavigationViewModel>>
|
INotificationHandler<Enumerate<IMainNavigationViewModel>>
|
||||||
{
|
{
|
||||||
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
namespace Bitvault;
|
namespace Bitvault;
|
||||||
|
|
||||||
public class VaultViewModel(IServiceProvider serviceProvider,
|
public class VaultViewModel(IServiceProvider provider,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory factory,
|
||||||
|
IMediator mediator,
|
||||||
IPublisher publisher,
|
IPublisher publisher,
|
||||||
ISubscriber subscriber,
|
ISubscriber subscriber,
|
||||||
IDisposer disposer) :
|
IDisposer disposer) :
|
||||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer);
|
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using Toolkit.Foundation;
|
||||||
|
|
||||||
|
namespace Bitvault;
|
||||||
|
|
||||||
|
public class VaultsInitializer(IEnumerable<IConfigurationDescriptor<VaultConfiguration>> configurations,
|
||||||
|
IVaultFactory factory) : IInitializer
|
||||||
|
{
|
||||||
|
public async Task Initialize()
|
||||||
|
{
|
||||||
|
foreach (IConfigurationDescriptor<VaultConfiguration> configuration in configurations)
|
||||||
|
{
|
||||||
|
if (factory.Create(configuration.Section, configuration.Value) is IComponentHost host)
|
||||||
|
{
|
||||||
|
await host.StartAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user