Connect to SignalR remote provider

This commit is contained in:
2023-08-24 12:32:48 +02:00
parent 72e3d08f5f
commit f1daca788e
9 changed files with 71 additions and 33 deletions

View File

@@ -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()

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}