public void UnLockBackupFolder(BackupRestoreLog bk) { if (!string.IsNullOrEmpty(bk.LinkDatabase)) { Commons.Common.UnLockFolder(Path.GetDirectoryName(bk.LinkDatabase)); } if (!string.IsNullOrEmpty(bk.LinkDataNCC)) { Commons.Common.UnLockFolder(bk.LinkDataNCC); } }
public IHttpActionResult Restore(DataRestore dti) { var tempLog = db.BackupRestoreLogs.ToList(); BackupRestoreLog bkrs = new BackupRestoreLog(); bkrs.OriDisk = dti.bk.OriDisk; bkrs.TimeBackup = dti.bk.TimeBackup; bkrs.Type = 2; bkrs.UserName = HttpContext.Current.User.Identity.Name; bkrs.TimeRestore = DateTime.Now; if (dti.dtb) { if (!File.Exists(dti.bk.LinkDatabase)) { return(BadRequest("Tệp tin sao lưu cơ sở dữ liệu không tồn tại. Vui lòng kiểm tra lại!")); } ExeRestoreDatabase(dti.bk.LinkDatabase); ReSaveLog(tempLog); bkrs.LinkDatabase = dti.bk.LinkDatabase; } if (dti.hsncc) { if (!NormalizePath(dti.bk.LinkDataNCC).EndsWith("DataNCC")) { return(BadRequest("Đường dẫn đến dữ liệu Hồ sơ NCC không hợp lệ! Đường dẫn phải kết thúc bởi thư mục DataNCC")); } if (!Directory.Exists(dti.bk.LinkDataNCC)) { return(BadRequest("Thư mục sao lưu hồ sơ người có công không tồn tại. Vui lòng kiểm tra lại!")); } DirectoryInfo src = new DirectoryInfo(dti.bk.LinkDataNCC); DirectoryInfo des = new DirectoryInfo(folderNCC); fileCopy = 0; ExeRestoreDataNCC(src, des); bkrs.LinkDataNCC = dti.bk.LinkDataNCC; } db.BackupRestoreLogs.Add(bkrs); db.SaveChanges(); return(Ok(new { fileCopy })); }
public IHttpActionResult BackUp(string backupFolder, bool dtb, bool hsncc, bool IsLock) { //var timer = new Timer(); //timer.Elapsed += delegate { ExeBackupDatabase(backupFolder); }; //new ElapsedEventHandler(ExeBackupDatabase(backupFolder)); //timer.Interval = TimeSpan.FromMinutes(1).TotalMilliseconds; //timer.Enabled = true; //timer.Start(); BackupRestoreLog bkrs = new BackupRestoreLog(); bkrs.OriDisk = NormalizePath(backupFolder); bkrs.TimeBackup = DateTime.Now; bkrs.Type = 1; bkrs.UserName = HttpContext.Current.User.Identity.Name; if (dtb) { Commons.Common.UnLockFolder(Path.Combine(backupFolder, "Database")); bkrs.LinkDatabase = NormalizePath(ExeBackupDatabase(backupFolder)); } if (hsncc) { Commons.Common.UnLockFolder(Path.Combine(backupFolder, "DataNCC")); bkrs.LinkDataNCC = NormalizePath(ExeBackupDataNCC(backupFolder)); } db.BackupRestoreLogs.Add(bkrs); db.SaveChanges(); if (IsLock) { LockBackupFolder(bkrs); } // JobScheduler jb = new JobScheduler(); //JobScheduler.Start(); return(Ok(new { LinkDatabase = bkrs.LinkDatabase == null ? "---Không sao lưu---" : bkrs.LinkDatabase, bkrs.LinkDataNCC, fileCopy, fileDelete })); }
public void AutoBackUp() { string text = File.ReadAllText(Path.Combine(HttpRuntime.AppDomainAppPath, "BackupConfig.json")); var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <ModelConfigBackup>(text); if (obj != null) { if (obj.isActive) { File.AppendAllText(Path.Combine(HttpRuntime.AppDomainAppPath, "BackupLog.txt"), "Backup start at " + DateTime.Now.ToString("HH:mm dd/MM/yyyy") + Environment.NewLine); // GlobalHost.ConnectionManager.GetHubContext<HubStore.UserActivityHub>().Clients.All.receive(1, "Job1"); BackupRestoreLog bkrs = new BackupRestoreLog(); bkrs.OriDisk = NormalizePath(obj.Folder); bkrs.TimeBackup = DateTime.Now; bkrs.Type = 1; bkrs.UserName = "******"; if (obj.dtb) { Commons.Common.UnLockFolder(Path.Combine(obj.Folder, "Database")); bkrs.LinkDatabase = NormalizePath(ExeBackupDatabase(obj.Folder)); } if (obj.hsncc) { Commons.Common.UnLockFolder(Path.Combine(obj.Folder, "DataNCC")); bkrs.LinkDataNCC = NormalizePath(ExeBackupDataNCC(obj.Folder)); } db.BackupRestoreLogs.Add(bkrs); db.SaveChanges(); if (obj.IsLock) { LockBackupFolder(bkrs); } File.AppendAllText(Path.Combine(HttpRuntime.AppDomainAppPath, "BackupLog.txt"), "Backup end at " + DateTime.Now.ToString("HH:mm dd/MM/yyyy") + Environment.NewLine); } } }