public MongoDbStorageEngine(MongoDbStorageEngineConfiguration config, ILogger logger) : base(config.ConnectionString, config.Database)
 {
     Configuration                = config;
     Logger                       = logger;
     RecordCollection             = Database.GetCollection <MongoDbRecord>("records");
     TransactionCollection        = Database.GetCollection <MongoDbTransaction>("transactions");
     PendingTransactionCollection = Database.GetCollection <MongoDbPendingTransaction>("pending_transactions");
 }
        public async Task Initialize(IServiceProvider serviceProvider, IConfigurationSection configuration)
        {
            config = new MongoDbStorageEngineConfiguration
            {
                ConnectionString = configuration["connection_string"],
                Database         = configuration["database"] ?? "tedchain",
                ReadRetryCount   = 10,
                ReadLoopDelay    = TimeSpan.FromMilliseconds(50)
            };
            var s = configuration["stale_transaction_delay"] ?? "00:01:00";

            config.StaleTransactionDelay = TimeSpan.Parse(s);
            using (var m = new MongoDbStorageEngine(config, serviceProvider.GetRequiredService <ILogger>()))
            {
                await m.CreateIndexes();
            }
        }
 public MongoDbLedger(MongoDbStorageEngineConfiguration config, ILogger logger) : base(config, logger)
 {
 }