コード例 #1
0
 public ActionResult assessment([Bind(Include = "ID,MAIL,PW,C_ROLE,C_STA")] User user)
 {
     if (UserNumForId(user.ID) > 0)
     {
         MsList ms = new MsList();
         if (user.C_ROLE == 0)
         {
             List <Evalution> evl = db.Evalutions.Where(x => x.I_CREATE_UID == user.ID).ToList();
             foreach (var i in evl)
             {
                 EvalutionForm evff = db.EvalutionForms.Find(i.I_EVT_ID);
                 ms.Add(new MsItem(evff.ID, evff.S_Name, db.Evalutions.Where(x => x.I_EVT_ID == evff.ID)));
             }
             return(Json(ms, JsonRequestBehavior.AllowGet));
         }
         else
         {
             List <EvalutionForm> evlist = db.EvalutionForms.Where(x => x.I_CREATE_UID == user.ID).ToList();
             foreach (var i in evlist)
             {
                 ms.Add(new MsItem(i.ID, i.S_Name, db.Evalutions.Where(x => x.I_EVT_ID == i.ID).ToList()));
             }
             return(Json(ms, JsonRequestBehavior.AllowGet));
         }
     }
     return(Json(false));
 }
コード例 #2
0
        public ActionResult schools()
        {
            MsList ms = new MsList();

            ms.Add(new MsItem("2", db.Academies.ToList()));
            ms.Add(new MsItem("3", db.Grades.ToList()));
            ms.Add(new MsItem("4", db.ClassNames.ToList()));
            return(Json(ms, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
 public void RemoveMapSection(int id)
 {
     foreach (MapSection mapSection in MsList)
     {
         if (mapSection.sectionID == id)
         {
             MsList.Remove(mapSection);
         }
         else
         {
             throw new MapSectionNotFoundException();
         }
     }
 }
コード例 #4
0
 public void AddMapSectionToList(MapSection mapSection)
 {
     MsList.Add(mapSection);
 }
コード例 #5
0
        public async Task <IActionResult> CandidateAnswers(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            //Get Candidates Answers
            var answers = await _context.Candidates
                          .Include(c => c.RecordingLists)
                          .ThenInclude(rl => rl.Answers)
                          .FirstOrDefaultAsync(c => c.CandidateID == id);

            //Get Test Mark Scheme
            var markScheme = from ms in _context.MarkSchemes
                             join q in _context.Questions on ms.QuestionGroupID equals q.QuestionGroupId
                             join r in _context.Recordings on q.RecordingID equals r.RecordingId
                             from c in _context.Candidates
                             join rl in _context.RecordingLists
                             on new { r.RecordingId, c.CandidateID }
            equals new { RecordingId = rl.RecordingID, rl.CandidateID }
            into details
            from d in details
            where c.CandidateID == id
                group new { ms.MarkSchemeID, ms.Index, ms.Answer }
            by new { ms.MarkSchemeID, ms.Index, ms.Answer } into grp
            orderby grp.Key.Index
                select new
            {
                grp.Key.MarkSchemeID,
                grp.Key.Index,
                grp.Key.Answer
            };

            //Get Test Total Mark
            var totalMark = _context.Answers
                            .Where(a => a.Correctness == true)
                            .Where(a => a.CandidateID == id).Count();

            // This block is to set the written and actual ans together a.k.a set MarkScheme Answer
            List <MsList> actualAnsList = new List <MsList>();

            foreach (var item in markScheme)
            {
                var ms = new MsList
                {
                    Key = item.Index,
                    Ans = item.Answer
                };
                actualAnsList.Add(ms);
            }
            List <MsList> sortedAnsList = actualAnsList.OrderBy(a => a.Key).ToList();             //Sort list accroding to the question Index

            //Relocate Data to View Model
            var candAnsViewModel = new CandidateAnswersViewModel
            {
                CandidateID = answers.CandidateID,
                TotalMarks  = totalMark,
                Grade       = answers.Grade
            };
            var ansByPartList = new List <AnswersByPartViewModel>();

            foreach (var recording in answers.RecordingLists)
            {
                var getRecordingDetails = _context.Recordings.Find(recording.RecordingID);

                var ansByPart = new AnswersByPartViewModel
                {
                    RecordingID = getRecordingDetails.RecordingId,
                    Title       = getRecordingDetails.Title,
                    Part        = getRecordingDetails.Part
                };

                var ansWifMSList = new List <AnswersWithMarkSchemeViewModel>();

                foreach (var ans in recording.Answers)
                {
                    var ansWithMarkScheme = new AnswersWithMarkSchemeViewModel
                    {
                        AnswerID         = ans.AnswerID,
                        Index            = ans.Index,
                        WrittenAnswer    = ans.WrittenAnswer,
                        Correctness      = ans.Correctness,
                        MarkSchemeAnswer = sortedAnsList[ans.Index - 1].Ans
                    };

                    //To Add the list of object of AnsWithMarkScheme with each iteration
                    ansWifMSList.Add(ansWithMarkScheme);
                }

                ansByPart.AnswersWithMarkScheme = ansWifMSList;

                //To Add the list of object of AnsByPart iteration
                ansByPartList.Add(ansByPart);
            }

            candAnsViewModel.AnswersByPart = ansByPartList;

            return(View(candAnsViewModel));
        }