/// <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;
 }
Beispiel #2
0
        /// <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);
                }
            }
        }