Initial project snapshot
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface IBackendAuthClient
|
||||
{
|
||||
Task<AuthResultDto> LoginAsync(LoginRequest request, CancellationToken cancellationToken);
|
||||
Task<AuthResultDto> RefreshAsync(RefreshRequest request, CancellationToken cancellationToken);
|
||||
Task RevokeAuthSessionAsync(string userId, string authSessionId, string reason, CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface IBackendMessageException
|
||||
{
|
||||
string Code { get; }
|
||||
string MessageKey { get; }
|
||||
string FallbackMessage { get; }
|
||||
string? TraceId { get; }
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface IBackendOrganizationClient
|
||||
{
|
||||
Task<IReadOnlyList<OrganizationDto>> GetOrganizationsAsync(string userId, CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface IBackendResourceClient
|
||||
{
|
||||
Task<IReadOnlyList<ResourceDto>> GetResourcesAsync(string userId, string organizationId, CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface IBackendSessionClient
|
||||
{
|
||||
Task<IReadOnlyList<RemoteSessionDto>> GetSessionsAsync(string userId, CancellationToken cancellationToken);
|
||||
Task<SessionControlResultDto> StartSessionAsync(StartSessionRequest request, CancellationToken cancellationToken);
|
||||
Task<SessionControlResultDto> AttachSessionAsync(string sessionId, AttachSessionRequest request, CancellationToken cancellationToken);
|
||||
Task<SessionControlResultDto> DetachSessionAsync(string sessionId, DetachSessionRequest request, CancellationToken cancellationToken);
|
||||
Task<SessionControlResultDto> TakeoverSessionAsync(string sessionId, TakeoverSessionRequest request, CancellationToken cancellationToken);
|
||||
Task TerminateSessionAsync(string sessionId, TerminateSessionRequest request, CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface IDeviceIdentityProvider
|
||||
{
|
||||
Task<string> GetOrCreateFingerprintAsync(CancellationToken cancellationToken);
|
||||
Task<string> GetDeviceLabelAsync(CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface ILocalSettingsStore
|
||||
{
|
||||
Task<LocalClientSettings> LoadAsync(CancellationToken cancellationToken);
|
||||
Task SaveAsync(LocalClientSettings settings, CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface ISessionGatewayClient
|
||||
{
|
||||
Task<ISessionGatewayConnection> ConnectAsync(
|
||||
string attachToken,
|
||||
DataPlaneOfferDto? dataPlane,
|
||||
Func<LiveTransportEnvelopeDto, Task> onEnvelope,
|
||||
Func<Exception?, Task> onClosed,
|
||||
CancellationToken cancellationToken);
|
||||
}
|
||||
|
||||
public interface ISessionGatewayConnection : IAsyncDisposable
|
||||
{
|
||||
bool IsConnected { get; }
|
||||
string TransportKind { get; }
|
||||
Task SendInputAsync(SessionInputEventDto inputEvent, CancellationToken cancellationToken);
|
||||
Task SendClipboardTextAsync(string text, string origin, string contentHash, long sequenceId, CancellationToken cancellationToken);
|
||||
Task SendFileUploadStartAsync(FileUploadStartDto upload, CancellationToken cancellationToken);
|
||||
Task SendFileUploadChunkAsync(FileUploadChunkDto chunk, CancellationToken cancellationToken);
|
||||
Task SendFileUploadCancelAsync(string transferId, CancellationToken cancellationToken);
|
||||
Task SendFileDownloadStartAsync(FileDownloadStartDto download, CancellationToken cancellationToken);
|
||||
Task SendFileDownloadAckAsync(FileDownloadAckDto ack, CancellationToken cancellationToken);
|
||||
Task SendFileDownloadCancelAsync(string transferId, CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using RemoteAccessPlatform.Windows.Models;
|
||||
|
||||
namespace RemoteAccessPlatform.Windows.Contracts;
|
||||
|
||||
public interface ITokenStore
|
||||
{
|
||||
Task<StoredAuthState?> LoadAsync(CancellationToken cancellationToken);
|
||||
Task SaveAsync(StoredAuthState state, CancellationToken cancellationToken);
|
||||
Task ClearAsync(CancellationToken cancellationToken);
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RemoteAccessPlatform.Windows.Models\RemoteAccessPlatform.Windows.Models.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user