public DefaultProcessingCommandHandler(
     IJsonSerializer jsonSerializer,
     IEventStore eventStore,
     IMemoryCache memoryCache,
     ICommandHandlerProvider commandHandlerProvider,
     ICommandAsyncHandlerProvider commandAsyncHandlerProvider,
     ITypeNameProvider typeNameProvider,
     IEventCommittingService eventService,
     IMessagePublisher <IApplicationMessage> applicationMessagePublisher,
     IMessagePublisher <IPublishableException> exceptionPublisher,
     IOHelper ioHelper,
     ILoggerFactory loggerFactory,
     ITimeProvider timeProvider)
 {
     _jsonSerializer              = jsonSerializer;
     _eventStore                  = eventStore;
     _memoryCache                 = memoryCache;
     _commandHandlerProvider      = commandHandlerProvider;
     _commandAsyncHandlerProvider = commandAsyncHandlerProvider;
     _typeNameProvider            = typeNameProvider;
     _eventService                = eventService;
     _applicationMessagePublisher = applicationMessagePublisher;
     _exceptionPublisher          = exceptionPublisher;
     _ioHelper     = ioHelper;
     _logger       = loggerFactory.Create(GetType().FullName);
     _timeProvider = timeProvider;
 }
示例#2
0
 public DefaultMemoryCache(ITypeNameProvider typeNameProvider, IAggregateStorage aggregateStorage, ILoggerFactory loggerFactory)
 {
     _aggregateRootInfoDict = new ConcurrentDictionary <string, AggregateCacheInfo>();
     _typeNameProvider      = typeNameProvider;
     _aggregateStorage      = aggregateStorage;
     _logger = loggerFactory.Create(GetType().FullName);
 }
 public AggregateSnapshotter_Tests()
 {
     _aggregateSnapshotSaver = ObjectContainer.Resolve <IAggregateSnapshotSaver>();
     _aggregateSnapshotStore = ObjectContainer.Resolve <IAggregateSnapshotStore>();
     _aggregateSnapshotter   = ObjectContainer.Resolve <IAggregateSnapshotter>();
     _typeNameProvider       = ObjectContainer.Resolve <ITypeNameProvider>();
 }
        /// <summary>Default constructor.
        /// </summary>
        public MySqlCommandStore(OptionSetting optionSetting)
        {
            if (optionSetting != null)
            {
                _connectionString = optionSetting.GetOptionValue <string>("ConnectionString");
                _tableName        = optionSetting.GetOptionValue <string>("TableName");
                _uniqueIndexName  = optionSetting.GetOptionValue <string>("UniqueIndexName");
            }
            else
            {
                var setting = ENodeConfiguration.Instance.Setting.DefaultDBConfigurationSetting;
                _connectionString = setting.ConnectionString;
                _tableName        = setting.CommandTableName;
                _uniqueIndexName  = setting.CommandTableCommandIdUniqueIndexName;
            }

            Ensure.NotNull(_connectionString, "_connectionString");
            Ensure.NotNull(_tableName, "_tableName");
            Ensure.NotNull(_uniqueIndexName, "_uniqueIndexName");

            _jsonSerializer   = ObjectContainer.Resolve <IJsonSerializer>();
            _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
            _ioHelper         = ObjectContainer.Resolve <IOHelper>();
            _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
        }
示例#5
0
        public DefaultEventCommittingService(
            IJsonSerializer jsonSerializer,
            IScheduleService scheduleService,
            ITypeNameProvider typeNameProvider,
            IMemoryCache memoryCache,
            IAggregateRootFactory aggregateRootFactory,
            IAggregateStorage aggregateStorage,
            IEventStore eventStore,
            IMessagePublisher <DomainEventStreamMessage> domainEventPublisher,
            IOHelper ioHelper,
            ILoggerFactory loggerFactory)
        {
            _eventCommittingContextMailBoxList = new List <EventCommittingContextMailBox>();
            _ioHelper             = ioHelper;
            _jsonSerializer       = jsonSerializer;
            _scheduleService      = scheduleService;
            _typeNameProvider     = typeNameProvider;
            _memoryCache          = memoryCache;
            _aggregateRootFactory = aggregateRootFactory;
            _aggregateStorage     = aggregateStorage;
            _eventStore           = eventStore;
            _domainEventPublisher = domainEventPublisher;
            _logger            = loggerFactory.Create(GetType().FullName);
            _eventMailboxCount = ENodeConfiguration.Instance.Setting.EventMailBoxCount;
            _batchSize         = ENodeConfiguration.Instance.Setting.EventMailBoxPersistenceMaxBatchSize;

            for (var i = 0; i < _eventMailboxCount; i++)
            {
                _eventCommittingContextMailBoxList.Add(new EventCommittingContextMailBox(i, _batchSize, x => BatchPersistEventAsync(x, 0), _logger));
            }
        }
