/// <summary>Parameterized constructor.
 /// </summary>
 /// <param name="waitingCommandService"></param>
 /// <param name="aggregateRootTypeCodeProvider"></param>
 /// <param name="aggregateRootFactory"></param>
 /// <param name="eventStreamConvertService"></param>
 /// <param name="eventSourcingService"></param>
 /// <param name="memoryCache"></param>
 /// <param name="aggregateStorage"></param>
 /// <param name="retryCommandService"></param>
 /// <param name="eventStore"></param>
 /// <param name="eventPublisher"></param>
 /// <param name="actionExecutionService"></param>
 /// <param name="eventSynchronizerProvider"></param>
 /// <param name="loggerFactory"></param>
 public DefaultCommitEventService(
     IWaitingCommandService waitingCommandService,
     IAggregateRootTypeCodeProvider aggregateRootTypeCodeProvider,
     IAggregateRootFactory aggregateRootFactory,
     IEventStreamConvertService eventStreamConvertService,
     IEventSourcingService eventSourcingService,
     IMemoryCache memoryCache,
     IAggregateStorage aggregateStorage,
     IRetryCommandService retryCommandService,
     IEventStore eventStore,
     IEventPublisher eventPublisher,
     IActionExecutionService actionExecutionService,
     IEventSynchronizerProvider eventSynchronizerProvider,
     ILoggerFactory loggerFactory)
 {
     _waitingCommandService = waitingCommandService;
     _aggregateRootTypeCodeProvider = aggregateRootTypeCodeProvider;
     _aggregateRootFactory = aggregateRootFactory;
     _eventStreamConvertService = eventStreamConvertService;
     _eventSourcingService = eventSourcingService;
     _memoryCache = memoryCache;
     _aggregateStorage = aggregateStorage;
     _retryCommandService = retryCommandService;
     _eventStore = eventStore;
     _eventPublisher = eventPublisher;
     _actionExecutionService = actionExecutionService;
     _eventSynchronizerProvider = eventSynchronizerProvider;
     _logger = loggerFactory.Create(GetType().Name);
 }
 /// <summary>Parameterized constructor.
 /// </summary>
 /// <param name="aggregateRootFactory"></param>
 /// <param name="eventStreamConvertService"></param>
 /// <param name="eventSourcingService"></param>
 /// <param name="eventStore"></param>
 /// <param name="snapshotStore"></param>
 /// <param name="aggregateRootTypeCodeProvider"></param>
 public EventSourcingAggregateStorage(
     IAggregateRootFactory aggregateRootFactory,
     IEventStreamConvertService eventStreamConvertService,
     IEventSourcingService eventSourcingService,
     IEventStore eventStore,
     ISnapshotStore snapshotStore,
     IAggregateRootTypeCodeProvider aggregateRootTypeCodeProvider)
 {
     _aggregateRootFactory = aggregateRootFactory;
     _eventStreamConvertService = eventStreamConvertService;
     _eventSourcingService = eventSourcingService;
     _eventStore = eventStore;
     _snapshotStore = snapshotStore;
     _aggregateRootTypeCodeProvider = aggregateRootTypeCodeProvider;
 }
 /// <summary>Parameterized constructor.
 /// </summary>
 /// <param name="waitingCommandCache"></param>
 /// <param name="commandHandlerProvider"></param>
 /// <param name="aggregateRootTypeProvider"></param>
 /// <param name="commitEventService"></param>
 /// <param name="actionExecutionService"></param>
 /// <param name="loggerFactory"></param>
 public DefaultCommandExecutor(
     IWaitingCommandCache waitingCommandCache,
     ICommandHandlerProvider commandHandlerProvider,
     IAggregateRootTypeCodeProvider aggregateRootTypeProvider,
     ICommitEventService commitEventService,
     IActionExecutionService actionExecutionService,
     ILoggerFactory loggerFactory)
 {
     _waitingCommandCache = waitingCommandCache;
     _commandHandlerProvider = commandHandlerProvider;
     _aggregateRootTypeProvider = aggregateRootTypeProvider;
     _commitEventService = commitEventService;
     _actionExecutionService = actionExecutionService;
     _logger = loggerFactory.Create(GetType().Name);
     _commitEventService.SetCommandExecutor(this);
 }
 /// <summary>Parameterized constructor.
 /// </summary>
 /// <param name="aggregateRootFactory"></param>
 /// <param name="aggregateRootTypeCodeProvider"></param>
 /// <param name="binarySerializer"></param>
 public DefaultSnapshotter(IAggregateRootFactory aggregateRootFactory, IAggregateRootTypeCodeProvider aggregateRootTypeCodeProvider, IBinarySerializer binarySerializer)
 {
     _aggregateRootFactory = aggregateRootFactory;
     _aggregateRootTypeCodeProvider = aggregateRootTypeCodeProvider;
     _binarySerializer = binarySerializer;
 }