/// <summary> /// 获取学生作品路径。 /// </summary> /// <param name="store"></param> /// <param name="ls"></param> /// <param name="workFile"></param> /// <returns></returns> public string StudentWorkFilePath(LocalStudentWorkStore store, LocalStudent ls, LocalStudentWorkFile workFile) { if (store != null && ls != null && workFile != null) { string rootDir = store.RootDir(); if (!string.IsNullOrEmpty(rootDir) && Directory.Exists(rootDir)) { string dir = Path.GetFullPath(string.Format("{0}/{1}", rootDir, ls.StudentID)); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } return Path.GetFullPath(string.Format("{0}/{1}{2}", dir, workFile.FileID, workFile.FileExt)); } } return null; }
/// <summary> /// 恢复作业关联。 /// </summary> public static void RecoveryWorkAssociation(ref LocalStudentWorkStore store, string studentId) { if (store == null || store.Students == null || store.Students.Count == 0 || string.IsNullOrEmpty(studentId)) return; LocalStudent ls = store.Students[studentId]; if (ls == null || ls.HasWork()) return; string dir = Path.GetFullPath(string.Format("{0}/{1}", store.RootDir(), ls.StudentID)); if (!Directory.Exists(dir)) return; FileInfo[] files = new DirectoryInfo(dir).GetFiles(); if (files == null || files.Length == 0) return; ls.Work = new LocalStudentWork(); ls.Work.WorkID = Guid.NewGuid().ToString().Replace("-", ""); ls.Work.WorkName = store.CatalogName; ls.Work.UploadIP = "127.0.0.1"; ls.Work.Type = EnumWorkType.Public; ls.Work.Time = DateTime.Now; ls.Work.Status = EnumWorkStatus.Recive | EnumWorkStatus.Submit; ls.Work.Description = new CDATA(); ls.Work.WorkFiles = new LocalStudentWorkFiles(); for (int i = 0; i < files.Length; i++) { if (files[i].Exists) { LocalStudentWorkFile file = new LocalStudentWorkFile(); file.FileID = Path.GetFileNameWithoutExtension(files[i].Name); file.FileName = ls.Work.WorkName + "_" + (i + 1); file.FileExt = files[i].Extension; file.Size = files[i].Length; if (ls.Work.FileExt == null) ls.Work.FileExt = file.FileExt; else if (ls.Work.FileExt.IndexOf(file.FileExt) == -1) ls.Work.FileExt += string.Format("|{0}", file.FileExt); ls.Work.WorkFiles.Add(file); } } }