示例#6
0
 public DefaultEventService(
     IJsonSerializer jsonSerializer,
     IScheduleService scheduleService,
     ITypeNameProvider typeNameProvider,
     IMemoryCache memoryCache,
     IAggregateRootFactory aggregateRootFactory,
     IAggregateStorage aggregateStorage,
     IEventStore eventStore,
     IMessagePublisher<DomainEventStreamMessage> domainEventPublisher,
     IOHelper ioHelper,
     ILoggerFactory loggerFactory)
 {
     _eventMailboxDict = new ConcurrentDictionary<string, EventMailBox>();
     _ioHelper = ioHelper;
     _jsonSerializer = jsonSerializer;
     _scheduleService = scheduleService;
     _typeNameProvider = typeNameProvider;
     _memoryCache = memoryCache;
     _aggregateRootFactory = aggregateRootFactory;
     _aggregateStorage = aggregateStorage;
     _eventStore = eventStore;
     _domainEventPublisher = domainEventPublisher;
     _logger = loggerFactory.Create(GetType().FullName);
     _batchSize = ENodeConfiguration.Instance.Setting.EventMailBoxPersistenceMaxBatchSize;
 }
示例#7
0
 public DefaultEventService(
     IJsonSerializer jsonSerializer,
     IScheduleService scheduleService,
     ITypeNameProvider typeNameProvider,
     IMemoryCache memoryCache,
     IAggregateRootFactory aggregateRootFactory,
     IAggregateStorage aggregateStorage,
     IEventStore eventStore,
     IMessagePublisher <DomainEventStreamMessage> domainEventPublisher,
     IOHelper ioHelper,
     ILoggerFactory loggerFactory)
 {
     _mailboxDict          = new ConcurrentDictionary <string, EventMailBox>();
     _ioHelper             = ioHelper;
     _jsonSerializer       = jsonSerializer;
     _scheduleService      = scheduleService;
     _typeNameProvider     = typeNameProvider;
     _memoryCache          = memoryCache;
     _aggregateRootFactory = aggregateRootFactory;
     _aggregateStorage     = aggregateStorage;
     _eventStore           = eventStore;
     _domainEventPublisher = domainEventPublisher;
     _logger         = loggerFactory.Create(GetType().FullName);
     _batchSize      = ENodeConfiguration.Instance.Setting.EventMailBoxPersistenceMaxBatchSize;
     _timeoutSeconds = ENodeConfiguration.Instance.Setting.AggregateRootMaxInactiveSeconds;
     _taskName       = "CleanInactiveAggregates_" + DateTime.Now.Ticks + new Random().Next(10000);
 }
示例#8
0
        public MongoDbPublishedVersionStore_Tests()
        {
            var assemblies = new[] { Assembly.GetExecutingAssembly() };

            var enode = ECommonConfiguration.Create()
                        .UseAutofac()
                        .RegisterCommonComponents()
                        .UseLog4Net()
                        .UseJsonNet()
                        .CreateENode(new ConfigurationSetting())
                        .RegisterBusinessComponents(assemblies)
                        .RegisterENodeComponents()
                        .UseMongoDbPublishedVersionStore()
                        .UseMongoDbAggregateSnapshotter();

            enode.GetCommonConfiguration()
            .BuildContainer();

            enode.InitializeBusinessAssemblies(assemblies)
            .InitializeMongoDbPublishedVersionStore(_mongoDbConfiguration)
            .InitializeMongoDbAggregateSnapshotter(_mongoDbConfiguration);

            _store            = ObjectContainer.Resolve <IPublishedVersionStore>();
            _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
        }
