Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="cdmdotnet Limited">
4 : // // Copyright cdmdotnet Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using Cqrs.Commands;
10 : using Cqrs.Events;
11 : using Newtonsoft.Json;
12 :
13 : namespace Cqrs.Azure.ServiceBus
14 : {
15 : public class MessageSerialiser<TAuthenticationToken> : IMessageSerialiser<TAuthenticationToken>
16 0 : {
17 : public static JsonSerializerSettings DefaultSettings { get; private set; }
18 :
19 : static MessageSerialiser()
20 : {
21 : DefaultSettings = DefaultJsonSerializerSettings.DefaultSettings;
22 : }
23 :
24 0 : public string SerialiseEvent<TEvent>(TEvent @event)
25 : where TEvent : IEvent<TAuthenticationToken>
26 : {
27 : return JsonConvert.SerializeObject(@event, GetSerialisationSettings());
28 : }
29 :
30 0 : public string SerialiseCommand<TCommand>(TCommand command) where TCommand : ICommand<TAuthenticationToken>
31 : {
32 : return JsonConvert.SerializeObject(command, GetSerialisationSettings());
33 : }
34 :
35 0 : public IEvent<TAuthenticationToken> DeserialiseEvent(string @event)
36 : {
37 : return JsonConvert.DeserializeObject<IEvent<TAuthenticationToken>>(@event, GetSerialisationSettings());
38 : }
39 :
40 0 : public ICommand<TAuthenticationToken> DeserialiseCommand(string @event)
41 : {
42 : return JsonConvert.DeserializeObject<ICommand<TAuthenticationToken>>(@event, GetSerialisationSettings());
43 : }
44 :
45 0 : protected virtual JsonSerializerSettings GetSerialisationSettings()
46 : {
47 : return DefaultSettings;
48 : }
49 : }
50 : }
|