public void BackupDatabase(string fileName) { if (!this.IsValidRequest()) { this.Clients.Caller.getNotification(Warnings.AccessIsDenied, Warnings.AccessIsDenied); return; } if (string.IsNullOrWhiteSpace(fileName)) { this.Clients.Caller.backupFailed(Warnings.NoFileSpecified); return; } PostgreSQLServer server = new PostgreSQLServer(); server.DatabaseName = AppUsers.GetCurrentUserDB(); BackupAgent agent = new BackupAgent(server, fileName); agent.BackupFail += delegate(BackupProgressInfo info) { this.Clients.Caller.backupFailed(info.Message); }; agent.Progress += delegate(BackupProgressInfo info) { this.Clients.Caller.getNotification(info.Message); }; agent.BackupComplete += delegate { StringBuilder message = new StringBuilder(); message.Append(Labels.DatabaseBackupSuccessful); message.Append(" "); message.Append("<a href='"); message.Append( PageUtility.ResolveUrl(Path.Combine(server.DatabaseBackupDirectory, fileName + ".zip"))); message.Append("'"); message.Append(" target='_blank'>"); message.Append(Labels.ClickHereToDownload); message.Append("</a>"); this.Clients.Caller.backupCompleted(message.ToString()); }; try { agent.PerformBackup(); } catch (Exception ex) { this.Clients.Caller.backupFailed(ex.Message); } }
static void Main(string[] args) { BackupAgent.BackupAsync("UseDevelopmentStorage=true", 3).Wait(); }