Пример #1
0
        public async Task Run()
        {
            var accountId     = Guid.NewGuid();
            var sessionId     = new SessionId($"{Guid.NewGuid()}");
            var aggregateType = new AggregateType("Account");
            var aggregateId   = new AggregateId($"{Guid.NewGuid()}");

            var streamId = new StreamId(_bucketId, aggregateType, aggregateId);
            var session  = _sessions.Create(
                streamId,
                sessionId,
                new[]
            {
                new Event(1, new AccountRegistered {
                    AccountId = accountId, Name = "MyAccount4"
                })
            });
            await _streams.Write(session);

            session = _sessions.Create(
                streamId,
                sessionId,
                new[]
            {
                new Event(2, new AccountNameCorrected {
                    AccountId = accountId, Name = "MyAccount4"
                })
            });
            try
            {
                await _streams.Write(session);
            }
            catch (StreamConcurrentWriteException e)
            {
                Debug.WriteLine($"{e}");
                return;
            }
            throw new Exception("Something went wrong...");
        }
Пример #2
0
 private async Task WriteStream(StreamId streamId, IEnumerable <Event> events, CancellationToken token)
 {
     var sessionId = new SessionId($"{_identities.Generate()}");
     var session   = _createSessions.Create(streamId, sessionId, events);
     await _writeStreams.Write(session, token);
 }