// [HttpPost]
        public async Task <ActionResult> Backup_Fmt(string id, string format = "json")
        {
            var bk = await BackupsManager.BackupDatabase(
                GetBackupsConnectionString(),
                id,
                Logger
                );

            if (string.IsNullOrWhiteSpace(format))
            {
                return(HttpNotAcceptable(__("No format specified")));
            }

            if (!IsDatabaseAuthorized(User, id))
            {
                return(HttpNotAuthorized());
            }

            if (bk == null)
            {
                return(HttpNotFound(string.Format(__("Unable to create database backup for '{0}'"), id)));
            }

            // Zip hook, direct backup and return result
            if (format.ToLowerInvariant() == @"zip")
            {
                var path     = bk.Path;
                var fileName = Path.GetFileName(path);

                return(File(path, "application/zip", fileName));
            }

            return(FormatResult(format, bk));
        }
        public async Task <ActionResult> Backup(string id)
        {
            if (!IsDatabaseAuthorized(User, id))
            {
                AddFlashMessage(MessageUnauthorizedDatabase, FlashMessageType.Error);
                return(RedirectToAction("Index"));
            }

            var bk = await BackupsManager.BackupDatabase(
                GetBackupsConnectionString(),
                id,
                Logger
                );

            if (bk == null)
            {
                return(HttpNotFound(string.Format(__("Unable to create database backup for '{0}'"), id)));
            }

            return(PartialView("_BackupItem", bk));
        }