/// <summary> /// Xảy ra khi công việc hoàn thành /// </summary> /// <param name="Data">Dữ liệu đầu vào</param> private void CallBack(object Data, WorkExcuter.Work work) { DBDataContext db = new DBDataContext(); if (!Directorys.IsFileExited()) { db.BackUpDB(Directorys.GetBackupPath()); } //Thay thế Work đã được thực thi bằng work mới nếu repeat true if (_Repeat) { for (int i = 0; i < 7; i++) { if (Works[i] == work.WorkID) { DateTime NextTime = work.Time.AddDays(7); Works[i] = WorkExcuter.WorksManager.GetNewWork(NextTime, new WorkExcuter.CallBackDlg(CallBack), new WorkExcuter.CallBackDlg(OnNotExcuted), NextTime, false).WorkID; } } } else // Không repeat, chạy xong rồi thì nhờ class thông báo rằng mình đã xong việc { if (AScheduleDone != null) { AScheduleDone(this, new EventArgs()); } } }
public void BackUp() { if (!Directorys.IsFileExited()) { db.BackUpDB(Directorys.GetBackupPath()); RefreshList(); } }
private Directorys MakeTree(string root) { // нужно заполнить дерево. (пока возвращает все.) Directorys curDir = new Directorys(); curDir.path = root; curDir.files = new List <string>(); curDir.filesRights = new List <string[]>(); WatchingFileRights wfr = new WatchingFileRights(); string[] curFiles = Directory.GetFiles(root, "*txt"); for (int i = 0; i < curFiles.Length; i++) { if (wfr.FileAllowedForUser(currentUser, curFiles[i])) { curDir.files.Add(curFiles[i]); } string[] tmp = wfr.AllowedUserList(curFiles[i]); if (tmp != null) { string[] tmp2 = new string[tmp.Length + 1]; tmp2[0] = curFiles[i]; for (int a = 0; a < tmp.Length; a++) { tmp2[a + 1] = tmp[a]; } // тут проверим доступен ли этот файл текущему пользователю if (wfr.FileAllowedForUser(currentUser, tmp2[0])) { curDir.filesRights.Add(tmp2); } } } string[] curDirs = Directory.GetDirectories(root); curDir.subdirectorys = new List <Directorys>(); for (int i = 0; i < curDirs.Length; i++) { curDir.subdirectorys.Add(MakeTree(curDirs[i])); } return(curDir); }
private void Traverse(DirectoryInfo d) { //Console.WriteLine($"traversing -> {d.Name}"); if (d.GetFiles().Any(f => f.Name.Contains(@"packages.config"))) { Directorys.Add(d); } foreach (var s in d.GetDirectories()) { Traverse(s); } }
private void FillTreeList(Directorys listtree) { // заполнить List<string> tree из FileTree files; for (int i = 0; i < listtree.subdirectorys.Count; i++) { tree.Add(listtree.subdirectorys[i].path); } for (int i = 0; i < listtree.files.Count; i++) { tree.Add(listtree.files[i]); } for (int i = 0; i < listtree.subdirectorys.Count; i++) { FillTreeList(listtree.subdirectorys[i]); } }