/// <summary> /// Get the results for a rubric entry /// Direct Provider layer call /// </summary> public Result.ResultList GetResults(int rubID, int subID) { Result.ResultList ress = m_dp.GetRubricResults(rubID, subID, Result.SUBJ_TYPE); ress.AddRange(m_dp.GetRubricResults(rubID, subID, Result.AUTO_TYPE)); return(ress); }
private void DoDelete(int subID, int locid) { FileSystem fs = new FileSystem(m_ident); //Take results Results resultda = new Results(m_ident); Result.ResultList ress = GetResults(subID); foreach (Result res in ress) { resultda.Delete(res.ID); } //Take any tests queued AutoJobs jobda = new AutoJobs(m_ident); AutoJobTest.AutoJobTestList tests = jobda.GetSubTests(subID); foreach (AutoJobTest test in tests) { jobda.FinishTest(test); } //Take the submission record m_dp.DeleteSubmission(subID); //Take the files CFile subdir = fs.GetFile(locid); if (subdir != null) { fs.DeleteFile(subdir); } }
private void BindAuto(Rubric rub) { Rubrics rubda = new Rubrics(Globals.CurrentIdentity); Result.ResultList ress = rubda.GetResults(rub.ID, GetSubID()); lblEvalID.Text = rub.EvalID.ToString(); if (ress.Count == 0) { if (!IsStudent()) { mpViews.SelectedIndex = 2; } else { mpViews.SelectedIndex = 5; } } else { AutoResult res = ress[0] as AutoResult; XmlWizard xmlwiz = new XmlWizard(); xmlwiz.DisplayDivXslt(res.XmlResult, Path.Combine(Globals.WWWDirectory, "Xml/reshtml.xslt"), divAuto); mpViews.SelectedIndex = 3; } }
public static Result.ResultList <T> GetAll <T>(this ConcurrentDictionary <string, T> dict) { var list = dict.Select(e => e.Value); var results = new Result.ResultList <T>(list); return(results); }
private void BindSubj(Rubric rub) { Rubrics rubda = new Rubrics(Globals.CurrentIdentity); Result.ResultList ress = rubda.GetResults(rub.ID, GetSubID()); //Update the rubric ucRubric.UpdateRubric(); //Reset to 0 if page index greater than numpages if (dgResults.CurrentPageIndex >= dgResults.PageCount) { dgResults.CurrentPageIndex = 0; } dgResults.DataSource = ress; dgResults.DataBind(); if (!IsStudent()) { ddlCanned.Visible = true; lnkCreate.Visible = true; dgResults.Columns[0].Visible = true; dgResults.Columns[6].Visible = true; dgResults.Style["TOP"] = "58px"; CannedResponse.CannedResponseList cans = rubda.GetCannedResponses(rub.ID); ddlCanned.Items.Clear(); foreach (CannedResponse can in cans) { string canstr = can.Comment.Substring(0, Math.Min(80, can.Comment.Length)); if (canstr.Length == 80) { canstr += " ..."; } ListItem item = new ListItem(canstr, can.ID.ToString()); ddlCanned.Items.Add(item); } ddlCanned.Items.Add(new ListItem("Custom", "-1")); } else { ddlCanned.Visible = false; lnkCreate.Visible = false; dgResults.Columns[0].Visible = false; dgResults.Columns[6].Visible = false; lnkRefresh.Style["TOP"] = "0px"; imgRefresh.Style["TOP"] = "0px"; dgResults.Style["TOP"] = "20px"; } lblRubID.Text = rub.ID.ToString(); mpViews.SelectedIndex = 0; }
/// <summary> /// Get all results for a submission /// </summary> public Result.ResultList GetResults(int subID) { Result.ResultList ress = m_dp.GetSubmissionResults(subID, Result.AUTO_TYPE); ress.AddRange(m_dp.GetSubmissionResults(subID, Result.SUBJ_TYPE)); return(ress); }
/// <summary> /// Clear all results for a submission and rubric /// </summary> public bool ClearResults(int rubID, int subID) { Results resda = new Results(m_ident); Result.ResultList oldress = GetResults(rubID, subID); foreach (Result oldres in oldress) { resda.Delete(oldres.ID); } return(true); }
public static Result.ResultList <T> GetAll <T>(this ConcurrentDictionary <string, T> dict, Func <T, bool> criteria) { var list = dict.Select(e => e.Value); if (criteria != null) { list = list.Where(criteria); } var results = new Result.ResultList <T>(list); return(results); }
/// <summary> /// Get the lines affected by the result /// </summary> public Result.ResultList GetFileResults(int fileID) { //Postulate result list Result.ResultList ress = m_dp.GetFileSubjResults(fileID); //Fill in lines foreach (SubjResult res in ress) { m_dp.GetSubjResultLines(res); } return(ress); }
private string GetRubricPoints(Rubric rub, int subID) { Rubrics rubda = new Rubrics(Globals.CurrentIdentity); Result.ResultList ress = rubda.GetResults(rub.ID, subID); if (ress.Count == 0 && rub.EvalID >= 0) { return("??"); } else { return(rubda.GetPoints(rub.ID, subID).ToString()); } }
/// <summary> /// Get the results of a competitive evaluation /// </summary> public Result.ResultList GetCompetitionResults(int evalID, out Hashtable subhash) { subhash = new Hashtable(); Evaluation eval = GetInfo(evalID); int rubID = GetRubric(evalID).ID; //Get all results for the evaluation Result.ResultList ress = new Rubrics(m_ident).GetResults(rubID); //Get all subs for the assignment Components.Submission.SubmissionList subs = new Assignments(m_ident).GetSubmissions(eval.AsstID); //Load unique subs into hash table Principals prinda = new Principals(m_ident); foreach (Components.Submission sub in subs) { if (!subhash.Contains(sub.PrincipalID) && prinda.GetLatestSubmission(sub.PrincipalID, eval.AsstID).ID == sub.ID) { subhash[sub.PrincipalID] = sub; } } Components.Submission[] usubs = new Components.Submission[subhash.Count]; subhash.Values.CopyTo(usubs, 0); subhash.Clear(); foreach (Components.Submission sub in usubs) { subhash[sub.ID] = sub; } //Run through results and delete any repetitive ones Result.ResultList fress = new Result.ResultList(); foreach (Result res in ress) { if (((AutoResult)res).Success != AutoResult.CRITICALLYFLAWED && ((AutoResult)res).Success != AutoResult.DEPFAIL && subhash.Contains(res.SubmissionID)) { fress.Add(res); } } //Sort by competitive score fress.Sort(new CompResultComparer()); return(fress); }
/// <summary> /// Create a auto result. /// </summary> public bool CreateAuto(int evalID, string grader, int subID, string result) { //Check permission Submissions subac = new Submissions(m_ident); Components.Submission sub = subac.GetInfo(subID); Assignment asst = new Assignments(m_ident).GetInfo(sub.AsstID); Authorize(asst.CourseID, "createauto", asst.ID, null); AutoResult res = new AutoResult(); res.EvalID = evalID; res.Grader = grader; res.SubmissionID = subID; res.XmlResult = result; //Clear out all results for this evaluation Submission.SubmissionList subs = new Principals(m_ident).GetSubmissions(sub.PrincipalID, sub.AsstID); //Delete all old results foreach (Submission s in subs) { Result.ResultList ress = subac.GetResults(s.ID); foreach (Result r in ress) { if (r.Type == Result.AUTO_TYPE) { AutoResult ar = r as AutoResult; if (ar.EvalID == evalID) { Delete(ar.ID); } } } } return(m_dp.CreateAutoResult(res)); }