private void btnAdd_Click(object sender, EventArgs e) { Progress pro = new Progress(); // Dùng form frmProject chứ năng thêm frmAddProject add = new frmAddProject(); add.ShowDialog(); //Nếu cancel (project.a=idProject == null) thì return if (add.project.idProject == null) { return; } //gán giá trị cho progress pro.idProject = add.project.idProject; pro.Name = add.project.name; pro.listStudent = null; pro.dateStart = add.project.dateStart.Value; pro.finishTime = add.project.dateEnd.Value; pro.mark = 0; pro.submitTime = DateTime.Now.Date; pro.finished = false; //add progress ProgressController.AddProgress(pro); //add project ProjectController.AddProject(add.project); // Hiển thị lên listview ListViewItem proj = new ListViewItem(STT.ToString()); proj.SubItems.Add(new ListViewItem.ListViewSubItem(proj, add.project.idProject.ToString())); proj.SubItems.Add(new ListViewItem.ListViewSubItem(proj, add.project.name.ToString())); // listStudent string sStudent = ""; foreach (Student st in add.project.listStudent) { sStudent += st.name.ToString() + " "; } proj.SubItems.Add(new ListViewItem.ListViewSubItem(proj, sStudent)); // listInstructor string sInstructor = ""; foreach (Instructor gv in add.project.listInstructor) { sInstructor += gv.name.ToString() + " "; } proj.SubItems.Add(new ListViewItem.ListViewSubItem(proj, sInstructor)); proj.SubItems.Add(new ListViewItem.ListViewSubItem(proj, add.project.subject.ToString())); proj.SubItems.Add(new ListViewItem.ListViewSubItem(proj, add.project.course.ToString())); this.lstProject.Items.Add(proj); STT++; }
/// <summary> /// The Delete /// </summary> /// <param name="days">The days<see cref="int"/></param> /// <param name="path">The path<see cref="string"/></param> public void Delete(int days, string path) { MainWindow.BGThread = (new Thread(() => { var Progress = new ProgressController(); Progress.ShowProgressBar(); try { if (!Directory.Exists(path)) { throw new ArgumentNullException("path not exists", nameof(path)); } var dir = new DirectoryInfo(path); var FileList = dir.GetFiles(); int iCnt = 0; foreach (var file in FileList) { file.Refresh(); try { if (file.LastAccessTime <= DateTime.Now.AddDays(-days)) { Progress.AddLog("Deleting:" + file.Name); file.Delete(); iCnt += 1; } } catch (Exception) { Progress.AddLog("Error"); } Progress.AddProgress(1); } Progress.HideProgressBar(); } catch (Exception ex) { Progress.AddLog(ex.StackTrace); Progress.HideProgressBar("!Error!"); } })); MainWindow.BGThread.IsBackground = true; MainWindow.BGThread.Start(); }
/// <summary> /// The BackupFolder /// </summary> /// <param name="Name">The Name<see cref="string"/></param> /// <param name="path">The path<see cref="string[]"/></param> /// <param name="DeleteFile">The DeleteFile<see cref="bool"/></param> public void BackupFolder(string Name, string[] path, bool DeleteFile = true) { MainWindow.BGThread = (new Thread(() => { var Progress = new ProgressController(); Progress.ShowProgressBar(); try { if (!Directory.Exists(Anzu.Properties.Settings.Default.MainBackupFolder)) { System.Windows.MessageBox.Show("Backup folder not found on disk, set new folder in settings", "Error", MessageBoxButton.OK, MessageBoxImage.Error); throw new Exception("Backup folder not found on disk, set new folder in settings"); } string zipPath = Anzu.Properties.Settings.Default.MainBackupFolder + Name + " " + DateTime.Now.ToString("dd.MM.yyyy (hh-mm)") + ".zip"; Progress.AddLog("Backup to " + zipPath); var pathExists = path.Where(x => Directory.Exists(x)); if (pathExists.Count() < 1) { throw new ArgumentNullException("all path not exists", nameof(pathExists)); } using (ZipFile zip = new ZipFile()) { zip.CompressionLevel = GetComLvl(); zip.AlternateEncoding = Encoding.UTF8; zip.AlternateEncodingUsage = ZipOption.AsNecessary; zip.SaveProgress += (sender, e) => { switch (e.EventType) { case ZipProgressEventType.Saving_AfterRenameTempArchive: Progress.AddLog("Done"); Progress.AddLog("Archive size (byte):" + new FileInfo(e.ArchiveName).Length.ToString()); break; case ZipProgressEventType.Saving_BeforeWriteEntry: Progress.AddLog("Add:" + e.CurrentEntry.FileName); break; case ZipProgressEventType.Error_Saving: Progress.AddLog("Error " + e.CurrentEntry); DeleteFile = false; break; case ZipProgressEventType.Saving_AfterWriteEntry: Progress.SetMax(e.EntriesTotal); Progress.AddLog("Done:" + e.CurrentEntry.FileName); Progress.SetText(e.EntriesSaved + "/" + e.EntriesTotal); Progress.SetProgress(e.EntriesSaved); break; } }; foreach (var p in pathExists) { zip.AddDirectory(p, ""); } zip.Save(zipPath); } if (DeleteFile) { foreach (var p in pathExists) { var FileList = new DirectoryInfo(p).GetFiles(); var DirectoryList = new DirectoryInfo(p).GetDirectories(); Progress.AddLog("///Start delete file///"); foreach (var current in FileList) { try { Progress.AddLog(current.Name); Progress.AddProgress(1); if (current.FullName != zipPath) { current.Delete(); } } catch (Exception ex) { Progress.AddLog(ex.StackTrace); } } foreach (var current in DirectoryList) { try { Progress.AddLog(current.Name); Progress.AddProgress(1); current.Delete(true); } catch (Exception ex) { Progress.AddLog(ex.StackTrace); } } } } Progress.HideProgressBar(); } catch (Exception ex) { Progress.AddLog(ex.StackTrace); Progress.HideProgressBar("!Error!"); } })); MainWindow.BGThread.IsBackground = true; MainWindow.BGThread.Start(); }
/// <summary> /// The SortFolder /// </summary> /// <param name="DelFile">The DelFile<see cref="bool"/></param> /// <param name="SortExtension">The SortExtension<see cref="bool"/></param> /// <param name="path">The path<see cref="string"/></param> public void SortFolder(bool DelFile, bool SortExtension, string path) { MainWindow.BGThread = (new Thread(() => { var Progress = new ProgressController(); Progress.ShowProgressBar(); try { if (!Directory.Exists(path)) { throw new ArgumentNullException("path not exists", nameof(path)); } var dir = new DirectoryInfo(path); var FileList = dir.GetFiles(); Progress.SetMax(DelFile == true ? FileList.Length * 2 : FileList.Length); path += $"/Sort ({DateTime.Now.ToString("dd.MM.yyyy")})/"; if (!SortExtension) { foreach (var t in FileList) { try { Progress.AddLog("Sort:" + t.Name); Directory.CreateDirectory(path + TypeFiles.GetTypePath(t)); t.CopyTo(path + TypeFiles.GetTypePath(t) + t.Name, true); Progress.AddProgress(1); } catch (Exception ex) { Progress.AddLog("Error:" + t.Name); Progress.AddLog(ex.StackTrace.ToString()); Progress.AddProgress(1); } } } else { foreach (var t in FileList) { try { Progress.AddLog("Sort:" + t.Name); Directory.CreateDirectory(path + t.Extension.ToString().Replace(".", "")); t.CopyTo(path + t.Extension.ToString().Replace(".", "") + "/" + t.Name, true); Progress.AddProgress(1); } catch (Exception ex) { Progress.AddLog("Error:" + t.Name); Progress.AddLog(ex.StackTrace.ToString()); Progress.AddProgress(1); } } } if (DelFile) { foreach (FileInfo file in dir.GetFiles()) { try { file.Delete(); } catch (Exception ex) { Progress.AddLog("Error:" + file.Name); Progress.AddLog(ex.StackTrace.ToString()); } finally { Progress.AddProgress(1); } } } Progress.HideProgressBar(); } catch (Exception ex) { Progress.AddLog(ex.StackTrace); Progress.HideProgressBar("!Error!"); } })); MainWindow.BGThread.IsBackground = true; MainWindow.BGThread.Start(); }