public void ApplyBackup(IStoreBackup backupToApply, RestoreStrategy strategy = RestoreStrategy.Overwrite, IKVLogger logger = null) { lock (GetLockObject()) { foreach (var row in backupToApply) { this[row.Key] = new MemoryStorageRow(row); } } }
public void ApplyBackup(IStoreBackup backupToApply, RestoreStrategy strategy = RestoreStrategy.Overwrite, IKVLogger logger = null) { var localLogger = logger ?? new NullLogger(); if (_provider is IExportableStore) { (_provider as IExportableStore).ApplyBackup(backupToApply, strategy, localLogger); } else { foreach (var item in backupToApply) { if (strategy == RestoreStrategy.Overwrite) { _Set(item, localLogger); } else if (strategy == RestoreStrategy.KeepExisting) { var value = _provider.Get(item.Key); if (string.IsNullOrEmpty(value)) { _Set(item, localLogger); } } else if (strategy == RestoreStrategy.UseLatest) { DateTime?expiry = null; try { expiry = _provider.ExpiresOn(item.Key); } catch (NotImplementedException) { } if (expiry != null && item.Expiry == null) { _Set(item, localLogger); } if (expiry != null && item.Expiry != null && item.Expiry > expiry) { _Set(item, localLogger); } } } } }
public void ApplyBackup(IStoreBackup backupToApply, RestoreStrategy strategy = RestoreStrategy.Overwrite, IKVLogger logger = null) { _memoryBackingStore.ApplyBackup(backupToApply, strategy, logger); }
public void Migrate(RestoreStrategy strategy = RestoreStrategy.Overwrite) { var backup = _source.CreateBackup(() => new LazyStoreBackup(), _logger); _destination.ApplyBackup(backup, strategy, _logger); }