MoveCommand
This commit is contained in:
@@ -24,12 +24,4 @@ public class LocalItemDeleter : IItemDeleter<ILocalContentProvider>
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public async Task DeleteAsync(IContentProvider contentProvider, FullName fullName)
|
||||
{
|
||||
var localContentProvider = contentProvider as ILocalContentProvider;
|
||||
if (localContentProvider is null) throw new ArgumentException("Content provider is not a local content provider", nameof(contentProvider));
|
||||
|
||||
await DeleteAsync(localContentProvider, fullName);
|
||||
}
|
||||
}
|
||||
28
src/Providers/FileTime.Providers.Local/LocalItemMover.cs
Normal file
28
src/Providers/FileTime.Providers.Local/LocalItemMover.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using FileTime.Core.ContentAccess;
|
||||
using FileTime.Core.Models;
|
||||
|
||||
namespace FileTime.Providers.Local;
|
||||
|
||||
public class LocalItemMover : IItemMover<ILocalContentProvider>
|
||||
{
|
||||
public Task RenameAsync(ILocalContentProvider contentProvider, FullName fullName, FullName newPath)
|
||||
{
|
||||
var source = contentProvider.GetNativePath(fullName);
|
||||
var destination = contentProvider.GetNativePath(newPath);
|
||||
|
||||
if (File.Exists(source.Path))
|
||||
{
|
||||
File.Move(source.Path, destination.Path);
|
||||
}
|
||||
else if (Directory.Exists(source.Path))
|
||||
{
|
||||
Directory.Move(source.Path, destination.Path);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new FileNotFoundException(source.Path);
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,8 @@ public static class Startup
|
||||
serviceCollection.TryAddSingleton<IItemCreator<LocalContentProvider>>(sp => sp.GetRequiredService<IItemCreator<ILocalContentProvider>>());
|
||||
serviceCollection.TryAddSingleton<IItemDeleter<ILocalContentProvider>, LocalItemDeleter>();
|
||||
serviceCollection.TryAddSingleton<IItemDeleter<LocalContentProvider>>(sp => sp.GetRequiredService<IItemDeleter<ILocalContentProvider>>());
|
||||
serviceCollection.TryAddSingleton<IItemMover<ILocalContentProvider>, LocalItemMover>();
|
||||
serviceCollection.TryAddSingleton<IItemMover<LocalContentProvider>>(sp => sp.GetRequiredService<IItemMover<ILocalContentProvider>>());
|
||||
serviceCollection.TryAddSingleton<IContentReaderFactory<ILocalContentProvider>, LocalContentReaderFactory>();
|
||||
serviceCollection.TryAddSingleton<IContentReaderFactory<LocalContentProvider>>(sp => sp.GetRequiredService<IContentReaderFactory<ILocalContentProvider>>());
|
||||
serviceCollection.TryAddSingleton<IContentWriterFactory<ILocalContentProvider>, LocalContentWriterFactory>();
|
||||
|
||||
Reference in New Issue
Block a user