This commit is contained in:
TheXamlGuy
2024-05-06 21:17:20 +01:00
parent e37e04b7a9
commit ed54c27269
33 changed files with 275 additions and 112 deletions
@@ -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);
+10
View File
@@ -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);
+1 -1
View File
@@ -2,7 +2,7 @@
namespace Bitvault;
public record Locker
public record Content
{
[Key]
public int Id { get; set; }
+1 -1
View File
@@ -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)));
}
+1 -1
View File
@@ -3,7 +3,7 @@ using Toolkit.Foundation;
namespace Bitvault;
[Notification(nameof(MainViewModel))]
[Enumerate(nameof(MainViewModel))]
public partial class MainViewModel :
ObservableCollectionViewModel<IMainNavigationViewModel>
{
+1 -41
View File
@@ -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,
+3 -3
View File
@@ -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();
}
+33
View File
@@ -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,
+10
View File
@@ -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);
+5 -4
View File
@@ -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)
+9 -9
View File
@@ -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);
}
}