示例#9
0
        /// <summary>Default constructor.
        /// </summary>
        public SqlServerCommandStore(OptionSetting optionSetting)
        {
            if (optionSetting != null)
            {
                _connectionString = optionSetting.GetOptionValue<string>("ConnectionString");
                _tableName = optionSetting.GetOptionValue<string>("TableName");
                _uniqueIndexName = optionSetting.GetOptionValue<string>("UniqueIndexName");
            }
            else
            {
                var setting = ENodeConfiguration.Instance.Setting.DefaultDBConfigurationSetting;
                _connectionString = setting.ConnectionString;
                _tableName = setting.CommandTableName;
                _uniqueIndexName = setting.CommandTableCommandIdUniqueIndexName;
            }

            Ensure.NotNull(_connectionString, "_connectionString");
            Ensure.NotNull(_tableName, "_tableName");
            Ensure.NotNull(_uniqueIndexName, "_uniqueIndexName");

            _jsonSerializer = ObjectContainer.Resolve<IJsonSerializer>();
            _typeNameProvider = ObjectContainer.Resolve<ITypeNameProvider>();
            _ioHelper = ObjectContainer.Resolve<IOHelper>();
            _logger = ObjectContainer.Resolve<ILoggerFactory>().Create(GetType().FullName);
        }
        public DefaultEventCommittingService(
            IJsonSerializer jsonSerializer,
            IScheduleService scheduleService,
            ITypeNameProvider typeNameProvider,
            IMemoryCache memoryCache,
            IAggregateRootFactory aggregateRootFactory,
            IAggregateStorage aggregateStorage,
            IEventStore eventStore,
            IMessagePublisher <DomainEventStreamMessage> domainEventPublisher,
            IOHelper ioHelper,
            ILoggerFactory loggerFactory)
        {
            _eventCommittingContextMailBoxList = new List <EventCommittingContextMailBox>();
            _ioHelper             = ioHelper;
            _jsonSerializer       = jsonSerializer;
            _scheduleService      = scheduleService;
            _typeNameProvider     = typeNameProvider;
            _memoryCache          = memoryCache;
            _aggregateRootFactory = aggregateRootFactory;
            _aggregateStorage     = aggregateStorage;
            _eventStore           = eventStore;
            _domainEventPublisher = domainEventPublisher;
            _logger            = loggerFactory.Create(GetType().FullName);
            _eventMailboxCount = ENodeConfiguration.Instance.Setting.EventMailBoxCount;
            _batchSize         = ENodeConfiguration.Instance.Setting.EventMailBoxPersistenceMaxBatchSize;
            _timeoutSeconds    = ENodeConfiguration.Instance.Setting.AggregateRootMaxInactiveSeconds;
            _taskName          = "CleanInactiveAggregates_" + DateTime.Now.Ticks + new Random().Next(10000);

            for (var i = 0; i < _eventMailboxCount; i++)
            {
                _eventCommittingContextMailBoxList.Add(new EventCommittingContextMailBox(i, _batchSize, BatchPersistEventCommittingContexts, _logger));
            }
        }
示例#11
0
 public ApplicationMessageConsumer InitializeENode()
 {
     _jsonSerializer    = ObjectContainer.Resolve <IJsonSerializer>();
     _messageDispatcher = ObjectContainer.Resolve <IMessageDispatcher>();
     _typeNameProvider  = ObjectContainer.Resolve <ITypeNameProvider>();
     _logger            = ObjectContainer.Resolve <ILoggerFactory>().Create(nameof(ApplicationMessageConsumer));
     return(this);
 }
示例#12
0
 public ApplicationMessageConsumer InitializeENode()
 {
     _jsonSerializer   = ObjectContainer.Resolve <IJsonSerializer>();
     _processor        = ObjectContainer.Resolve <IMessageProcessor <ProcessingApplicationMessage, IApplicationMessage> >();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
     _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     return(this);
 }
示例#13
0
 public DomainExceptionConsumer InitializeENode()
 {
     _jsonSerializer    = ObjectContainer.Resolve <IJsonSerializer>();
     _messageDispatcher = ObjectContainer.Resolve <IMessageDispatcher>();
     _typeNameProvider  = ObjectContainer.Resolve <ITypeNameProvider>();
     _logger            = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     return(this);
 }
