public ActionResult Backup(BackupDatabaseDetails data) { if (!UserPermissions.Instance.UserSpecificPermissions[HttpContext.Request.LogonUserIdentity.Name.ToUpper()].BackupFromDatabaseServerList.Contains(data.SourceDatabaseServer)) { throw new Exception("You are unable to take backups from this server."); } if (data.IsOverride.HasValue && data.IsOverride.Value) { if (!UserPermissions.Instance.UserSpecificPermissions[HttpContext.Request.LogonUserIdentity.Name.ToUpper()].HasOverwriteBackupDestinationPermission) { throw new Exception("You do not have OverwriteBackupDestinationPermission."); } }else { dynamic serverObject = JValue.Parse(data.BackupServer); if (!UserPermissions.Instance.UserSpecificPermissions[HttpContext.Request.LogonUserIdentity.Name.ToUpper()].BackupToDatabaseServerList.Contains((string)serverObject.BackupDatabaseServer)) throw new Exception("You are unable to backup onto this server."); data.BackupDestinationPath = DatabaseServers.Instance.ItemsList.First(server => server.Name == (string)serverObject.BackupDatabaseServer).BackupDatabaseNetworkSharePath; } if (!ModelState.IsValid) { ViewBag.RestorePermissionServerList = GetBackupToPermissionServerList(); ViewBag.HasOverwriteBackupDestinationPermission = new Nullable<bool>(UserPermissions.Instance.UserSpecificPermissions[HttpContext.Request.LogonUserIdentity.Name.ToUpper()].HasOverwriteBackupDestinationPermission); return View("BackupGetDetails", data); } IBgTask task = new BackupDatabaseTask(data.SourceDatabaseServer, data.SourceDatabaseName, User.Identity.Name, data.BackupComment,Path.Combine(data.BackupDestinationPath, data.BackupFileName)); task.Start(); TaskContainer.Instance.AddTask(task); return RedirectToAction("GetProgress", "Task", new { taskGuid = task.ID }); }
public ActionResult BackupGetDetails(FormCollection data) { var model = new BackupDatabaseDetails() { SourceDatabaseName = data["Database"], SourceDatabaseServer = data["Server"], SourceDatabaseSizeGB = decimal.Parse(data["DatabaseSize"]) }; ViewBag.RestorePermissionServerList = GetBackupToPermissionServerList(); model.BackupServer = ((List<SelectListItem>)ViewBag.RestorePermissionServerList).Count > 0 ? ((List<SelectListItem>)ViewBag.RestorePermissionServerList)[0].Text: null; model.BackupDestinationPath = ((List<SelectListItem>)ViewBag.RestorePermissionServerList).Count > 0 ? ((dynamic)JValue.Parse(((List<SelectListItem>)ViewBag.RestorePermissionServerList)[0].Value)).BackupDatabaseNetworkSharePath : null; ViewBag.HasOverwriteBackupDestinationPermission = new Nullable<bool>(UserPermissions.Instance.UserSpecificPermissions[HttpContext.Request.LogonUserIdentity.Name.ToUpper()].HasOverwriteBackupDestinationPermission); return View(model); }