private void PercolateModified(CFile file, DateTime mod) { if (file != null && file.FullPath != @"c:\") { file.FileModified = mod; m_dp.SyncFile(file); //Check special directories if (file.SpecType == CFile.SpecialType.SUBMISSION) { Submissions subda = new Submissions(Globals.CurrentIdentity); Components.Submission sub = subda.GetInfoByDirectoryID(file.ID); if (sub != null) { //Check to see if a staff member modded CourseRole role = new Courses(Globals.CurrentIdentity).GetRole( m_ident.Name, new Assignments(Globals.CurrentIdentity).GetInfo(sub.AsstID).CourseID, null); //Student mods update the submission time, staff mods don't... if (!role.Staff) { sub.Creation = mod; sub.Status = Components.Submission.UNGRADED; subda.Update(sub, new EmptySource()); //Log this in sub log new Activities(m_ident).Create(m_ident.Name, Activity.SUBMISSION, sub.ID, "Updated submission time due to student modification of files"); } } } else if (file.SpecType == CFile.SpecialType.TEST) { Evaluations evalda = new Evaluations(Globals.CurrentIdentity); AutoEvaluation eval = evalda.GetAutoInfoByZone(file.ID); if (eval != null) { eval.ZoneModified = mod; evalda.UpdateAuto(eval, new EmptySource()); } } CFile par = GetFile(file.Path); PercolateModified(par, mod); } }