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..."); }
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); }