Line data Source code
1 : using System.Runtime.Serialization;
2 : using Cqrs.Events;
3 :
4 : namespace Cqrs.Azure.BlobStorage
5 : {
6 : public class EventDataTableEntity<TEventData>
7 : : TableEntity<TEventData>
8 : , IEventDataTableEntity<TEventData>
9 : where TEventData : EventData
10 0 : {
11 0 : public EventDataTableEntity(TEventData eventData, bool isCorrelationIdTableStorageStore = false)
12 : {
13 : PartitionKey = StorageStore<object, object>.GetSafeStorageKey(isCorrelationIdTableStorageStore ? eventData.CorrelationId.ToString("N") : eventData.AggregateId);
14 : RowKey = StorageStore<object, object>.GetSafeStorageKey(eventData.EventId.ToString("N"));
15 : _eventData = eventData;
16 : _eventDataContent = Serialise(EventData);
17 : }
18 :
19 0 : public EventDataTableEntity()
20 : {
21 : }
22 :
23 : private TEventData _eventData;
24 :
25 : [DataMember]
26 : public TEventData EventData
27 : {
28 : get { return _eventData; }
29 : set { _eventData = value; }
30 : }
31 :
32 : private string _eventDataContent;
33 :
34 : [DataMember]
35 : public string EventDataContent
36 : {
37 : get
38 : {
39 : return _eventDataContent;
40 : }
41 : set
42 : {
43 : _eventDataContent = value;
44 : _eventData = Deserialise(value);
45 : }
46 : }
47 : }
48 : }
|