Initial commit carried over from private repo. This is V2.
This commit is contained in:
50
code/MessengerApi.Contracts.MessageParser/MessageParser.cs
Normal file
50
code/MessengerApi.Contracts.MessageParser/MessageParser.cs
Normal file
@ -0,0 +1,50 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace MessengerApi.Contracts.MessageParser
|
||||
{
|
||||
public class MessageParser<TRequest, TResponse> : IMessageParser<TRequest, TResponse>
|
||||
{
|
||||
public OutboxMessage GetMessageFromRequest(
|
||||
TRequest request,
|
||||
int targetUserId)
|
||||
{
|
||||
var message = new OutboxMessage
|
||||
{
|
||||
|
||||
}
|
||||
apikey,
|
||||
targetUserId,
|
||||
typeof(TRequest).Name,
|
||||
JsonConvert.SerializeObject(request));
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
public OutboxMessage GetMessageFromResponse(
|
||||
TResponse response,
|
||||
string apiKey,
|
||||
int targetUserId,
|
||||
InboxMessage requestOrigin = null)
|
||||
{
|
||||
var message = new OutboxMessage(
|
||||
apiKey,
|
||||
targetUserId,
|
||||
requestOrigin.PayloadType,
|
||||
JsonConvert.SerializeObject(response));
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
public TRequest GetRequestFromMessage(InboxMessage message)
|
||||
{
|
||||
var request = JsonConvert.DeserializeObject<TRequest>(message.Payload);
|
||||
return request;
|
||||
}
|
||||
|
||||
public TResponse GetResponseFromMessage(InboxMessage message)
|
||||
{
|
||||
var request = JsonConvert.DeserializeObject<TResponse>(message.Payload);
|
||||
return request;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user