Exemple #1
0
 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}";
 }
Exemple #2
0
 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));
        }