public StreamId(BucketId bucketId, AggregateType aggregateType, AggregateId aggregateId) { if (bucketId == null) { throw new ArgumentNullException(nameof(bucketId)); } if (aggregateType == null) { throw new ArgumentNullException(nameof(aggregateType)); } if (aggregateId == null) { throw new ArgumentNullException(nameof(aggregateId)); } BucketId = bucketId; AggregateType = aggregateType; AggregateId = aggregateId; Value = $"{bucketId.Value}^{aggregateType.Value}^{aggregateId.Value}"; }
public UnitOfWork( BucketId bucketId, IReadStreams readStreams, ICreateSessions createSessions, IWriteStreams writeStreams) { if (bucketId == null) { throw new ArgumentNullException(nameof(bucketId)); } _bucketId = bucketId; _createSessions = createSessions; _writeStreams = writeStreams; _readStreams = readStreams; _aggregates = new Dictionary <StreamId, IFlushEvents>(StreamIdEqualityComparer.Instance); _aggregatesLock = new object(); _identities = this as IGenerateIdentities ?? new GuidCombGenerator(new UtcDateTimeProvider()); _streamIdentities = this as ICreateStreamIdentities ?? new DefaultStreamIdentityFactory(); }
public StreamId Create <TId>(BucketId bucketId, TId id, Type type) { if (bucketId == null) { throw new ArgumentNullException(nameof(bucketId)); } if (id.IsNullOrEmpty()) { throw new ArgumentOutOfRangeException(nameof(id)); } if (type == null) { throw new ArgumentNullException(nameof(type)); } var aggregateType = new AggregateType(type.Name); var aggregateId = new AggregateId($"{id}"); return(new StreamId(bucketId, aggregateType, aggregateId)); }