示例#1
0
        public async Task <IActionResult> AddModuleFourMarks(StudentModuleFourMarks userSkills)
        {
            //var user = await _userManager.GetUserAsync(User);
            //if (user != null)
            //{
            //    if (_context.StudentModuleFourMarks.Any(x => x.UserId == user.Id))
            //    {
            //        return BadRequest("Student has already attempted the test");
            //    }
            //    else
            //    {
            //        //userSkills.UserId = user.Id;
            //        _context.StudentModuleFourMarks.Add(userSkills);

            //        if ((await _context.SaveChangesAsync()) > 0)
            //        {
            //            return Ok();
            //        }
            //        else
            //        {
            //            return StatusCode(500);
            //        }
            //    }
            //}

            return(Unauthorized());
        }
        public async Task UpdateGraphModuleFour(int studentQuizId)
        {
            var studentQuiz = _context.StudentQuizzes.FirstOrDefault(x => x.Id == studentQuizId);
            var marks       = await _context.StudentModuleFourMarks.FirstOrDefaultAsync(x => x.UserId == studentQuiz.UserId);

            if (marks == null)
            {
                marks        = new StudentModuleFourMarks();
                marks.UserId = studentQuiz.UserId;
                _context.StudentModuleFourMarks.Add(marks);
            }
            if (studentQuiz.Quiz.Name == "Verbal Reasoning")
            {
                marks.VerbalReasoning = studentQuiz.Score;
                var zScore    = (marks.VerbalReasoning - 16) / 6;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenVerbalReasoning = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Spatial Relations")
            {
                marks.SpatialReasoning = studentQuiz.Score;
                var zScore    = (marks.SpatialReasoning - (decimal)10.5) / 4;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenSpatialReasoning = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Quantitative Reasoning")
            {
                marks.QuantitativeReasoning = studentQuiz.Score;
                var zScore    = (marks.QuantitativeReasoning - (decimal)16) / 6;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenQuantitativeReasoning = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Perceptual Speed")
            {
                marks.PerceptualReasoning = studentQuiz.Score;
                var zScore    = (marks.PerceptualReasoning - (decimal)10.5) / 4;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenPerceptualReasoning = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Mechanical Reasoning")
            {
                marks.MechanicalReasoning = studentQuiz.Score;
                var zScore    = (marks.MechanicalReasoning - (decimal)11.1) / 4;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenMechanicalReasoning = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Critical Thinking")
            {
                marks.CriticalThinking = studentQuiz.Score;
                var zScore    = (marks.CriticalThinking - (decimal)10.5) / 4;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenCriticalThinking = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Attention to Detail")
            {
                marks.AttentionToDetail = studentQuiz.Score;
                var zScore    = (marks.AttentionToDetail - (decimal)10.5) / 4;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenAttentionToDetail = (int)Math.Round(stenScore, 2);
            }
            else if (studentQuiz.Quiz.Name == "Abstract Reasoning")
            {
                marks.AbstractReasoning = studentQuiz.Score;
                var zScore    = (marks.AbstractReasoning - (decimal)10.5) / 4;
                var stenScore = (zScore * 2) + (decimal)5.5;
                marks.FinalStenAbstractReasoning = (int)Math.Round(stenScore, 2);
            }
            var sum            = marks.VerbalReasoning + marks.CriticalThinking + marks.AbstractReasoning + marks.SpatialReasoning + marks.QuantitativeReasoning + marks.AttentionToDetail + marks.PerceptualReasoning + marks.MechanicalReasoning;
            var zScoreTotal    = (sum - (decimal)92.6) / 37;
            var stenScoreTotal = (zScoreTotal * 2) + (decimal)5.5;

            marks.Total = (int)Math.Round(stenScoreTotal, 2);
            await _context.SaveChangesAsync();
        }