示例#14
0
 public PublishableExceptionConsumer InitializeENode()
 {
     _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>();
     _publishableExceptionProcessor = ObjectContainer.Resolve <IMessageProcessor <ProcessingPublishableExceptionMessage, IPublishableException> >();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
     _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     return(this);
 }
示例#15
0
 public ApplicationMessagePublisher InitializeENode()
 {
     _jsonSerializer       = ObjectContainer.Resolve <IJsonSerializer>();
     _messageTopicProvider = ObjectContainer.Resolve <ITopicProvider <IApplicationMessage> >();
     _typeNameProvider     = ObjectContainer.Resolve <ITypeNameProvider>();
     _sendMessageService   = new SendQueueMessageService();
     return(this);
 }
 public PublishableExceptionPublisher(ProducerSetting setting = null)
 {
     _producer               = new Producer(setting);
     _jsonSerializer         = ObjectContainer.Resolve <IJsonSerializer>();
     _exceptionTopicProvider = ObjectContainer.Resolve <ITopicProvider <IPublishableException> >();
     _typeNameProvider       = ObjectContainer.Resolve <ITypeNameProvider>();
     _sendMessageService     = new SendQueueMessageService();
 }
示例#17
0
 public DomainExceptionPublisher InitializeENode()
 {
     _jsonSerializer         = ObjectContainer.Resolve <IJsonSerializer>();
     _exceptionTopicProvider = ObjectContainer.Resolve <ITopicProvider <IDomainException> >();
     _typeNameProvider       = ObjectContainer.Resolve <ITypeNameProvider>();
     _sendMessageService     = new SendQueueMessageService();
     return(this);
 }
示例#18
0
 public ApplicationMessagePublisher(ProducerSetting setting = null)
 {
     _producer             = new Producer(setting);
     _jsonSerializer       = ObjectContainer.Resolve <IJsonSerializer>();
     _messageTopicProvider = ObjectContainer.Resolve <ITopicProvider <IApplicationMessage> >();
     _typeNameProvider     = ObjectContainer.Resolve <ITypeNameProvider>();
     _sendMessageService   = new SendQueueMessageService();
 }
 public PublishableExceptionPublisher InitializeENode()
 {
     _jsonSerializer         = ObjectContainer.Resolve <IJsonSerializer>();
     _exceptionTopicProvider = ObjectContainer.Resolve <ITopicProvider <IPublishableException> >();
     _typeNameProvider       = ObjectContainer.Resolve <ITypeNameProvider>();
     _logger             = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     _sendMessageService = new SendQueueMessageService();
     return(this);
 }
示例#20
0
        /// <summary>Gets the C# friendly name of a type, if any.</summary>
        /// <param name="type">The type.</param>
        /// <param name="provider">The provider.</param>
        /// <returns>The type name.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="provider"/> is <see langword="null"/>.</exception>
        public static string GetFriendlyName(this Type source, ITypeNameProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            return(provider.GetTypeName(source));
        }
示例#21
0
 public DefaultMemoryCache(ITypeNameProvider typeNameProvider, IAggregateStorage aggregateStorage, IScheduleService scheduleService, ILoggerFactory loggerFactory)
 {
     _typeNameProvider = typeNameProvider;
     _aggregateStorage = aggregateStorage;
     _scheduleService  = scheduleService;
     _logger           = loggerFactory.Create(GetType().FullName);
     TimeoutSeconds    = ENodeConfiguration.Instance.Setting.AggregateRootMaxInactiveSeconds;
     _scheduleService.StartTask("RemoveExpiredAggregates", RemoveExpiredAggregates, 1000, ENodeConfiguration.Instance.Setting.ScanExpiredAggregateIntervalMilliseconds);
 }
示例#22
0
 public CommandService InitializeENode()
 {
     _jsonSerializer       = ObjectContainer.Resolve <IJsonSerializer>();
     _commandTopicProvider = ObjectContainer.Resolve <ITopicProvider <ICommand> >();
     _typeNameProvider     = ObjectContainer.Resolve <ITypeNameProvider>();
     _sendMessageService   = new SendQueueMessageService();
     _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     return(this);
 }
