public static ReadingPartTwoDTO GeneratePart4(TestCategoryManager _TestCategoryManager) { var category = _TestCategoryManager .GetForGenerateTest(TestCategory.READING, 4) .ToList() .Shuffle() .First(); var questions = category .ReadingPartTwos .ToList() //.Shuffle() // Không trộn thứ tự câu hỏi .Take(MAX_QUESTION_READING_PART_4) .ToList(); // Kiến tạo, trộn đáp án for (int i = 0; i < questions.Count; i++) { questions[i].AnswerList = JsonConvert.DeserializeObject <List <BaseAnswer> >(questions[i].Answers); if (questions[i].AnswerList != null && questions[i].AnswerList.Count > 0) { questions[i].AnswerList.Shuffle();// Chỉ trộn thứ tự câu trả lời } } return(new ReadingPartTwoDTO { TestCategory = category, ReadingPart = questions }); }
public static WritingPartOneDTO GeneratePart1(TestCategoryManager _TestCategoryManager) { // Lấy danh mục var category = _TestCategoryManager .GetForGenerateTest(TestCategory.WRITING, 1) .ToList() .Shuffle() // Trộn .First(); // Lấy danh sách câu hỏi var questions = category .WritingPartOnes .ToList() .Shuffle() // Trộn câu hỏi .Take(MAX_QUESTION_WRITING_PART_1) .ToList(); // Kiến tạo danh sách câu trả lời for (int i = 0; i < questions.Count; i++) { questions[i].BaseAnswers = JsonConvert.DeserializeObject <List <BaseAnswer> >(questions[i].Answers); } return(new WritingPartOneDTO { TestCategory = category, WritingPart = questions }); }
public static SpeakingTestPaper GenerateSpeakingTestPaper(this TestCategoryManager _TestCategoryManager, SpeakingEmbedManager _SpeakingPartTwoManager) { return(new SpeakingTestPaper { SpeakingPart = SpeakingTestPaper.Generate(_TestCategoryManager, _SpeakingPartTwoManager) }); }
public static int GenerateListeningTestPaper( this TestCategoryManager _TestCategoryManager, ListeningMediaManager _ListeningMediaManager, ListeningBaseQuestionManager _ListeningBaseQuestionManager, PieceOfTestManager _PieceOfTestManager, 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 var paper = new ListeningTestPaper { ListeningPartOnes = ListeningTestPaper.Generate(1, _TestCategoryManager, _ListeningMediaManager, _ListeningBaseQuestionManager), ListeningPartTwos = ListeningTestPaper.Generate(2, _TestCategoryManager, _ListeningMediaManager, _ListeningBaseQuestionManager), }; // 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.LISTENING, PartId = -1, ResultOfTestJson = JsonConvert.SerializeObject(paper), }; // Lưu trữ bài thi vào database trước khi bắt đầu _PieceOfTestManager.Add(piceOfTest); // Xóa đáp án đúng trong paper return(piceOfTest.Id); }
public TestPaperController( IHostEnvironment _host, IDataRepository <TestCategory> _TestCategoryManager, IDataRepository <ReadingPartOne> _ReadingPartOneManager, IDataRepository <ReadingPartTwo> _ReadingPartTwoManager, IDataRepository <ListeningMedia> _ListeningMediaManager, IDataRepository <ListeningBaseQuestion> _ListeningBaseQuestionManager, IDataRepository <WritingPartOne> _WritingPartOneManager, IDataRepository <WritingPartTwo> _WritingPartTwoManager, IDataRepository <PieceOfTest> _PieceOfTestManager, IDataRepository <SpeakingEmbed> _SpeakingEmbedManager, IDataRepository <User> _UserManager) { host = _host; this._TestCategoryManager = (TestCategoryManager)_TestCategoryManager; this._ReadingPartOneManager = (ReadingPartOneManager)_ReadingPartOneManager; this._ReadingPartTwoManager = (ReadingPartTwoManager)_ReadingPartTwoManager; this._ListeningMediaManager = (ListeningMediaManager)_ListeningMediaManager; this._ListeningBaseQuestionManager = (ListeningBaseQuestionManager)_ListeningBaseQuestionManager; this._WritingPartOneManager = (WritingPartOneManager)_WritingPartOneManager; this._WritingPartTwoManager = (WritingPartTwoManager)_WritingPartTwoManager; this._PieceOfTestManager = (PieceOfTestManager)_PieceOfTestManager; this._SpeakingEmbedManager = (SpeakingEmbedManager)_SpeakingEmbedManager; this._UserManager = (UserManager)_UserManager; }
public static int GenerateReadingTestPaper( this TestCategoryManager _TestCategoryManager, PieceOfTestManager _PieceOfTestManager, ReadingPartOneManager _ReadingPartOneManager, ReadingPartTwoManager _ReadingPartTwoManager, 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 ReadingTestPaper paper = _TestCategoryManager.GenerateReadingTestPaper(_ReadingPartOneManager, _ReadingPartTwoManager); // 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.READING, 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); }
public static WritingTestPaper GenerateWritingTestPaper(this TestCategoryManager _TestCategoryManager, WritingPartTwoManager _WritingPartTwoManager) { return(new WritingTestPaper { WritingPartOnes = WritingTestPaper.GeneratePart1(_TestCategoryManager), WritingPartTwos = WritingTestPaper.GeneratePart2(_TestCategoryManager, _WritingPartTwoManager), }); }
public DictionaryController( IDataRepository <Topic> _TopicManager, IDataRepository <Vocabulary> _VocabularyManager, IDataRepository <TestCategory> _TestCategoryManager) { this._TopicManager = _TopicManager as TopicManager; this._VocabularyManager = _VocabularyManager as VocabularyManager; this._TestCategoryManager = _TestCategoryManager as TestCategoryManager; }
public static ReadingTestPaper GenerateReadingTestPaper(this TestCategoryManager _TestCategoryManager, ReadingPartOneManager _ReadingPartOneManager, ReadingPartTwoManager _ReadingPartTwoManager) { return(new ReadingTestPaper { ReadingPartOnes = ReadingTestPaper.GeneratePart1(_ReadingPartOneManager), ReadingPartTwos = ReadingTestPaper.GeneratePart2(_ReadingPartTwoManager), ReadingPartThrees = ReadingTestPaper.GeneratePart3(_TestCategoryManager), ReadingPartFours = ReadingTestPaper.GeneratePart4(_TestCategoryManager) }); }
private void InitObjects() { Users = new UserManager(context); Rulos = new RuloManager(context); DefinationProcesses = new DefinationProcessManager(context); Machines = new MachineManager(context); TestResults = new TestResultManager(context); Floors = new FloorManager(context); OriginCategories = new OriginCategoryManager(context); TestCategories = new TestCategoryManager(context); Samples = new SampleManager(context); }
public SpeakingManagerController( IHostEnvironment _host, IDataRepository <User> _UserManager, IDataRepository <UserType> _UserTypeManager, IDataRepository <TestCategory> _TestCategoryManager, IDataRepository <SpeakingEmbed> _SpeakingEmbedManager) { host = _host; this._UserManager = (UserManager)_UserManager; this._UserTypeManager = (UserTypeManager)_UserTypeManager; this._TestCategoryManager = (TestCategoryManager)_TestCategoryManager; this._SpeakingEmbedManager = (SpeakingEmbedManager)_SpeakingEmbedManager; }
/// <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 WritingManagerController( IHostEnvironment _host, IDataRepository <User> _UserManager, IDataRepository <UserType> _UserTypeManager, IDataRepository <TestCategory> _TestCategoryManager, IDataRepository <WritingPartOne> _WritingPartOneManager, IDataRepository <WritingPartTwo> _WritingPartTwoManager) { host = _host; this._UserManager = (UserManager)_UserManager; this._UserTypeManager = (UserTypeManager)_UserTypeManager; this._TestCategoryManager = (TestCategoryManager)_TestCategoryManager; this._WritingPartOneManager = (WritingPartOneManager)_WritingPartOneManager; this._WritingPartTwoManager = (WritingPartTwoManager)_WritingPartTwoManager; }
public ListeningManagerController( IHostEnvironment _host, IDataRepository <User> _UserManager, IDataRepository <UserType> _UserTypeManager, IDataRepository <TestCategory> _TestCategoryManager, IDataRepository <ListeningMedia> _ListeningMediaManager, IDataRepository <ListeningBaseQuestion> _ListeningBaseQuestionManager) { host = _host; this._UserManager = (UserManager)_UserManager; this._UserTypeManager = (UserTypeManager)_UserTypeManager; this._TestCategoryManager = (TestCategoryManager)_TestCategoryManager; this._ListeningMediaManager = (ListeningMediaManager)_ListeningMediaManager; this._ListeningBaseQuestionManager = (ListeningBaseQuestionManager)_ListeningBaseQuestionManager; }
public static WritingPartTwoDTO GeneratePart2(TestCategoryManager _TestCategoryManager, WritingPartTwoManager _WritingPartTwoManager) { var category = _TestCategoryManager .GetForGenerateTest(TestCategory.WRITING, 2) .ToList() .Shuffle() // Trộn .First(); var questions = _WritingPartTwoManager.GetByCategoryId(category.Id); return(new WritingPartTwoDTO { WritingPart2 = new WritingCombined { TestCategory = category, WritingPartTwo = questions }, UserParagraph = string.Empty }); }
public static SpeakingDTO Generate(TestCategoryManager _TestCategoryManager, SpeakingEmbedManager _SpeakingEmbedManager) { var category = _TestCategoryManager .GetForGenerateTest(TestCategory.SPEAKING, Config.SPEAKING_EMBED_PART_ID) .ToList() .Shuffle() // Trộn .First(); var questions = _SpeakingEmbedManager.GetByCategoryId(category.Id); return(new SpeakingDTO { Scores = -1, Speaking = new SpeakingEmbedCombined { TestCategory = category, SpeakingEmbed = questions } }); }
public TestCategoryController(IDataRepository <User> _UserManager, IDataRepository <UserType> _UserTypeManager, IDataRepository <TestCategory> _TestCategoryManager) { this._UserManager = (UserManager)_UserManager; this._UserTypeManager = (UserTypeManager)_UserTypeManager; this._TestCategoryManager = (TestCategoryManager)_TestCategoryManager; }
/// <summary> /// Tạo danh sách câu hỏi theo phần /// </summary> public static List <ListeningBaseCombined> Generate( int partId, TestCategoryManager _TestCategoryManager, ListeningMediaManager _ListeningMediaManager, ListeningBaseQuestionManager _ListeningBaseQuestionManager) { // Khai báo nơi chưa kết quả List <ListeningBaseCombined> result = new List <ListeningBaseCombined>(); // Só phần cần lấy và số câu hỏi từng phần int numberOfCategory; int numberQuestionOfCategory; if (partId == 1) { numberOfCategory = MAX_CATEGORY_LISTENING_PART_1; numberQuestionOfCategory = Config.MAX_LISTENING_PART_1_QUESTION; } else if (partId == 2) { numberOfCategory = MAX_CATEGORY_LISTENING_PART_2; numberQuestionOfCategory = Config.MAX_LISTENING_PART_2_QUESTION; } else { throw new Exception("Wrong part ID"); } // Lấy danh mục var categories = _TestCategoryManager .GetForGenerateTest(TestCategory.LISTENING, partId) .ToList() .Shuffle() // Trộn .Take(numberOfCategory); // Mỗi ListeningBaseCombined tương ứng cho một danh mục foreach (TestCategory category in categories) { // Lấy media var media = _ListeningMediaManager.GetByCategory(category.Id); // Lấy danh sách câu hỏi var questions = _ListeningBaseQuestionManager .GetAll(category.Id) .ToList() .Where(x => !string.IsNullOrEmpty(x.QuestionText) && !string.IsNullOrEmpty(x.Answers)) //.Shuffle() // Trộn câu hỏi .Take(numberQuestionOfCategory) .ToList(); // Kiến tạo, trộn đáp án for (int i = 0; i < questions.Count; i++) { questions[i].AnswerList = JsonConvert.DeserializeObject <List <BaseAnswer> >(questions[i].Answers); if (questions[i].AnswerList != null && questions[i].AnswerList.Count > 0) { questions[i].AnswerList.Shuffle(); // Trộn đáp án } } // Thêm vào kết quả result.Add(new ListeningBaseCombined { TestCategory = category, ListeningMedia = media, ListeningBaseQuestions = questions }); } // Trả về kết quả return(result); }