Example #1
0
        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;
        }
Example #3
0
        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));
 }