示例#23
0
 /// <summary>
 /// 聚合仓储基类,用于快照获取和生成
 /// </summary>
 /// <param name="eventStore"></param>
 /// <param name="typeNameProvider"></param>
 /// <param name="snapshotStore"></param>
 public DefaultAggregateSnapshotter(
     IEventStore eventStore,
     ITypeNameProvider typeNameProvider,
     IAggregateSnapshotStore snapshotStore)
 {
     _eventStore       = eventStore;
     _typeNameProvider = typeNameProvider;
     _binaryFormatter  = new BinaryFormatter();
     _snapshotStore    = snapshotStore;
 }
 public ApplicationMessageConsumer(string groupName = null, ConsumerSetting setting = null)
 {
     _consumer = new Consumer(groupName ?? DefaultMessageConsumerGroup, setting ?? new ConsumerSetting
     {
         MessageHandleMode = MessageHandleMode.Sequential
     });
     _jsonSerializer   = ObjectContainer.Resolve <IJsonSerializer>();
     _processor        = ObjectContainer.Resolve <IMessageProcessor <ProcessingApplicationMessage, IApplicationMessage, bool> >();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
 }
示例#25
0
 public CommandConsumer(string groupName = null, ConsumerSetting setting = null)
 {
     _consumer         = new Consumer(groupName ?? DefaultCommandConsumerGroup, setting);
     _sendReplyService = new SendReplyService();
     _jsonSerializer   = ObjectContainer.Resolve <IJsonSerializer>();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
     _processor        = ObjectContainer.Resolve <IMessageProcessor <ProcessingCommand, ICommand, CommandResult> >();
     _repository       = ObjectContainer.Resolve <IRepository>();
     _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
 }
 public ApplicationMessageConsumer(string groupName = null, ConsumerSetting setting = null)
 {
     _consumer = new Consumer(groupName ?? DefaultMessageConsumerGroup, setting ?? new ConsumerSetting
     {
         MessageHandleMode = MessageHandleMode.Sequential
     });
     _jsonSerializer = ObjectContainer.Resolve<IJsonSerializer>();
     _processor = ObjectContainer.Resolve<IMessageProcessor<ProcessingApplicationMessage, IApplicationMessage, bool>>();
     _typeNameProvider = ObjectContainer.Resolve<ITypeNameProvider>();
 }
示例#27
0
 public DefaultMemoryCache(IScheduleService scheduleService, ITypeNameProvider typeNameProvider, IAggregateStorage aggregateStorage, ILoggerFactory loggerFactory)
 {
     _scheduleService       = scheduleService;
     _aggregateRootInfoDict = new ConcurrentDictionary <string, AggregateCacheInfo>();
     _typeNameProvider      = typeNameProvider;
     _aggregateStorage      = aggregateStorage;
     _logger         = loggerFactory.Create(GetType().FullName);
     _timeoutSeconds = ENodeConfiguration.Instance.Setting.AggregateRootMaxInactiveSeconds;
     _taskName       = "CleanInactiveAggregates_" + DateTime.Now.Ticks + new Random().Next(10000);
 }
 public EventSourcingAggregateStorage(
     IAggregateRootFactory aggregateRootFactory,
     IEventStore eventStore,
     IAggregateSnapshotter aggregateSnapshotter,
     ITypeNameProvider typeNameProvider)
 {
     _aggregateRootFactory = aggregateRootFactory;
     _eventStore = eventStore;
     _aggregateSnapshotter = aggregateSnapshotter;
     _typeNameProvider = typeNameProvider;
 }
 public PublishableExceptionConsumer(string groupName = null, ConsumerSetting setting = null)
 {
     _consumer = new Consumer(groupName ?? DefaultExceptionConsumerGroup, setting ?? new ConsumerSetting
     {
         MessageHandleMode = MessageHandleMode.Sequential,
         ConsumeFromWhere = ConsumeFromWhere.FirstOffset
     });
     _jsonSerializer = ObjectContainer.Resolve<IJsonSerializer>();
     _publishableExceptionProcessor = ObjectContainer.Resolve<IMessageProcessor<ProcessingPublishableExceptionMessage, IPublishableException, bool>>();
     _typeNameProvider = ObjectContainer.Resolve<ITypeNameProvider>();
 }
