예제 #1
0
        private async Task SendToAll(long id)
        {
            using var conn = new NpgsqlConnection(_connectionString);
            await conn.OpenAsync();

            var result = await conn.GetAsync(id);

            EventChannel.Publish(result);

            await conn.CloseAsync();
        }
예제 #2
0
        private void SendToAll(JsonDocument jsonDocument)
        {
            var aggregateId = jsonDocument.RootElement.GetProperty("AggregateId").GetGuid();
            var eventType   = jsonDocument.RootElement.GetProperty("EventType").GetString();
            var id          = jsonDocument.RootElement.GetProperty("Id").GetInt64();
            var timeStamp   = InstantPattern.General.Parse(jsonDocument.RootElement.GetProperty("Timestamp").GetString()).Value;
            var version     = jsonDocument.RootElement.GetProperty("Version").GetInt32();
            var payload     = jsonDocument.RootElement.GetProperty("Payload").GetBytesFromBase64();
            var metadata    = jsonDocument.RootElement.GetProperty("Metadata").GetBytesFromBase64();

            var result = new PersistedEvent
            {
                AggregateId = aggregateId,
                EventType   = eventType,
                Id          = id,
                Metadata    = metadata,
                Payload     = payload,
                Timestamp   = timeStamp,
                Version     = version
            };

            EventChannel.Publish(result);
        }