using Newtonsoft.Json; namespace MessengerApi.Contracts.MessageParser { public class MessageParser : IMessageParser { 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(message.Payload); return request; } public TResponse GetResponseFromMessage(InboxMessage message) { var request = JsonConvert.DeserializeObject(message.Payload); return request; } } }