示例#30
0
 public EventSourcingAggregateStorage(
     IAggregateRootFactory aggregateRootFactory,
     IEventStore eventStore,
     IAggregateSnapshotter aggregateSnapshotter,
     ITypeNameProvider typeNameProvider)
 {
     _aggregateRootFactory = aggregateRootFactory;
     _eventStore           = eventStore;
     _aggregateSnapshotter = aggregateSnapshotter;
     _typeNameProvider     = typeNameProvider;
 }
 public PublishableExceptionConsumer(string groupName = null, ConsumerSetting setting = null)
 {
     _consumer = new Consumer(groupName ?? DefaultExceptionConsumerGroup, setting ?? new ConsumerSetting
     {
         MessageHandleMode = MessageHandleMode.Sequential,
         ConsumeFromWhere  = ConsumeFromWhere.FirstOffset
     });
     _jsonSerializer = ObjectContainer.Resolve <IJsonSerializer>();
     _publishableExceptionProcessor = ObjectContainer.Resolve <IMessageProcessor <ProcessingPublishableExceptionMessage, IPublishableException, bool> >();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
 }
示例#32
0
 public CommandConsumer InitializeENode()
 {
     _sendReplyService = new SendReplyService("CommandConsumerSendReplyService");
     _jsonSerializer   = ObjectContainer.Resolve <IJsonSerializer>();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
     _commandProcessor = ObjectContainer.Resolve <ICommandProcessor>();
     _repository       = ObjectContainer.Resolve <IRepository>();
     _aggregateStorage = ObjectContainer.Resolve <IAggregateStorage>();
     _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     return(this);
 }
示例#33
0
 public ApplicationMessageConsumer(string groupName = null, ConsumerSetting setting = null)
 {
     _consumer = new Consumer(groupName ?? DefaultMessageConsumerGroup, setting ?? new ConsumerSetting
     {
         MessageHandleMode = MessageHandleMode.Sequential,
         ConsumeFromWhere  = ConsumeFromWhere.FirstOffset
     });
     _jsonSerializer   = ObjectContainer.Resolve <IJsonSerializer>();
     _processor        = ObjectContainer.Resolve <IMessageProcessor <ProcessingApplicationMessage, IApplicationMessage> >();
     _typeNameProvider = ObjectContainer.Resolve <ITypeNameProvider>();
     _logger           = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
 }
示例#34
0
 public CommandService(CommandResultProcessor commandResultProcessor = null, ProducerSetting setting = null)
 {
     _commandResultProcessor = commandResultProcessor;
     _producer                = new Producer(setting);
     _jsonSerializer          = ObjectContainer.Resolve <IJsonSerializer>();
     _commandTopicProvider    = ObjectContainer.Resolve <ITopicProvider <ICommand> >();
     _typeNameProvider        = ObjectContainer.Resolve <ITypeNameProvider>();
     _commandRouteKeyProvider = ObjectContainer.Resolve <ICommandRoutingKeyProvider>();
     _sendMessageService      = new SendQueueMessageService();
     _logger   = ObjectContainer.Resolve <ILoggerFactory>().Create(GetType().FullName);
     _ioHelper = ObjectContainer.Resolve <IOHelper>();
 }
示例#35
0
 public MySqlAggregateSnapshotter(
     ISnapshotRepository snapshotRepository,
     IAggregateSnapshotSerializer aggregateSnapshotSerializer,
     ILoggerFactory loggerFactory,
     ITypeNameProvider typeNameProvider
     )
 {
     _snapshotRepository          = snapshotRepository;
     _aggregateSnapshotSerializer = aggregateSnapshotSerializer;
     _logger           = loggerFactory.Create(GetType().FullName);
     _typeNameProvider = typeNameProvider;
 }
示例#36
0
 public CommandService(CommandResultProcessor commandResultProcessor = null, ProducerSetting setting = null)
 {
     _commandResultProcessor = commandResultProcessor;
     _producer = new Producer(setting);
     _jsonSerializer = ObjectContainer.Resolve<IJsonSerializer>();
     _commandTopicProvider = ObjectContainer.Resolve<ITopicProvider<ICommand>>();
     _typeNameProvider = ObjectContainer.Resolve<ITypeNameProvider>();
     _commandRouteKeyProvider = ObjectContainer.Resolve<ICommandRoutingKeyProvider>();
     _sendMessageService = new SendQueueMessageService();
     _logger = ObjectContainer.Resolve<ILoggerFactory>().Create(GetType().FullName);
     _ioHelper = ObjectContainer.Resolve<IOHelper>();
 }
