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(); }