using Bitvault.Data; using Microsoft.EntityFrameworkCore; using Toolkit.Foundation; namespace Bitvault; public class ContainerViewModelHandler(IDbContextFactory dbContextFactory, IServiceFactory factory, IPublisher publisher) : INotificationHandler> { public async Task Handle(Enumerate args, CancellationToken cancellationToken = default) { var items = await Task.Run(async () => { using ContainerDbContext context = dbContextFactory.CreateDbContext(); return await context.Set().Select(x => new { x.Name, x.State }).Where(x => x.State != 3).ToListAsync(); }, cancellationToken); foreach (var item in items) { if (factory.Create(item.Name, "Description " + 1) is ItemNavigationViewModel viewModel) { await publisher.Publish(new Create(viewModel), nameof(ContainerViewModel), cancellationToken); } } } }