示例#1
0
        public void Process(PaperParser paperParser)
        {
            MainRect = paperParser.HeaderRect.GetInnerRect(LeftOffset, TopOffset, RightOffset, BottomOffset);

            SetARegion = MainRect.GetInnerRect(0, 0, 1.0 / 3.0, 1);
            SetBRegion = MainRect.GetInnerRect(1.0 / 3.0, 0, 2.0 / 3.0, 1);
            SetCRegion = MainRect.GetInnerRect(2.0 / 3.0, 0, 1, 1);

            isSetAShaded   = false;
            isSetBShaded   = false;
            isSetCShaded   = false;
            ShadeSet       = null;
            shadedSetCount = 0;
            foreach (Shade s in paperParser.HeaderShades)
            {
                if (SetARegion.IsInside(s.Center))
                {
                    isSetAShaded = true;
                    ShadeSet     = s;
                }
                else if (SetBRegion.IsInside(s.Center))
                {
                    isSetBShaded = true;
                    ShadeSet     = s;
                }
                else if (SetCRegion.IsInside(s.Center))
                {
                    isSetCShaded = true;
                    ShadeSet     = s;
                }
            }

            shadedSetCount += isSetAShaded ? 1 : 0;
            shadedSetCount += isSetBShaded ? 1 : 0;
            shadedSetCount += isSetCShaded ? 1 : 0;

            if (shadedSetCount == 0)
            {
                SetParserResult = SetParserResult.Unshaded;
            }
            else if (shadedSetCount > 1)
            {
                SetParserResult = SetParserResult.Multishaded;
            }
            else if (isSetAShaded)
            {
                SetParserResult     = SetParserResult.SetA;
                AssessmentSetResult = AssessmentSet.SetA;
            }
            else if (isSetBShaded)
            {
                SetParserResult     = SetParserResult.SetB;
                AssessmentSetResult = AssessmentSet.SetB;
            }
            else if (isSetCShaded)
            {
                SetParserResult     = SetParserResult.SetC;
                AssessmentSetResult = AssessmentSet.SetC;
            }
        }
        public void fvCreateAssessment_InsertItem()
        {
            AssessmentSet assessment = new AssessmentSet();

            TryUpdateModel(assessment);
            if (ModelState.IsValid)
            {
                OnlineAssessmentEntities _db = new OnlineAssessmentEntities();
                _db.AssessmentSets.Add(assessment);
                _db.SaveChanges();
                Response.Redirect("~/LecturerFolder/ViewAssessment.aspx");
            }
        }
示例#3
0
        public bool GetEnabled(AssessmentSet set)
        {
            switch (set)
            {
            case AssessmentSet.SetB:
                return(SetBEnabled);

            case AssessmentSet.SetC:
                return(SetCEnabled);

            default:
                return(true);
            }
        }
示例#4
0
        public void SetItems(AssessmentItem[] items, AssessmentSet set)
        {
            switch (set)
            {
            case AssessmentSet.SetA:
                SetAKeys = items;
                break;

            case AssessmentSet.SetB:
                SetBKeys = items;
                break;

            case AssessmentSet.SetC:
                SetCKeys = items;
                break;
            }
        }
示例#5
0
        public AssessmentItem[] GetItems(AssessmentSet set)
        {
            switch (set)
            {
            case AssessmentSet.SetA:
                return(SetAKeys);

            case AssessmentSet.SetB:
                return(SetBKeys);

            case AssessmentSet.SetC:
                return(SetCKeys);

            default:
                return(null);
            }
        }
