/// <summary> /// Phương thức tạo bài thi tổng quát /// </summary> public static GeneralTestPaper Generate( TestCategoryManager _TestCategoryManager, ReadingPartOneManager _ReadingPartOneManager, ReadingPartTwoManager _ReadingPartTwoManager, ListeningBaseQuestionManager _ListeningBaseQuestionManager, ListeningMediaManager _ListeningMediaManager, WritingPartTwoManager _WritingPartTwoManager, SpeakingEmbedManager _SpeakingEmbedManager, PieceOfTestManager _PieceOfTestManager, int UserId, int?InstructorId) { GeneralTestPaper generateTestPaper = new GeneralTestPaper { // Tạo bài thi Listening ListeningTestPaper = new ListeningTestPaper { ListeningPartOnes = ListeningTestPaper.Generate(1, _TestCategoryManager, _ListeningMediaManager, _ListeningBaseQuestionManager), ListeningPartTwos = ListeningTestPaper.Generate(2, _TestCategoryManager, _ListeningMediaManager, _ListeningBaseQuestionManager), }, // Kiến tạo danh sách câu hỏi và câu trả lời, đồng thời xáo trộn câu trả lời ReadingTestPaper = _TestCategoryManager.GenerateReadingTestPaper(_ReadingPartOneManager, _ReadingPartTwoManager), // Kiến tạo danh sách câu hỏi và câu trả lời, đồng thời xáo trộn câu trả lời WritingTestPaper = _TestCategoryManager.GenerateWritingTestPaper(_WritingPartTwoManager), // Kiến tạo danh sách câu hỏi và câu trả lời, đồng thời xáo trộn câu trả lời SpeakingTestPaper = _TestCategoryManager.GenerateSpeakingTestPaper(_SpeakingEmbedManager) }; // Khởi tạo đối tượng lưu trữ bài kiểm tra này và lưu paper mặc định có đáp án đúng vào var piceOfTest = new PieceOfTest { UserId = UserId, InstructorId = InstructorId, TypeCode = TestCategory.TEST_ALL, PartId = -1, ResultOfTestJson = JsonConvert.SerializeObject(generateTestPaper), Scores = -1 }; // Lưu trữ bài thi vào database trước khi bắt đầu _PieceOfTestManager.Add(piceOfTest); // Lưu mã bài thi vào generateTestPaper.PieceOfTestId = piceOfTest.Id; return(generateTestPaper); }
public static int GenerateSpeakingTestPaper(this TestCategoryManager _TestCategoryManager, PieceOfTestManager _PieceOfTestManager, SpeakingEmbedManager _SpeakingPartTwoManager, int UserId, int?InstructorId) { // Kiến tạo danh sách câu hỏi và câu trả lời, đồng thời xáo trộn câu trả lời SpeakingTestPaper paper = _TestCategoryManager.GenerateSpeakingTestPaper(_SpeakingPartTwoManager); // Khởi tạo đối tượng lưu trữ bài kiểm tra này và lưu paper mặc định có đáp án đúng vào var piceOfTest = new PieceOfTest { UserId = UserId, InstructorId = InstructorId, TypeCode = TestCategory.SPEAKING, PartId = -1, ResultOfTestJson = JsonConvert.SerializeObject(paper), }; // Lưu trữ bài thi vào database trước khi bắt đầu _PieceOfTestManager.Add(piceOfTest); return(piceOfTest.Id); }