Files
mROA/mROA/Implementation/JsonFrontendSerialisationModule.cs
T

26 lines
945 B
C#
Raw Normal View History

using System.Text;
2025-01-15 10:14:21 +03:00
using System.Text.Json;
namespace mROA.Implementation;
public class JsonFrontendSerialisationModule(IInteractionModule.IFrontendInteractionModule interactionModule)
: ISerialisationModule.IFrontendSerialisationModule
2025-01-15 10:14:21 +03:00
{
public async Task<T> GetNextCommandExecution<T>(Guid requestId) where T : ICommandExecution
2025-01-15 10:14:21 +03:00
{
var receiveMessage = await interactionModule.ReceiveMessage();
var parsed = JsonSerializer.Deserialize<T>(receiveMessage);
while (parsed.CallRequestId != requestId)
{
receiveMessage = await interactionModule.ReceiveMessage();
parsed = JsonSerializer.Deserialize<T>(receiveMessage);
}
return parsed;
2025-01-15 10:14:21 +03:00
}
2025-01-15 10:14:21 +03:00
public void PostCallRequest(ICallRequest callRequest)
{
var post = JsonSerializer.Serialize(callRequest, callRequest.GetType());
interactionModule.PostMessage(Encoding.UTF8.GetBytes(post));
2025-01-15 10:14:21 +03:00
}
}