示例#6
0
        private void ComboBoxSet_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBoxSet.SelectedIndex)
            {
            case 0:
                assessmentSet           = AssessmentSet.SetA;
                checkBoxEnabled.Checked = true;
                checkBoxEnabled.Enabled = false;
                break;

            case 1:
                assessmentSet           = AssessmentSet.SetB;
                checkBoxEnabled.Checked = assessment.SetBEnabled;
                checkBoxEnabled.Enabled = true;
                break;

            case 2:
                assessmentSet           = AssessmentSet.SetC;
                checkBoxEnabled.Checked = assessment.SetCEnabled;
                checkBoxEnabled.Enabled = true;
                break;
            }
            keyHolder1.Set(1, assessment.GetItems(assessmentSet)[0].Key);
            keyHolder2.Set(2, assessment.GetItems(assessmentSet)[1].Key);
            keyHolder3.Set(3, assessment.GetItems(assessmentSet)[2].Key);
            keyHolder4.Set(4, assessment.GetItems(assessmentSet)[3].Key);
            keyHolder5.Set(5, assessment.GetItems(assessmentSet)[4].Key);
            keyHolder6.Set(6, assessment.GetItems(assessmentSet)[5].Key);
            keyHolder7.Set(7, assessment.GetItems(assessmentSet)[6].Key);
            keyHolder8.Set(8, assessment.GetItems(assessmentSet)[7].Key);
            keyHolder9.Set(9, assessment.GetItems(assessmentSet)[8].Key);
            keyHolder10.Set(10, assessment.GetItems(assessmentSet)[9].Key);
            keyHolder11.Set(11, assessment.GetItems(assessmentSet)[10].Key);
            keyHolder12.Set(12, assessment.GetItems(assessmentSet)[11].Key);
            keyHolder13.Set(13, assessment.GetItems(assessmentSet)[12].Key);
            keyHolder14.Set(14, assessment.GetItems(assessmentSet)[13].Key);
            keyHolder15.Set(15, assessment.GetItems(assessmentSet)[14].Key);
            keyHolder16.Set(16, assessment.GetItems(assessmentSet)[15].Key);
            keyHolder17.Set(17, assessment.GetItems(assessmentSet)[16].Key);
            keyHolder18.Set(18, assessment.GetItems(assessmentSet)[17].Key);
            keyHolder19.Set(19, assessment.GetItems(assessmentSet)[18].Key);
            keyHolder20.Set(20, assessment.GetItems(assessmentSet)[19].Key);
            keyHolder21.Set(21, assessment.GetItems(assessmentSet)[20].Key);
            keyHolder22.Set(22, assessment.GetItems(assessmentSet)[21].Key);
            keyHolder23.Set(23, assessment.GetItems(assessmentSet)[22].Key);
            keyHolder24.Set(24, assessment.GetItems(assessmentSet)[23].Key);
            keyHolder25.Set(25, assessment.GetItems(assessmentSet)[24].Key);
            keyHolder26.Set(26, assessment.GetItems(assessmentSet)[25].Key);
            keyHolder27.Set(27, assessment.GetItems(assessmentSet)[26].Key);
            keyHolder28.Set(28, assessment.GetItems(assessmentSet)[27].Key);
            keyHolder29.Set(29, assessment.GetItems(assessmentSet)[28].Key);
            keyHolder30.Set(30, assessment.GetItems(assessmentSet)[29].Key);
            keyHolder31.Set(31, assessment.GetItems(assessmentSet)[30].Key);
            keyHolder32.Set(32, assessment.GetItems(assessmentSet)[31].Key);
            keyHolder33.Set(33, assessment.GetItems(assessmentSet)[32].Key);
            keyHolder34.Set(34, assessment.GetItems(assessmentSet)[33].Key);
            keyHolder35.Set(35, assessment.GetItems(assessmentSet)[34].Key);
            keyHolder36.Set(36, assessment.GetItems(assessmentSet)[35].Key);
            keyHolder37.Set(37, assessment.GetItems(assessmentSet)[36].Key);
            keyHolder38.Set(38, assessment.GetItems(assessmentSet)[37].Key);
            keyHolder39.Set(39, assessment.GetItems(assessmentSet)[38].Key);
            keyHolder40.Set(40, assessment.GetItems(assessmentSet)[39].Key);
            keyHolder41.Set(41, assessment.GetItems(assessmentSet)[40].Key);
            keyHolder42.Set(42, assessment.GetItems(assessmentSet)[41].Key);
            keyHolder43.Set(43, assessment.GetItems(assessmentSet)[42].Key);
            keyHolder44.Set(44, assessment.GetItems(assessmentSet)[43].Key);
            keyHolder45.Set(45, assessment.GetItems(assessmentSet)[44].Key);
            keyHolder46.Set(46, assessment.GetItems(assessmentSet)[45].Key);
            keyHolder47.Set(47, assessment.GetItems(assessmentSet)[46].Key);
            keyHolder48.Set(48, assessment.GetItems(assessmentSet)[47].Key);
            keyHolder49.Set(49, assessment.GetItems(assessmentSet)[48].Key);
            keyHolder50.Set(50, assessment.GetItems(assessmentSet)[49].Key);
            keyHolder51.Set(51, assessment.GetItems(assessmentSet)[50].Key);
            keyHolder52.Set(52, assessment.GetItems(assessmentSet)[51].Key);
            keyHolder53.Set(53, assessment.GetItems(assessmentSet)[52].Key);
            keyHolder54.Set(54, assessment.GetItems(assessmentSet)[53].Key);
            keyHolder55.Set(55, assessment.GetItems(assessmentSet)[54].Key);
            keyHolder56.Set(56, assessment.GetItems(assessmentSet)[55].Key);
            keyHolder57.Set(57, assessment.GetItems(assessmentSet)[56].Key);
            keyHolder58.Set(58, assessment.GetItems(assessmentSet)[57].Key);
            keyHolder59.Set(59, assessment.GetItems(assessmentSet)[58].Key);
            keyHolder60.Set(60, assessment.GetItems(assessmentSet)[59].Key);
            keyHolder61.Set(61, assessment.GetItems(assessmentSet)[60].Key);
            keyHolder62.Set(62, assessment.GetItems(assessmentSet)[61].Key);
            keyHolder63.Set(63, assessment.GetItems(assessmentSet)[62].Key);
            keyHolder64.Set(64, assessment.GetItems(assessmentSet)[63].Key);
            keyHolder65.Set(65, assessment.GetItems(assessmentSet)[64].Key);
            keyHolder66.Set(66, assessment.GetItems(assessmentSet)[65].Key);
            keyHolder67.Set(67, assessment.GetItems(assessmentSet)[66].Key);
            keyHolder68.Set(68, assessment.GetItems(assessmentSet)[67].Key);
            keyHolder69.Set(69, assessment.GetItems(assessmentSet)[68].Key);
            keyHolder70.Set(70, assessment.GetItems(assessmentSet)[69].Key);
            keyHolder71.Set(71, assessment.GetItems(assessmentSet)[70].Key);
            keyHolder72.Set(72, assessment.GetItems(assessmentSet)[71].Key);
            keyHolder73.Set(73, assessment.GetItems(assessmentSet)[72].Key);
            keyHolder74.Set(74, assessment.GetItems(assessmentSet)[73].Key);
            keyHolder75.Set(75, assessment.GetItems(assessmentSet)[74].Key);
            keyHolder76.Set(76, assessment.GetItems(assessmentSet)[75].Key);
            keyHolder77.Set(77, assessment.GetItems(assessmentSet)[76].Key);
            keyHolder78.Set(78, assessment.GetItems(assessmentSet)[77].Key);
            keyHolder79.Set(79, assessment.GetItems(assessmentSet)[78].Key);
            keyHolder80.Set(80, assessment.GetItems(assessmentSet)[79].Key);
            keyHolder81.Set(81, assessment.GetItems(assessmentSet)[80].Key);
            keyHolder82.Set(82, assessment.GetItems(assessmentSet)[81].Key);
            keyHolder83.Set(83, assessment.GetItems(assessmentSet)[82].Key);
            keyHolder84.Set(84, assessment.GetItems(assessmentSet)[83].Key);
            keyHolder85.Set(85, assessment.GetItems(assessmentSet)[84].Key);
            keyHolder86.Set(86, assessment.GetItems(assessmentSet)[85].Key);
            keyHolder87.Set(87, assessment.GetItems(assessmentSet)[86].Key);
            keyHolder88.Set(88, assessment.GetItems(assessmentSet)[87].Key);
            keyHolder89.Set(89, assessment.GetItems(assessmentSet)[88].Key);
            keyHolder90.Set(90, assessment.GetItems(assessmentSet)[89].Key);
        }
