public HandleContext(Aggregates.UnitOfWork.IDomain domain, Aggregates.UnitOfWork.IApplication app, IProcessor processor, IContainer container)
 {
     Domain    = domain;
     App       = app;
     Processor = processor;
     Container = container;
 }
        public static IFullEvent Event(IVersionRegistrar versionRegistry, Aggregates.UnitOfWork.IDomain uow, IEntity entity, IEvent @event)
        {
            var eventId = UnitOfWork.NextEventId(uow.CommitId);

            var newEvent = new FullEvent
            {
                Descriptor = new EventDescriptor
                {
                    EntityType = versionRegistry.GetVersionedName(entity.GetType()),
                    StreamType = StreamTypes.Domain,
                    Bucket     = entity.Bucket,
                    StreamId   = entity.Id,
                    Parents    = getParents(versionRegistry, entity),
                    Timestamp  = DateTime.UtcNow,
                    Version    = entity.StateVersion,
                    Headers    = new Dictionary <string, string>()
                    {
                        [$"{Defaults.PrefixHeader}.{Defaults.MessageIdHeader}"]     = eventId.ToString(),
                        [$"{Defaults.PrefixHeader}.{Defaults.CorrelationIdHeader}"] = uow.CommitId.ToString(),
                    }
                },
                EventId = eventId,
                Event   = @event
            };

            return(newEvent);
        }
示例#3
0
        public static IFullEvent OOBEvent(IVersionRegistrar versionRegistry, Aggregates.UnitOfWork.IDomain uow, IEntity entity, IEvent @event, string id, bool transient, int?daysToLive)
        {
            var eventId = Internal.UnitOfWork.NextEventId(uow.CommitId);

            var newEvent = new FullEvent
            {
                Descriptor = new EventDescriptor
                {
                    EntityType = versionRegistry.GetVersionedName(entity.GetType()),
                    StreamType = StreamTypes.OOB,
                    Bucket     = entity.Bucket,
                    StreamId   = entity.Id,
                    Parents    = getParents(versionRegistry, entity),
                    Timestamp  = DateTime.UtcNow,
                    Version    = entity.StateVersion,
                    Headers    = new Dictionary <string, string>()
                    {
                        [$"{Defaults.PrefixHeader}.{Defaults.MessageIdHeader}"]     = eventId.ToString(),
                        [$"{Defaults.PrefixHeader}.{Defaults.CorrelationIdHeader}"] = uow.CommitId.ToString(),
                        [Defaults.OobHeaderKey]     = id,
                        [Defaults.OobTransientKey]  = transient.ToString(),
                        [Defaults.OobDaysToLiveKey] = daysToLive.ToString()
                    }
                },
                EventId = eventId,
                Event   = @event
            };

            return(newEvent);
        }
示例#4
0
 public Mutator(Aggregates.UnitOfWork.IDomain uow)
 {
     _uow = uow;
 }