namespace TMSDAL.DTO.Quiz { /// /// DTO for TQUIZATTEMPTRESPONSE — one row per question answered within an attempt. /// IsCorrect: -1 pending manual evaluation, 0 No, 1 Yes. /// public class QuizAttemptResponseDTO { public int QuizAttemptResponseId { get; set; } public int QuizAttemptId { get; set; } public int QuestionBankId { get; set; } public short SlNo { get; set; } = 1; public string? GivenAnswer { get; set; } public short IsCorrect { get; set; } = -1; public decimal MarksAwarded { get; set; } // Populated only when the response is joined against MQUESTIONBANK — not persisted on // TQUIZATTEMPTRESPONSE itself. CorrectAnswer is used for server-side grading only — // QuizAttemptBLL.GetQuizAttempt strips it before returning to the client while an attempt // is still in progress, so the answer key is never sent to a learner mid-quiz. public string? QuestionTitle { get; set; } public string? QuestionText { get; set; } public byte? QuestionType { get; set; } public string? OptionsJson { get; set; } public string? CorrectAnswer { get; set; } public short? Marks { get; set; } public string? ExplanationText { get; set; } } }