Connect to SignalR remote provider
This commit is contained in:
@@ -8,15 +8,17 @@ namespace FileTime.Providers.Remote;
|
||||
|
||||
public sealed class RemoteContentProvider : ContentProviderBase, IRemoteContentProvider
|
||||
{
|
||||
public string RemoteProviderName { get; }
|
||||
private readonly Func<Task<IRemoteConnection>> _remoteConnectionProvider;
|
||||
|
||||
public RemoteContentProvider(
|
||||
ITimelessContentProvider timelessContentProvider,
|
||||
Func<Task<IRemoteConnection>> remoteConnectionProvider,
|
||||
string remoteName,
|
||||
string name = "remote")
|
||||
string name)
|
||||
: base(name, timelessContentProvider)
|
||||
{
|
||||
RemoteProviderName = remoteName;
|
||||
_remoteConnectionProvider = remoteConnectionProvider;
|
||||
}
|
||||
public async Task<IRemoteConnection> GetRemoteConnectionAsync()
|
||||
|
||||
@@ -7,20 +7,17 @@ namespace FileTime.Providers.Remote;
|
||||
|
||||
public class RemoteItemCreator :
|
||||
ItemCreatorBase<IRemoteContentProvider>,
|
||||
IInitable<IRemoteContentProvider, string>
|
||||
IInitable<IRemoteContentProvider>
|
||||
{
|
||||
private IRemoteContentProvider _remoteContentProvider = null!;
|
||||
private string _remoteContentProviderId = null!;
|
||||
|
||||
public void Init(IRemoteContentProvider remoteConnection, string remoteContentProviderId)
|
||||
{
|
||||
_remoteContentProvider = remoteConnection;
|
||||
_remoteContentProviderId = remoteContentProviderId;
|
||||
}
|
||||
public void Init(IRemoteContentProvider remoteConnection) => _remoteContentProvider = remoteConnection;
|
||||
|
||||
public override async Task CreateContainerAsync(IRemoteContentProvider contentProvider, FullName fullName)
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync()).CreateContainerAsync(_remoteContentProviderId, fullName);
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync())
|
||||
.CreateContainerAsync(_remoteContentProvider.RemoteProviderName, fullName);
|
||||
|
||||
public override async Task CreateElementAsync(IRemoteContentProvider contentProvider, FullName fullName)
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync()).CreateElementAsync(_remoteContentProviderId, fullName);
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync())
|
||||
.CreateElementAsync(_remoteContentProvider.RemoteProviderName, fullName);
|
||||
}
|
||||
@@ -4,17 +4,13 @@ using InitableService;
|
||||
|
||||
namespace FileTime.Providers.Remote;
|
||||
|
||||
public class RemoteItemDeleter : IItemDeleter<IRemoteContentProvider>, IInitable<IRemoteContentProvider, string>
|
||||
public class RemoteItemDeleter : IItemDeleter<IRemoteContentProvider>, IInitable<IRemoteContentProvider>
|
||||
{
|
||||
private IRemoteContentProvider _remoteContentProvider = null!;
|
||||
private string _remoteContentProviderId = null!;
|
||||
|
||||
public void Init(IRemoteContentProvider remoteConnection, string remoteContentProviderId)
|
||||
{
|
||||
_remoteContentProvider = remoteConnection;
|
||||
_remoteContentProviderId = remoteContentProviderId;
|
||||
}
|
||||
public void Init(IRemoteContentProvider remoteConnection) => _remoteContentProvider = remoteConnection;
|
||||
|
||||
public async Task DeleteAsync(IRemoteContentProvider contentProvider, FullName fullName)
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync()).DeleteItemAsync(_remoteContentProviderId, fullName);
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync())
|
||||
.DeleteItemAsync(_remoteContentProvider.RemoteProviderName, fullName);
|
||||
}
|
||||
@@ -4,17 +4,13 @@ using InitableService;
|
||||
|
||||
namespace FileTime.Providers.Remote;
|
||||
|
||||
public class RemoteItemMover : IItemMover<IRemoteContentProvider>, IInitable<IRemoteContentProvider, string>
|
||||
public class RemoteItemMover : IItemMover<IRemoteContentProvider>, IInitable<IRemoteContentProvider>
|
||||
{
|
||||
private IRemoteContentProvider _remoteContentProvider = null!;
|
||||
private string _remoteContentProviderId = null!;
|
||||
|
||||
public void Init(IRemoteContentProvider remoteConnection, string remoteContentProviderId)
|
||||
{
|
||||
_remoteContentProvider = remoteConnection;
|
||||
_remoteContentProviderId = remoteContentProviderId;
|
||||
}
|
||||
public void Init(IRemoteContentProvider remoteConnection) => _remoteContentProvider = remoteConnection;
|
||||
|
||||
public async Task RenameAsync(IRemoteContentProvider contentProvider, FullName fullName, FullName newPath)
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync()).MoveItemAsync(_remoteContentProviderId, fullName, newPath);
|
||||
=> await (await _remoteContentProvider.GetRemoteConnectionAsync())
|
||||
.MoveItemAsync(_remoteContentProvider.RemoteProviderName, fullName, newPath);
|
||||
}
|
||||
Reference in New Issue
Block a user