예제 #1
0
        /// <summary>
        /// Remove the question's answer.
        /// </summary>
        /// <param name="id">The answer's id.</param>
        /// <returns>Refresh page</returns>
        public async Task <IActionResult> OnPostDeleteAsync(int id)
        {
            LinkQuestionAnswerData      linkQuestionAnswerData         = new LinkQuestionAnswerData(_db);
            DataLinkQuestionAnswerModel newDataLinkQuestionAnswerModel = new DataLinkQuestionAnswerModel
            {
                Id         = string.Empty,
                QuestionId = DisplayLink.QuestionId,
                AnswerId   = id.ToString(),
            };

            await linkQuestionAnswerData.DeleteLink(newDataLinkQuestionAnswerModel);

            return(RedirectToPage("./linkquestiontoanswer", new { id = DisplayLink.QuestionId }));
        }
예제 #2
0
        /// <summary>
        /// Add a new answer to the question.
        /// </summary>
        /// <returns>Refresh the page.</returns>
        public async Task <IActionResult> OnPost()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            LinkQuestionAnswerData      linkQuestionAnswerData     = new LinkQuestionAnswerData(_db);
            DataLinkQuestionAnswerModel newLinkQuestionAnswerModel = new DataLinkQuestionAnswerModel
            {
                AnswerId   = DisplayLink.AnswerId,
                Id         = DisplayLink.Id,
                QuestionId = DisplayLink.QuestionId,
            };

            // Getting the question type
            QuestionData questionData      = new QuestionData(_db);
            var          dataQuestionModel = await questionData.GetQuestionById(newLinkQuestionAnswerModel.QuestionId);

            QuestionTypeData questionTypeData = new QuestionTypeData(_db);
            var dataQuestionTypeModel         = await questionTypeData.GetQuestionTypeById(dataQuestionModel[0].QuestionTypeId);

            // Getting the question answers
            List <DisplayAnswerModel> questionAnswers = await GetQuestionAnswers(newLinkQuestionAnswerModel.QuestionId);

            // Getting the user answer
            AnswerData answerData      = new AnswerData(_db);
            var        dataAnswerModel = await answerData.GetAnswerById(newLinkQuestionAnswerModel.AnswerId);

            if (dataAnswerModel[0].Type == true)
            {
                // If the answer to add is correct and it already exists a correct response in simple and boolean types, we shouldn't add the answer
                if ((dataQuestionTypeModel[0].QuestionType == "Simple" || dataQuestionTypeModel[0].QuestionType == "Boolean") &&
                    questionAnswers.Any(x => x.Type == true))
                {
                    return(RedirectToPage("./linkquestiontoanswer", new { id = DisplayLink.QuestionId }));
                }
            }

            await linkQuestionAnswerData.InsertLink(newLinkQuestionAnswerModel);

            return(RedirectToPage("./linkquestiontoanswer", new { id = DisplayLink.QuestionId }));
        }
예제 #3
0
        public Task DeleteLink(DataLinkQuestionAnswerModel dataLinkQuestionAnswerModel)
        {
            string sql = @"delete from linkquestionanswer where questionId=@QuestionId and answerId=@AnswerId;";

            return(_db.SaveData(sql, dataLinkQuestionAnswerModel));
        }
예제 #4
0
        public Task InsertLink(DataLinkQuestionAnswerModel dataLinkQuestionAnswerModel)
        {
            string sql = @"insert into linkquestionanswer (questionId, answerId) values (@QuestionId, @AnswerId);";

            return(_db.SaveData(sql, dataLinkQuestionAnswerModel));
        }