示例#7
0
        internal static AnswerParser Parse(Assessment assessment, PaperItem[] paperItems, AssessmentSet assessmentSet)
        {
            switch (assessmentSet)
            {
            case AssessmentSet.SetA:
                return(Parse(assessment, paperItems, SetParserResult.SetA));

            case AssessmentSet.SetB:
                return(Parse(assessment, paperItems, SetParserResult.SetB));

            case AssessmentSet.SetC:
                return(Parse(assessment, paperItems, SetParserResult.SetC));
            }
            return(null);
        }
示例#8
0
        internal static AnswerParser Parse(Assessment assessment, PaperItem[] paperItems, SetParserResult setParserResult)
        {
            #region Set

            AnswerParserResultType resultType = AnswerParserResultType.Valid;
            AssessmentSet          set        = AssessmentSet.SetA;

            if (assessment.SetBEnabled || assessment.SetCEnabled)
            {
                switch (setParserResult)
                {
                case SetParserResult.SetB:
                    if (assessment.SetBEnabled)
                    {
                        set = AssessmentSet.SetB;
                    }
                    else
                    {
                        resultType = AnswerParserResultType.DisabledSetShaded;
                    }
                    break;

                case SetParserResult.SetC:
                    if (assessment.SetCEnabled)
                    {
                        set = AssessmentSet.SetC;
                    }
                    else
                    {
                        resultType = AnswerParserResultType.DisabledSetShaded;
                    }
                    break;

                case SetParserResult.Unshaded:
                    resultType = AnswerParserResultType.SetUnshaded;
                    break;

                case SetParserResult.Multishaded:
                    resultType = AnswerParserResultType.SetMultishaded;
                    break;
                }
            }

            if (resultType != AnswerParserResultType.Valid)
            {
                return(new AnswerParser()
                {
                    ParserResult = resultType
                });
            }

            #endregion

            #region Items

            AssessmentItem[] answerKeys = assessment.GetItems(set);
            if (answerKeys.Length != paperItems.Length)
            {
                return(new AnswerParser()
                {
                    ParserResult = AnswerParserResultType.Undefined
                });
            }
            PaperKeyResultType[] paperKeyResultTypes = new PaperKeyResultType[answerKeys.Length];
            for (int i = 0; i < answerKeys.Length; i++)
            {
                paperKeyResultTypes[i] = PaperKeyResultType.Correct;
                int ansNum = 0;
                ansNum += paperItems[i].A ? 1 : 0;
                ansNum += paperItems[i].B ? 1 : 0;
                ansNum += paperItems[i].C ? 1 : 0;
                ansNum += paperItems[i].D ? 1 : 0;
                ansNum += paperItems[i].E ? 1 : 0;
                if (ansNum == 0)
                {
                    paperKeyResultTypes[i] = PaperKeyResultType.Unshaded;
                }
                else if (ansNum > 1)
                {
                    paperKeyResultTypes[i] = PaperKeyResultType.Invalid;
                }
                else
                {
                    switch (answerKeys[i].Key)
                    {
                    case Key.A:
                        paperKeyResultTypes[i] = paperItems[i].A ? PaperKeyResultType.Correct : PaperKeyResultType.Incorrect;
                        break;

                    case Key.B:
                        paperKeyResultTypes[i] = paperItems[i].B ? PaperKeyResultType.Correct : PaperKeyResultType.Incorrect;
                        break;

                    case Key.C:
                        paperKeyResultTypes[i] = paperItems[i].C ? PaperKeyResultType.Correct : PaperKeyResultType.Incorrect;
                        break;

                    case Key.D:
                        paperKeyResultTypes[i] = paperItems[i].D ? PaperKeyResultType.Correct : PaperKeyResultType.Incorrect;
                        break;

                    case Key.E:
                        paperKeyResultTypes[i] = paperItems[i].E ? PaperKeyResultType.Correct : PaperKeyResultType.Incorrect;
                        break;
                    }
                }
            }

            #endregion

            #region Overall

            int correctItems    = 0;
            int incorrectItems  = 0;
            int invalidItems    = 0;
            int unshadedItems   = 0;
            int totalItems      = 0;
            int correctPoints   = 0;
            int incorrectPoints = 0;
            int invalidPoints   = 0;
            int unshadedPoints  = 0;
            int totalPoints     = 0;

            for (int i = 0; i < paperKeyResultTypes.Length; i++)
            {
                switch (paperKeyResultTypes[i])
                {
                case PaperKeyResultType.Correct:
                    correctItems++;
                    correctPoints += answerKeys[i].Points;
                    break;

                case PaperKeyResultType.Incorrect:
                    incorrectItems++;
                    incorrectPoints += answerKeys[i].Points;
                    break;

                case PaperKeyResultType.Invalid:
                    invalidItems++;
                    invalidPoints += answerKeys[i].Points;
                    break;

                case PaperKeyResultType.Unshaded:
                    unshadedItems++;
                    unshadedPoints += answerKeys[i].Points;
                    break;
                }
                totalItems++;
                totalPoints += answerKeys[i].Points;
            }


            double percentage = 100 * ((double)correctPoints / totalPoints);

            AssessmentResult assessmentResult = percentage >= assessment.PassingRate ? AssessmentResult.Passed : AssessmentResult.Failed;

            return(new AnswerParser()
            {
                ParserResult = AnswerParserResultType.Valid,
                AssessmentSet = set,
                Answers = paperItems,
                AnswerResults = paperKeyResultTypes,
                AssessmentResult = assessmentResult,
                CorrectItems = correctItems,
                IncorrectItems = incorrectItems,
                InvalidItems = invalidItems,
                UnshadedItems = unshadedItems,
                TotalItems = totalItems,
                CorrectPoints = correctPoints,
                IncorrectPoints = incorrectPoints,
                InvalidPoints = invalidPoints,
                UnshadedPoints = unshadedPoints,
                TotalPoints = totalPoints,
                Percentage = percentage
            });

            #endregion
        }
