Ensure item is updated when modified

This commit is contained in:
TheXamlGuy
2024-05-21 21:57:26 +01:00
parent 48e43f008a
commit 4ae33c2498
4 changed files with 44 additions and 28 deletions
+6 -11
View File
@@ -18,22 +18,17 @@ public class ModifiedItemHandler(IServiceProvider serviceProvider,
if (cachedItem is not null)
{
IServiceScope serviceScope = serviceProvider.CreateScope();
IServiceFactory serviceFactory = serviceScope.ServiceProvider.GetRequiredService<IServiceFactory>();
IValueStore<Item> valueStore = serviceScope.ServiceProvider.GetRequiredService<IValueStore<Item>>();
if (serviceFactory.Create<ItemNavigationViewModel>(newItem.Id, newItem.Name, "Description", true)
is ItemNavigationViewModel viewModel)
{
int oldIndex = cache.IndexOf(cachedItem);
cache.Remove(cachedItem);
int oldIndex = cache.IndexOf(cachedItem);
cache.Remove(cachedItem);
cache.Add(newItem);
cache.Add(newItem);
int newIndex = cache.IndexOf(newItem);
valueStore.Set(newItem);
int newIndex = cache.IndexOf(newItem);
valueStore.Set(newItem);
publisher.Publish(RemoveAndInsertAt.As(oldIndex, newIndex, viewModel), nameof(ContainerViewModel));
}
publisher.Publish(MoveTo.As<ItemNavigationViewModel>(oldIndex, newIndex), nameof(ContainerViewModel));
}
}