public bool IsSameAs(EventData otherEvent) { var otherMeta = otherEvent.Meta; var otherData = otherEvent.Data; var meta = Meta; var data = Data; if (otherMeta.Count != meta.Count) return false; if (data.Length != otherData.Length) return false; foreach (var kvp in meta) { if (!otherMeta.ContainsKey(kvp.Key)) return false; if (otherMeta[kvp.Key] != kvp.Value) return false; } for (var index = 0; index < data.Length; index++) { if (data[index] != otherData[index]) return false; } return true; }
public DomainEvent Deserialize(EventData e) { var domainEvent = _cachedDomainEvents.GetOrAdd(e.GetGlobalSequenceNumber(), _ => _innerDomainEventSerializer.Deserialize(e)); return domainEvent; }
public DomainEvent Deserialize(EventData e) { var domainEvent = JsonConvert.DeserializeObject<DomainEvent>( Encoding.UTF8.GetString(e.Data), jsonSerializerSettings); Assign(domainEvent.Meta, e.Meta); return domainEvent; }
public DomainEvent Deserialize(EventData e) { using (var data = new MemoryStream(e.Data)) { var formatter = new BinaryFormatter(); var domainEvent = (DomainEvent) formatter.Deserialize(data); domainEvent.Meta = e.Meta; return domainEvent; } }
public DomainEvent Deserialize(EventData e) { var meta = e.Meta.Clone(); var text = DefaultEncoding.GetString(e.Data); try { var possiblyJObject = JsonConvert.DeserializeObject(text, Settings); if (possiblyJObject is JObject) { } var deserializedObject = (DomainEvent)possiblyJObject; deserializedObject.Meta = meta; return deserializedObject; } catch (Exception exception) { throw new SerializationException(string.Format("Could not deserialize JSON text '{0}' into proper DomainEvent! (headers: {1})", text, e.Meta), exception); } }
void AddToCache(EventData eventData, ConcurrentDictionary<long, CacheEntry<EventData>> eventsForThisAggregateRoot = null) { var aggregateRootId = eventData.GetAggregateRootId(); if (eventsForThisAggregateRoot == null) { eventsForThisAggregateRoot = GetEventsForThisAggregateRoot(aggregateRootId); } eventsForThisAggregateRoot.AddOrUpdate(eventData.GetSequenceNumber(), seqNo => new CacheEntry<EventData>(eventData), (seqNo, existing) => existing.MarkAsAccessed()); _eventsPerGlobalSequenceNumber.AddOrUpdate(eventData.GetGlobalSequenceNumber(), globSeqNo => new CacheEntry<EventData>(eventData), (globSeqNo, existing) => existing.MarkAsAccessed()); }
byte[] SerializeMetadata(EventData e) { return DefaultEncoding.GetBytes(_metadataSerializer.Serialize(e.Meta)); }