Got adding working again

This commit is contained in:
TheXamlGuy
2024-05-19 22:21:18 +01:00
parent 21448b7bac
commit 15de406460
29 changed files with 205 additions and 71 deletions
+41 -18
View File
@@ -3,14 +3,21 @@ using Toolkit.Foundation;
namespace Bitvault;
[Aggerate(nameof(ItemViewModel))]
public partial class ItemViewModel :
ObservableCollection<IDisposable>,
ObservableCollection<IItemEntryViewModel>,
INotificationHandler<EditEventArgs<Item>>,
INotificationHandler<CancelEventArgs<Item>>
{
[ObservableProperty]
private bool archived;
[ObservableProperty]
private bool favourite;
[ObservableProperty]
private bool immutable;
public ItemViewModel(IServiceProvider provider,
IServiceFactory factory,
IMediator mediator,
@@ -18,28 +25,14 @@ public partial class ItemViewModel :
ISubscription subscriber,
IDisposer disposer,
IContentTemplate template,
bool immutable = true,
bool favourite = false,
bool archived = false) : base(provider, factory, mediator, publisher, subscriber, disposer)
{
Template = template;
Immutable = immutable;
Favourite = favourite;
Archived = archived;
if (!Archived)
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<FavouriteItemActionViewModel>(favourite),
Factory.Create<EditItemActionViewModel>(),
Factory.Create<ArchiveItemActionViewModel>(),
})));
}
else
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<UnarchiveItemActionViewModel>(),
})));
}
}
public IContentTemplate Template { get; set; }
@@ -65,4 +58,34 @@ public partial class ItemViewModel :
return Task.CompletedTask;
}
public override Task OnActivated()
{
if (!Immutable)
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<ConfirmItemActionViewModel>(),
Factory.Create<DismissItemActionViewModel>(),
})));
}
else if (Archived)
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<UnarchiveItemActionViewModel>(),
})));
}
else
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<FavouriteItemActionViewModel>(Favourite),
Factory.Create<EditItemActionViewModel>(),
Factory.Create<ArchiveItemActionViewModel>(),
})));
}
return base.OnActivated();
}
}