示例#9
0
        private void ComboBoxSet_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBoxSet.SelectedIndex)
            {
            case 0:
                assessmentSet           = AssessmentSet.SetA;
                checkBoxEnabled.Checked = true;
                checkBoxEnabled.Enabled = false;
                break;

            case 1:
                assessmentSet           = AssessmentSet.SetB;
                checkBoxEnabled.Checked = assessment.SetBEnabled;
                checkBoxEnabled.Enabled = true;
                break;

            case 2:
                assessmentSet           = AssessmentSet.SetC;
                checkBoxEnabled.Checked = assessment.SetCEnabled;
                checkBoxEnabled.Enabled = true;
                break;
            }
            keyHolder1.Set(1, assessment.GetItems(assessmentSet)[0].Key);
            keyHolder2.Set(2, assessment.GetItems(assessmentSet)[1].Key);
            keyHolder3.Set(3, assessment.GetItems(assessmentSet)[2].Key);
            keyHolder4.Set(4, assessment.GetItems(assessmentSet)[3].Key);
            keyHolder5.Set(5, assessment.GetItems(assessmentSet)[4].Key);
            keyHolder6.Set(6, assessment.GetItems(assessmentSet)[5].Key);
            keyHolder7.Set(7, assessment.GetItems(assessmentSet)[6].Key);
            keyHolder8.Set(8, assessment.GetItems(assessmentSet)[7].Key);
            keyHolder9.Set(9, assessment.GetItems(assessmentSet)[8].Key);
            keyHolder10.Set(10, assessment.GetItems(assessmentSet)[9].Key);
            keyHolder11.Set(11, assessment.GetItems(assessmentSet)[10].Key);
            keyHolder12.Set(12, assessment.GetItems(assessmentSet)[11].Key);
            keyHolder13.Set(13, assessment.GetItems(assessmentSet)[12].Key);
            keyHolder14.Set(14, assessment.GetItems(assessmentSet)[13].Key);
            keyHolder15.Set(15, assessment.GetItems(assessmentSet)[14].Key);
            keyHolder16.Set(16, assessment.GetItems(assessmentSet)[15].Key);
            keyHolder17.Set(17, assessment.GetItems(assessmentSet)[16].Key);
            keyHolder18.Set(18, assessment.GetItems(assessmentSet)[17].Key);
            keyHolder19.Set(19, assessment.GetItems(assessmentSet)[18].Key);
            keyHolder20.Set(20, assessment.GetItems(assessmentSet)[19].Key);
            keyHolder21.Set(21, assessment.GetItems(assessmentSet)[20].Key);
            keyHolder22.Set(22, assessment.GetItems(assessmentSet)[21].Key);
            keyHolder23.Set(23, assessment.GetItems(assessmentSet)[22].Key);
            keyHolder24.Set(24, assessment.GetItems(assessmentSet)[23].Key);
            keyHolder25.Set(25, assessment.GetItems(assessmentSet)[24].Key);
            keyHolder26.Set(26, assessment.GetItems(assessmentSet)[25].Key);
            keyHolder27.Set(27, assessment.GetItems(assessmentSet)[26].Key);
            keyHolder28.Set(28, assessment.GetItems(assessmentSet)[27].Key);
            keyHolder29.Set(29, assessment.GetItems(assessmentSet)[28].Key);
            keyHolder30.Set(30, assessment.GetItems(assessmentSet)[29].Key);
            keyHolder31.Set(31, assessment.GetItems(assessmentSet)[30].Key);
            keyHolder32.Set(32, assessment.GetItems(assessmentSet)[31].Key);
            keyHolder33.Set(33, assessment.GetItems(assessmentSet)[32].Key);
            keyHolder34.Set(34, assessment.GetItems(assessmentSet)[33].Key);
            keyHolder35.Set(35, assessment.GetItems(assessmentSet)[34].Key);
            keyHolder36.Set(36, assessment.GetItems(assessmentSet)[35].Key);
            keyHolder37.Set(37, assessment.GetItems(assessmentSet)[36].Key);
            keyHolder38.Set(38, assessment.GetItems(assessmentSet)[37].Key);
            keyHolder39.Set(39, assessment.GetItems(assessmentSet)[38].Key);
            keyHolder40.Set(40, assessment.GetItems(assessmentSet)[39].Key);
            keyHolder41.Set(41, assessment.GetItems(assessmentSet)[40].Key);
            keyHolder42.Set(42, assessment.GetItems(assessmentSet)[41].Key);
            keyHolder43.Set(43, assessment.GetItems(assessmentSet)[42].Key);
            keyHolder44.Set(44, assessment.GetItems(assessmentSet)[43].Key);
            keyHolder45.Set(45, assessment.GetItems(assessmentSet)[44].Key);
            keyHolder46.Set(46, assessment.GetItems(assessmentSet)[45].Key);
            keyHolder47.Set(47, assessment.GetItems(assessmentSet)[46].Key);
            keyHolder48.Set(48, assessment.GetItems(assessmentSet)[47].Key);
            keyHolder49.Set(49, assessment.GetItems(assessmentSet)[48].Key);
            keyHolder50.Set(50, assessment.GetItems(assessmentSet)[49].Key);
            keyHolder51.Set(51, assessment.GetItems(assessmentSet)[50].Key);
            keyHolder52.Set(52, assessment.GetItems(assessmentSet)[51].Key);
            keyHolder53.Set(53, assessment.GetItems(assessmentSet)[52].Key);
            keyHolder54.Set(54, assessment.GetItems(assessmentSet)[53].Key);
            keyHolder55.Set(55, assessment.GetItems(assessmentSet)[54].Key);
            keyHolder56.Set(56, assessment.GetItems(assessmentSet)[55].Key);
            keyHolder57.Set(57, assessment.GetItems(assessmentSet)[56].Key);
            keyHolder58.Set(58, assessment.GetItems(assessmentSet)[57].Key);
            keyHolder59.Set(59, assessment.GetItems(assessmentSet)[58].Key);
            keyHolder60.Set(60, assessment.GetItems(assessmentSet)[59].Key);
        }