Files
mROA/mROA.Example/TestControllerRemoteEndpoint.cs
T

85 lines
3.8 KiB
C#
Raw Normal View History

2025-02-04 18:40:47 +03:00
using System.Text.Json;
using mROA.Implementation;
2025-02-04 18:40:47 +03:00
namespace mROA.Example;
2025-02-03 10:06:05 +03:00
public class TestControllerRemoteEndpoint(int id, ISerialisationModule.IFrontendSerialisationModule serialisationModule)
: ITestController, IRemoteObject
2025-02-03 10:06:05 +03:00
{
2025-02-03 10:06:05 +03:00
public void A()
{
serialisationModule.PostCallRequest(new JsonCallRequest { CommandId = 0, ObjectId = id });
2025-02-03 10:06:05 +03:00
}
public async Task AAsync(CancellationToken cancellationToken)
2025-02-03 10:06:05 +03:00
{
var request = new JsonCallRequest { CommandId = 1, ObjectId = id };
serialisationModule.PostCallRequest(request);
await serialisationModule.GetNextCommandExecution<FinalCommandExecution>(request.CallRequestId);
2025-02-03 10:06:05 +03:00
}
public int B()
{
TransmissionConfig.SetupBackendRepository();
var request = new JsonCallRequest { CommandId = 2, ObjectId = id };
serialisationModule.PostCallRequest(request);
var response = serialisationModule.GetNextCommandExecution<FinalCommandExecution>(request.CallRequestId)
.GetAwaiter().GetResult();
TransmissionConfig.SetupFrontendRepository();
var convertation = response.Result! is JsonElement e ? e.Deserialize<int>() : (int)response.Result!;
return convertation;
2025-02-03 10:06:05 +03:00
}
public async Task<int> BAsync(CancellationToken cancellationToken)
2025-02-03 10:06:05 +03:00
{
TransmissionConfig.SetupBackendRepository();
var request = new JsonCallRequest { CommandId = 3, ObjectId = id };
serialisationModule.PostCallRequest(request);
var response = await serialisationModule.GetNextCommandExecution<FinalCommandExecution>(request.CallRequestId);
TransmissionConfig.SetupFrontendRepository();
var convertation = response.Result! is JsonElement e ? e.Deserialize<int>() : (int)response.Result!;
return convertation;
2025-02-03 10:06:05 +03:00
}
public TransmittedSharedObject<ITestController> SharedObjectTransmitionTest()
{
TransmissionConfig.SetupBackendRepository();
var request = new JsonCallRequest { CommandId = 4, ObjectId = id };
serialisationModule.PostCallRequest(request);
var response = serialisationModule.GetNextCommandExecution<FinalCommandExecution>(request.CallRequestId)
.GetAwaiter().GetResult();
TransmissionConfig.SetupFrontendRepository();
var convertation = response.Result! is JsonElement e ? e.Deserialize<TransmittedSharedObject<ITestController>>()! : (TransmittedSharedObject<ITestController>)response.Result!;
return convertation;
2025-02-03 10:06:05 +03:00
}
public int Parametrized(TestParameter parameter)
{
var request = new JsonCallRequest { CommandId = 5, ObjectId = id, Parameter = parameter };
TransmissionConfig.SetupBackendRepository();
serialisationModule.PostCallRequest(request);
var response = serialisationModule.GetNextCommandExecution<FinalCommandExecution>(request.CallRequestId)
.GetAwaiter().GetResult();
TransmissionConfig.SetupFrontendRepository();
var convertation = response.Result! is JsonElement e ? e.Deserialize<int>() : (int)response.Result!;
return convertation;
2025-02-03 10:06:05 +03:00
}
public TransmittedSharedObject<ITestParameter> GetTestParameter()
{
TransmissionConfig.SetupBackendRepository();
var request = new JsonCallRequest { CommandId = 6, ObjectId = id };
serialisationModule.PostCallRequest(request);
var response = serialisationModule.GetNextCommandExecution<FinalCommandExecution>(request.CallRequestId)
.GetAwaiter().GetResult();
TransmissionConfig.SetupFrontendRepository();
var convertation = response.Result! is JsonElement e ? e.Deserialize<TransmittedSharedObject<ITestParameter>>() : (TransmittedSharedObject<ITestParameter>)response.Result!;
return convertation;
}
public int Id => id;
}