Ejemplo n.º 1
0
 public BackupUtility(ref IReliableStateManager stateManager, BackupConfig config, ElapsedEventHandler callback)
 {
     _stateManager = stateManager;
     _backupConfig = config;
     _timer = new Timer();
     _timer.Elapsed += callback;
     _timer.Interval = _backupConfig.BackupInterval;
 }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public void UpdateBackupConfig(BackupConfig config)
 {
     _backupConfig = config;
 }