Top navigation, search delete

This commit is contained in:
2023-07-28 17:10:50 +02:00
parent ee42e38e45
commit ed6864e127
27 changed files with 320 additions and 149 deletions

View File

@@ -52,7 +52,10 @@ public class DeleteCommand : CommandBase, IExecutableCommand
new DeleteStrategy()
);
var parents = ItemsToDelete.Select(i => i.GetParent()).OfType<FullName>().Distinct();
var parents = ItemsToDelete
.Select(i => i.GetParent())
.OfType<FullName>()
.Distinct();
foreach (var parent in parents)
{
await _commandSchedulerNotifier.RefreshContainer(parent);
@@ -68,18 +71,26 @@ public class DeleteCommand : CommandBase, IExecutableCommand
foreach (var itemToDeleteName in itemsToDelete)
{
var itemToDelete = await _timelessContentProvider.GetItemByFullNameAsync(itemToDeleteName, currentTime);
IItemDeleter itemDeleter;
IItemDeleter? itemDeleter = null;
if (itemDeleters.ContainsKey(itemToDelete.Provider.Name))
if (itemDeleters.TryGetValue(itemToDelete.Provider.Name, out var deleter))
{
itemDeleter = itemDeleters[itemToDelete.Provider.Name];
itemDeleter = deleter;
}
else
{
itemDeleter = _contentAccessorFactory.GetItemDeleter(itemToDelete.Provider);
itemDeleters.Add(itemToDelete.Provider.Name, itemDeleter);
try
{
itemDeleter = _contentAccessorFactory.GetItemDeleter(itemToDelete.Provider);
itemDeleters.Add(itemToDelete.Provider.Name, itemDeleter);
}
catch
{
}
}
if (itemDeleter is null) continue;
if (itemToDelete is IContainer container)
{
await TraverseTree(
@@ -95,7 +106,7 @@ public class DeleteCommand : CommandBase, IExecutableCommand
}
}
await itemDeleter.DeleteAsync(itemToDelete.Provider, itemToDelete.FullName!);
await deleteStrategy.DeleteItem(itemToDelete, itemDeleter);
}
}
}

View File

@@ -5,8 +5,6 @@ namespace FileTime.Core.Command.Delete;
public class DeleteStrategy : IDeleteStrategy
{
public async Task DeleteItem(IItem item, IItemDeleter deleter)
{
await deleter.DeleteAsync(item.Provider, item.FullName!);
}
public async Task DeleteItem(IItem item, IItemDeleter deleter)
=> await deleter.DeleteAsync(item.Provider, item.FullName!);
}