public OnlyOnceClientStoreMigrator(IClientStoreMigrator decorated, IClientStoreBaseliner baseliner, ISemaphoreFactory semaphoreFactory)
 {
     if (baseliner == null)
     {
         throw new ArgumentNullException(nameof(baseliner));
     }
     _decorated        = decorated ?? throw new ArgumentNullException(nameof(decorated));
     _semaphoreFactory = semaphoreFactory ?? throw new ArgumentNullException(nameof(semaphoreFactory));
     _semaphore        = _semaphoreFactory.CreateLock();
     _lazyBaseline     = new Lazy <Task <int?> >(baseliner.GetBaseline, LazyThreadSafetyMode.PublicationOnly);
     _runResult        = null;
 }
示例#2
0
 public ClientStoreMigrator(IEnumerable <IClientStoreMigrationStep> migrationSteps, IClientStoreBaseliner baseliner)
 {
     _migrationSteps = migrationSteps ?? throw new ArgumentNullException(nameof(migrationSteps));
     _baseliner      = baseliner ?? throw new ArgumentNullException(nameof(baseliner));
 }