wip
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public partial class AddVaultContentActionViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||
@@ -0,0 +1,10 @@
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public partial class AddVaultContentViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer);
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public record Locker
|
||||
public record Content
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
@@ -38,5 +38,5 @@ public partial class FilterVaultNavigationViewModel : ObservableViewModel,
|
||||
Task.FromResult(Activated = true);
|
||||
|
||||
[RelayCommand]
|
||||
public async Task Invoke() => await Publisher.Publish(Vault.As(new Filter<string>(Filter)), nameof(VaultViewModel));
|
||||
public async Task Invoke() => await Publisher.Publish(Vault.As(new Filter<string>(Filter)));
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
[Notification(nameof(MainViewModel))]
|
||||
[Enumerate(nameof(MainViewModel))]
|
||||
public partial class MainViewModel :
|
||||
ObservableCollectionViewModel<IMainNavigationViewModel>
|
||||
{
|
||||
|
||||
@@ -9,44 +9,4 @@ public partial class ManageNavigationViewModel(IServiceProvider provider,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) :
|
||||
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer),
|
||||
IMainNavigationViewModel;
|
||||
|
||||
public partial class VaultCommandViewModel : ObservableCollectionViewModel
|
||||
{
|
||||
public VaultCommandViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
Add<SearchVaultCommandViewModel>();
|
||||
Add<CreateLockerCommandViewModel>();
|
||||
}
|
||||
}
|
||||
|
||||
public partial class SearchVaultCommandViewModel :
|
||||
ObservableCollectionViewModel
|
||||
{
|
||||
public SearchVaultCommandViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class CreateLockerCommandViewModel :
|
||||
ObservableCollectionViewModel
|
||||
{
|
||||
public CreateLockerCommandViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
}
|
||||
}
|
||||
IMainNavigationViewModel;
|
||||
@@ -0,0 +1,32 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public partial class VaultContentNavigationViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
IContentTemplate template,
|
||||
string name,
|
||||
string description) :
|
||||
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
[ObservableProperty]
|
||||
private bool selected;
|
||||
|
||||
[ObservableProperty]
|
||||
private string? name = name;
|
||||
|
||||
[ObservableProperty]
|
||||
private string? description = description;
|
||||
|
||||
public IContentTemplate Template { get; set; } = template;
|
||||
|
||||
partial void OnSelectedChanged(bool value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public class LockerNavigationViewModel(IServiceProvider provider,
|
||||
public class VaultContentViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
@@ -9,17 +9,17 @@ public class VaultDbContext(DbContextOptions<VaultDbContext> options) :
|
||||
|
||||
public DbSet<Document> Documents { get; set; }
|
||||
|
||||
public DbSet<Locker> Lockers { get; set; }
|
||||
public DbSet<Content> Items { get; set; }
|
||||
|
||||
public DbSet<Tag> Tags { get; set; }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<Locker>()
|
||||
modelBuilder.Entity<Content>()
|
||||
.HasMany(x => x.Tags)
|
||||
.WithOne();
|
||||
|
||||
modelBuilder.Entity<Locker>()
|
||||
modelBuilder.Entity<Content>()
|
||||
.HasMany(x => x.Documents)
|
||||
.WithOne();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public partial class VaultHeaderViewModel : ObservableCollectionViewModel<string, IDisposable>,
|
||||
INotificationHandler<Vault<Filter<string>>>
|
||||
{
|
||||
public VaultHeaderViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
IContentTemplate template) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
Template = template;
|
||||
|
||||
Add<AddVaultContentActionViewModel>();
|
||||
}
|
||||
|
||||
public IContentTemplate Template { get; set; }
|
||||
|
||||
public Task Handle(Vault<Filter<string>> args,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (args.Value is Filter<string> filter)
|
||||
{
|
||||
Value = filter.Value;
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public class LockerViewModel(IServiceProvider provider,
|
||||
public class VaultItemViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
@@ -0,0 +1,10 @@
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
public partial class VaultSearchHeaderViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : ObservableViewModel<string>(provider, factory, mediator, publisher, subscriber, disposer);
|
||||
@@ -3,7 +3,8 @@ using Toolkit.Foundation;
|
||||
|
||||
namespace Bitvault;
|
||||
|
||||
[Notification(nameof(VaultViewModel))]
|
||||
|
||||
[Enumerate(nameof(VaultViewModel))]
|
||||
public partial class VaultViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
@@ -11,7 +12,7 @@ public partial class VaultViewModel(IServiceProvider provider,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
IContentTemplate template,
|
||||
string? filter = null) : ObservableCollectionViewModel<LockerNavigationViewModel>(provider, factory, mediator, publisher, subscriber, disposer),
|
||||
string? filter = null) : ObservableCollectionViewModel<VaultContentNavigationViewModel>(provider, factory, mediator, publisher, subscriber, disposer),
|
||||
INotificationHandler<Vault<Filter<string>>>
|
||||
{
|
||||
[ObservableProperty]
|
||||
@@ -31,8 +32,8 @@ public partial class VaultViewModel(IServiceProvider provider,
|
||||
await base.Deactivated();
|
||||
}
|
||||
|
||||
protected override IEnumerate CreateEnumeration(object? key) =>
|
||||
Enumerate<LockerNavigationViewModel>.With(new VaultViewModelOptions { Filter = Filter }) with { Key = key };
|
||||
protected override IEnumerate PrepareEnumeration(object? key) =>
|
||||
Enumerate<VaultContentNavigationViewModel>.With(new VaultViewModelOptions { Filter = Filter }) with { Key = key };
|
||||
|
||||
public async Task Handle(Vault<Filter<string>> args,
|
||||
CancellationToken cancellationToken = default)
|
||||
|
||||
@@ -4,18 +4,18 @@ namespace Bitvault;
|
||||
|
||||
public class VaultViewModelHandler(IServiceFactory factory,
|
||||
IPublisher publisher) :
|
||||
INotificationHandler<Enumerate<LockerNavigationViewModel, VaultViewModelOptions>>
|
||||
INotificationHandler<Enumerate<VaultContentNavigationViewModel, VaultViewModelOptions>>
|
||||
{
|
||||
public async Task Handle(Enumerate<LockerNavigationViewModel, VaultViewModelOptions> args,
|
||||
public async Task Handle(Enumerate<VaultContentNavigationViewModel, VaultViewModelOptions> args,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (args.Options?.Filter is "All")
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
if (factory.Create<LockerNavigationViewModel>() is LockerNavigationViewModel viewModel)
|
||||
if (factory.Create<VaultContentNavigationViewModel>("Name " + i, "Description " + 1) is VaultContentNavigationViewModel viewModel)
|
||||
{
|
||||
await publisher.Publish(new Create<LockerNavigationViewModel>(viewModel),
|
||||
await publisher.Publish(new Create<VaultContentNavigationViewModel>(viewModel),
|
||||
nameof(VaultViewModel), cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -25,9 +25,9 @@ public class VaultViewModelHandler(IServiceFactory factory,
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
if (factory.Create<LockerNavigationViewModel>() is LockerNavigationViewModel viewModel)
|
||||
if (factory.Create<VaultContentNavigationViewModel>("Name " + i, "Description " + 1) is VaultContentNavigationViewModel viewModel)
|
||||
{
|
||||
await publisher.Publish(new Create<LockerNavigationViewModel>(viewModel),
|
||||
await publisher.Publish(new Create<VaultContentNavigationViewModel>(viewModel),
|
||||
nameof(VaultViewModel), cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -35,11 +35,11 @@ public class VaultViewModelHandler(IServiceFactory factory,
|
||||
|
||||
if (args.Options?.Filter is "Archive")
|
||||
{
|
||||
for (int i = 0; i < 100000; i++)
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
if (factory.Create<LockerNavigationViewModel>() is LockerNavigationViewModel viewModel)
|
||||
if (factory.Create<VaultContentNavigationViewModel>("Name " + i, "Description " + 1) is VaultContentNavigationViewModel viewModel)
|
||||
{
|
||||
await publisher.Publish(new Create<LockerNavigationViewModel>(viewModel),
|
||||
await publisher.Publish(new Create<VaultContentNavigationViewModel>(viewModel),
|
||||
nameof(VaultViewModel), cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user