private AccountDomainEvent ConvertEventDataToAccountDomainEvent(ResolvedEvent resolvedEvent)
        {
            var metadataString = Encoding.UTF8.GetString(resolvedEvent.Event.Metadata);

            var metadata = JsonConvert.DeserializeObject <DomainMetadata>(metadataString, _jsonSerializerSettings);

            if (metadata?.Schema == AccountSchema.SchemaName)
            {
                var eventType = _readSchema.GetDomainEventType(resolvedEvent.Event.EventType);

                if (eventType == null)
                {
                    return(null);
                }

                var eventString  = Encoding.UTF8.GetString(resolvedEvent.Event.Data);
                var accountEvent = (AccountDomainEvent)JsonConvert.DeserializeObject(eventString, eventType, _jsonSerializerSettings);
                accountEvent.StreamId = metadata.StreamId;
                accountEvent.Version  = metadata.Version;

                return(accountEvent);
            }

            return(null);
        }
예제 #2
0
        private static AccountDomainEvent ConvertEventDataToAccountDomainEvent(ResolvedEvent resolvedEvent)
        {
            var metadataString = Encoding.UTF8.GetString(resolvedEvent.Event.Metadata);
            var eventString    = Encoding.UTF8.GetString(resolvedEvent.Event.Data);

            //var metadata = new DomainMetaDataWrapper(metadataString);
            var metadata = JsonConvert.DeserializeObject <DomainMetadata>(metadataString, _jsonSerializerSettings);

            var eventType = _readSchema.GetDomainEventType(resolvedEvent.Event.EventType);

            var domainEvent = (IDomainEvent)JsonConvert.DeserializeObject(eventString, eventType, _jsonSerializerSettings);

            domainEvent.StreamId = metadata.StreamId;
            domainEvent.Version  = metadata.Version;

            return((AccountDomainEvent)domainEvent);
        }