/// <summary> /// Get a random question linked to the quiz. /// </summary> /// <param name="id">The quiz id.</param> /// <returns>A random question.</returns> private async Task <DisplayGameQuestionModel> GetRandomQuestionFromQuiz(string id) { Random random = new Random(); // Database related helpers LinkQuizQuestionData linkQuizQuestionData = new LinkQuizQuestionData(_db); QuestionData questionData = new QuestionData(_db); QuestionTypeData questionTypeData = new QuestionTypeData(_db); // Get Quiz questions and select one randomly List <DataLinkQuizQuestionModel> dataLinkQuizQuestionModels = await linkQuizQuestionData.GetLinkedQuestions(id); DataLinkQuizQuestionModel randomlySelectedlink = dataLinkQuizQuestionModels[random.Next(dataLinkQuizQuestionModels.Count)]; DataQuestionModel randomlySelectedQuestion = await questionData.GetQuestionById(randomlySelectedlink.QuestionId).ContinueWith((x) => { return(x.Result[0]); }); // Get Question Type to get the real name DataQuestionTypeModel dataQuestionTypeModel = await questionTypeData.GetQuestionTypeById(randomlySelectedQuestion.QuestionTypeId).ContinueWith((x) => { return(x.Result[0]); }); // Result the translated object return(new DisplayGameQuestionModel { Id = randomlySelectedQuestion.Id, Question = randomlySelectedQuestion.Question, QuestionType = dataQuestionTypeModel.QuestionType, }); }
/// <summary> /// Remove the question of the quiz. /// </summary> /// <param name="id">The question's id.</param> /// <returns>Refresh the page</returns> public async Task <IActionResult> OnPostDeleteAsync(int id) { LinkQuizQuestionData linkQuizQuestionData = new LinkQuizQuestionData(_db); DataLinkQuizQuestionModel newDataLinkQuizQuestionModel = new DataLinkQuizQuestionModel { Id = string.Empty, QuestionId = id.ToString(), QuizId = DisplayLink.QuizId, }; await linkQuizQuestionData.DeleteQuestion(newDataLinkQuizQuestionModel); return(RedirectToPage("./linkquiztoquestion", new { id = DisplayLink.QuizId })); }
/// <summary> /// Adding a new question to the quiz. /// </summary> /// <returns>Refresh the page.</returns> public async Task <IActionResult> OnPost() { if (!ModelState.IsValid) { return(Page()); } LinkQuizQuestionData linkQuizQuestionData = new LinkQuizQuestionData(_db); DataLinkQuizQuestionModel newLinkQuizQuestionModel = new DataLinkQuizQuestionModel { Id = DisplayLink.Id, QuestionId = DisplayLink.QuestionId, QuizId = DisplayLink.QuizId, }; await linkQuizQuestionData.InsertLink(newLinkQuizQuestionModel); return(RedirectToPage("./linkquiztoquestion", new { id = DisplayLink.QuizId })); }
public Task DeleteQuestion(DataLinkQuizQuestionModel dataLinkQuizQuestionModel) { string sql = @"delete from linkquizquestion where quizId=@QuizId and questionId=@QuestionId;"; return(_db.SaveData(sql, dataLinkQuizQuestionModel)); }
public Task InsertLink(DataLinkQuizQuestionModel dataLinkQuizQuestionModel) { string sql = @"insert into linkquizquestion (quizId, questionId) values (@QuizId, @QuestionId);"; return(_db.SaveData(sql, dataLinkQuizQuestionModel)); }