示例#37
0
        /// <summary>Default constructor.
        /// </summary>
        public SqlServerCommandStore(OptionSetting optionSetting)
        {
            Ensure.NotNull(optionSetting, "optionSetting");

            _connectionString = optionSetting.GetOptionValue<string>("ConnectionString");
            _tableName = optionSetting.GetOptionValue<string>("TableName");
            _primaryKeyName = optionSetting.GetOptionValue<string>("PrimaryKeyName");

            Ensure.NotNull(_connectionString, "_connectionString");
            Ensure.NotNull(_tableName, "_tableName");
            Ensure.NotNull(_primaryKeyName, "_primaryKeyName");

            _jsonSerializer = ObjectContainer.Resolve<IJsonSerializer>();
            _typeNameProvider = ObjectContainer.Resolve<ITypeNameProvider>();
            _ioHelper = ObjectContainer.Resolve<IOHelper>();
            _logger = ObjectContainer.Resolve<ILoggerFactory>().Create(GetType().FullName);
        }
示例#38
0
        public DefaultEventService(
            IJsonSerializer jsonSerializer,
            IScheduleService scheduleService,
            ITypeNameProvider typeNameProvider,
            IMemoryCache memoryCache,
            IAggregateRootFactory aggregateRootFactory,
            IAggregateStorage aggregateStorage,
            IEventStore eventStore,
            IMessagePublisher<DomainEventStreamMessage> domainEventPublisher,
            IOHelper ioHelper,
            ILoggerFactory loggerFactory)
        {
            var setting = ENodeConfiguration.Instance.Setting;
            _enableGroupCommit = setting.EnableGroupCommitEvent;
            _groupCommitInterval = setting.GroupCommitEventIntervalMilliseconds;
            _groupCommitMaxSize = setting.GroupCommitMaxSize;
            _ioHelper = ioHelper;
            Ensure.Positive(_groupCommitInterval, "_groupCommitInterval");
            Ensure.Positive(_groupCommitMaxSize, "_groupCommitMaxSize");

            _toCommitContextQueue = new ConcurrentQueue<EventCommittingContext>();
            _successPersistedContextQueue = new BlockingCollection<IEnumerable<EventCommittingContext>>();
            _failedPersistedContextQueue = new BlockingCollection<IEnumerable<EventCommittingContext>>();

            _jsonSerializer = jsonSerializer;
            _scheduleService = scheduleService;
            _typeNameProvider = typeNameProvider;
            _memoryCache = memoryCache;
            _aggregateRootFactory = aggregateRootFactory;
            _aggregateStorage = aggregateStorage;
            _eventStore = eventStore;
            _domainEventPublisher = domainEventPublisher;
            _logger = loggerFactory.Create(GetType().FullName);
            _processSuccessPersistedEventsWorker = new Worker("ProcessSuccessPersistedEvents", ProcessSuccessPersistedEvents);
            _processFailedPersistedEventsWorker = new Worker("ProcessFailedPersistedEvents", ProcessFailedPersistedEvents);

            Start();
        }
示例#39
0
 public DefaultEventService(
     IJsonSerializer jsonSerializer,
     IScheduleService scheduleService,
     ITypeNameProvider typeNameProvider,
     IMemoryCache memoryCache,
     IAggregateRootFactory aggregateRootFactory,
     IAggregateStorage aggregateStorage,
     IEventStore eventStore,
     IMessagePublisher<DomainEventStreamMessage> domainEventPublisher,
     IOHelper ioHelper,
     ILoggerFactory loggerFactory)
 {
     _ioHelper = ioHelper;
     _jsonSerializer = jsonSerializer;
     _scheduleService = scheduleService;
     _typeNameProvider = typeNameProvider;
     _memoryCache = memoryCache;
     _aggregateRootFactory = aggregateRootFactory;
     _aggregateStorage = aggregateStorage;
     _eventStore = eventStore;
     _domainEventPublisher = domainEventPublisher;
     _logger = loggerFactory.Create(GetType().FullName);
 }