Example #1
0
        /// <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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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;
        }
Example #6
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);
        }
Example #7
0
        /// <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);
        }
Example #8
0
        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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        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());
            }
        }
Example #11
0
        /// <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);
        }
Example #12
0
        /// <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));
        }