public BackupUtility(ref IReliableStateManager stateManager, BackupConfig config, ElapsedEventHandler callback) { _stateManager = stateManager; _backupConfig = config; _timer = new Timer(); _timer.Elapsed += callback; _timer.Interval = _backupConfig.BackupInterval; }
private CloudBlockBlob getBlockBlob(BackupConfig config) { var connectionString = ConfigurationManager.ConnectionStrings[config.BlobStorageKey].ConnectionString; var containerName = ConfigurationManager.AppSettings[config.ContainerName]; var blobName = ConfigurationManager.AppSettings[config.BlobName]; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(containerName); CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName); return blockBlob; }
public Task<bool> RestoreFromBackup(string localFilePath, BackupConfig restoreConfig) { var success = true; try { var blob = getBlockBlob(restoreConfig); using (var fileStream = System.IO.File.OpenWrite(localFilePath)) { blockBlob.DownloadToStream(fileStream); } await this.StateManager.RestoreAsync(Directory.GetParent(filePath)); } catch(Exception ex) { ServiceEventSource.Current.Message("ERROR: {0}", ex); success = false; } return Task.FromResult(success); }
public void UpdateBackupConfig(BackupConfig config) { _backupConfig = config; }