/// <summary>
        /// Initialize the MySqlAggregateSnapshotter with option setting.
        /// </summary>
        public static ENodeConfiguration InitializeMySqlAggregateSnapshotter(this ENodeConfiguration eNodeConfiguration,
                                                                             string connectionString,
                                                                             string tableName                     = "AggregateSnapshot",
                                                                             int tableCount                       = 1,
                                                                             int versionInterval                  = 50,
                                                                             int batchStoreIntervalSeconds        = 1000,
                                                                             int batchStoreMaximumCumulativeCount = 100
                                                                             )
        {
            eNodeConfiguration.InitializeAggregateSnapshotter(versionInterval, batchStoreIntervalSeconds, batchStoreMaximumCumulativeCount);

            var snapshotMySqlConfiguration = ObjectContainer.Resolve <ISnapshotMySqlConfiguration>();

            snapshotMySqlConfiguration.ConnectionString = connectionString;
            snapshotMySqlConfiguration.TableName        = tableName;
            snapshotMySqlConfiguration.TableCount       = tableCount;

            return(eNodeConfiguration);
        }
        /// <summary>
        /// Initialize the MongoDbAggregateSnapshotter with option setting.
        /// </summary>
        /// <param name="eNodeConfiguration"></param>
        /// <param name="mongoDbConfiguration"></param>
        /// <param name="storeEntityName"></param>
        /// <param name="collectionCount"></param>
        /// <returns></returns>
        public static ENodeConfiguration InitializeMongoDbAggregateSnapshotter(this ENodeConfiguration eNodeConfiguration,
                                                                               MongoDbConfiguration dbConfiguration,
                                                                               string storeEntityName               = "AggregateSnapshot",
                                                                               int collectionCount                  = 1,
                                                                               int versionInterval                  = 50,
                                                                               int batchStoreIntervalMilliseconds   = 1000,
                                                                               int batchStoreMaximumCumulativeCount = 100
                                                                               )
        {
            eNodeConfiguration.InitializeAggregateSnapshotter(versionInterval, batchStoreIntervalMilliseconds, batchStoreMaximumCumulativeCount);

            var mongoDbConfiguration = ObjectContainer.Resolve <ISnapshotMongoDbConfiguration>();

            mongoDbConfiguration.ConnectionString = dbConfiguration.ConnectionString;
            mongoDbConfiguration.DatabaseName     = dbConfiguration.DatabaseName;

            var collectionConfiguration = ObjectContainer.Resolve <ISnapshotCollectionConfiguration>();

            collectionConfiguration.EntityName = storeEntityName;
            collectionConfiguration.ShardCount = collectionCount;

            return(eNodeConfiguration);
        }