Exemple #1
0
        public async Task <ActionResult> CreateQuestionType([FromBody] QuestionTypeModel questionTypeModel)
        {
            int    result  = 0;
            string message = String.Empty;

            try
            {
                var currentUser = User.Identity.Name;
                if (questionTypeModel.Id == 0)
                {
                    result = await questionTypeBll.AddQuestionType(questionTypeModel.TypeName, questionTypeModel.Describtion, currentUser);

                    if (result == -1)
                    {
                        message = "已存在此类型,不能重复添加";
                    }
                }
                else
                {
                    result = await questionTypeBll.UpdateQuestionType(questionTypeModel.TypeName, questionTypeModel.Describtion, currentUser, questionTypeModel.Id);
                }
            }
            catch (Exception e)
            {
                logger.Log(Level.Error, e, "CreateQuestionType");
            }

            return(Json(new { Id = result, Message = message }, JsonRequestBehavior.AllowGet));
        }
 public QuestionModel(QuestionTypeModel questionType, string question, string[] answers, double idealTime)
 {
     this.questionType = questionType;
     this.answers      = answers;
     this.question     = question;
     this.idealTime    = idealTime;
 }
Exemple #3
0
        public async Task <QuestionTypeModel> InsertQuestionTypeAsync(QuestionTypeModel questionType)
        {
            questionType.AddedDate = DateTime.Now;
            var newQuestionType = await questionTypeRepository.InsertAsync(mapper.Map <QuestionType>(questionType));

            await questionTypeRepository.SaveChangesAsync();

            return(mapper.Map <QuestionTypeModel>(newQuestionType));
        }
Exemple #4
0
        public async Task <QuestionTypeModel> UpdateQuestionTypeAsync(QuestionTypeModel questionType)
        {
            var questionTypeForUpdate = await questionTypeRepository.GetAsync(questionType.Id);

            questionTypeForUpdate.ModifiedDate = DateTime.Now;
            questionTypeForUpdate.Name         = questionTypeForUpdate.Name;

            await questionTypeRepository.SaveChangesAsync();

            return(mapper.Map <QuestionTypeModel>(questionTypeForUpdate));
        }
        public async Task <IHttpActionResult> Update([FromBody] QuestionTypeModel questionType)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var created = await questionTypeService.UpdateQuestionTypeAsync(questionType);

            return(Ok(created));
        }
 //
 public void StartQuestionRound(QuestionTypeModel questionTypeModel, Action <List <QuestionResultModel> > onRoundResult)
 {
     if (!isDebug)
     {
         InitQuestionSystem();
     }
     roundResultList.Clear();
     questionRoundTimer = new QuestionSystemTimer();
     questionRoundTimer.InitQuestionSystemTimer(true);
     this.onRoundResult = onRoundResult;
     NextQuestion();
 }
Exemple #7
0
        private QuizQuestionResult ConvertDto(QuizQuestionResultDTO resultDTO, QuizResult quizResult)
        {
            var instance = new QuizQuestionResult
            {
                Question     = resultDTO.question,
                IsCorrect    = resultDTO.isCorrect,
                QuestionType = QuestionTypeModel.GetById(resultDTO.questionTypeId),
                QuizResult   = quizResult,
                QuestionRef  = QuestionModel.GetOneById(resultDTO.questionId).Value
            };

            return(instance);
        }
        /// <summary>
        /// Get Question Type List
        /// </summary>
        /// <returns></returns>
        public List <QuestionTypeModel> GetQuesetionTypeList()
        {
            List <QuestionTypeModel> lstQuestionTypeModel = new List <QuestionTypeModel>();

            DataTable dtQuestionType = DLQuestionType.GetQuesetionTypeList();

            foreach (DataRow dr in dtQuestionType.Rows)
            {
                QuestionTypeModel objQuestionTypeModel = GetDataRowToEntity <QuestionTypeModel>(dr);
                lstQuestionTypeModel.Add(objQuestionTypeModel);
            }

            return(lstQuestionTypeModel);
        }
    public static List <QuestionModel> GetQuestionList(int numberOfQuestions, QuestionTypeModel questionTypeModel)
    {
        List <QuestionModel>     questions  = new List <QuestionModel>();
        Dictionary <string, int> dictionary = new Dictionary <string, int> ();

        dictionary.Add("SelectLetter", 1);
        dictionary.Add("Typing", 1);
        dictionary.Add("ChangeOrderController", 1);
        dictionary.Add("WordChoice", 1);
        dictionary.Add("SlotMachine", 1);
        dictionary.Add("LetterLink", 1);
        dictionary.Add("StackSwipeController", 1);
        string selectionFromRandom = QuestionGenerator.GetPseudoRandomValue(dictionary);

        for (int i = 0; i < numberOfQuestions; i++)
        {
            if (QuestionSystemController.Instance.isDebug)
            {
                string            questionType  = questionTypeModel.selectionType.GetType().Name;
                QuestionTypeModel questionModel = GetQuestionType(questionType);
                questions.Add(GetQuestion(questionModel));
            }
            else
            {
                QuestionModel questionType = GetQuestion(GetQuestionType(selectionFromRandom));
                if (i < 2)
                {
                    questionType.questionType.contentLevel = QuestionSystemEnums.ContentLevel.Easy;
                }
                else if (i < 5)
                {
                    questionType.questionType.contentLevel = QuestionSystemEnums.ContentLevel.Normal;
                }
                else
                {
                    questionType.questionType.contentLevel = QuestionSystemEnums.ContentLevel.Hard;
                }

                questions.Add(questionType);
            }
        }
        return(questions);
    }
 public void OnDebugClick(Button button)
 {
     questionTypeModel = QuestionBuilder.GetQuestionType(button.name);
     InitQuestionSystem();
 }
 public IActionResult Post(QuestionTypeModel model)
 {
     return(Ok(_questionRepository.SaveQuestionType(model.Name)));
 }
    public static QuestionModel GetQuestion(QuestionTypeModel questionType)
    {
        int           randomize      = 0;
        bool          questionViable = false;
        string        question       = "";
        List <string> answersList    = new List <string> ();
        int           numOfQuestions = questionList.Count;
        int           whileIndex     = 0;
        double        idealTime      = 2.5;

        while (!questionViable)
        {
            randomize = UnityEngine.Random.Range(0, questionList.Count);
            answersList.Clear();
            switch (questionType.questionCategory)
            {
            case QuestionSystemEnums.TargetType.Antonym:
                if (questionList [randomize].hasAntonym.ToString() == "1")
                {
                    if (questionType.selectionType.GetType().Name.Equals("WordChoice"))
                    {
                        answersList.Add(questionList [randomize].antonym1);
                        answersList.Add(questionList [randomize].antonym2);
                        answersList.Add(wrongChoices [randomize]);
                        question       = questionList [randomize].answer;
                        questionViable = true;
                    }
                    else
                    {
                        answersList.Add(questionList [randomize].answer);
                        question       = questionList [randomize].antonym1;
                        questionViable = true;
                    }
                }
                break;

            case QuestionSystemEnums.TargetType.Synonym:
                if (questionList [randomize].hasSynonym.ToString() == "1")
                {
                    if (questionType.selectionType.GetType().Name.Equals("WordChoice"))
                    {
                        answersList.Add(questionList [randomize].synonym1);
                        answersList.Add(questionList [randomize].synonym2);
                        answersList.Add(wrongChoices [randomize]);
                        question       = questionList [randomize].answer;
                        questionViable = true;
                    }
                    else
                    {
                        answersList.Add(questionList [randomize].answer);
                        question       = questionList [randomize].synonym1;
                        questionViable = true;
                    }
                }
                break;

            case QuestionSystemEnums.TargetType.Definition:
                if (questionList [randomize].hasDefinition.ToString() == "1")
                {
                    answersList.Add(questionList [randomize].answer);
                    question       = questionList [randomize].definition;
                    questionViable = true;
                }
                break;

            case QuestionSystemEnums.TargetType.Association:
                if (questionList [randomize].hasClues.ToString() == "1")
                {
                    answersList.Add(questionList [randomize].answer);
                    question = questionList [randomize].clues1 + "/" + questionList [randomize].clues2
                               + "/" + questionList [randomize].clues3 + "/" + questionList [randomize].clues4;
                    questionViable = true;
                }
                break;
            }

            switch (questionType.contentLevel)
            {
            case QuestionSystemEnums.ContentLevel.Easy:
                if (!(questionList [randomize].levelId < 3))
                {
                    questionViable = false;
                }
                break;

            case QuestionSystemEnums.ContentLevel.Normal:
                if (!(questionList [randomize].levelId < 7) && !(questionList [randomize].levelId >= 4))
                {
                    questionViable = false;
                }
                break;

            case QuestionSystemEnums.ContentLevel.Hard:
                if (questionList [randomize].levelId < 7)
                {
                    questionViable = false;
                }
                break;
            }

            if (questionType.selectionType.GetType().Name.Equals("SlotMachine"))
            {
                if (questionList [randomize].answer.Length > 6)
                {
                    questionViable = false;
                }
            }

            if (questionsDone.Contains(question))
            {
                questionViable = false;
                if (whileIndex >= numOfQuestions)
                {
                    questionsDone.Clear();
                }
            }
            whileIndex++;
        }

        switch (questionType.questionCategory)
        {
        case QuestionSystemEnums.TargetType.Definition:
            idealTime += 0.5;
            break;

        case QuestionSystemEnums.TargetType.Association:
            idealTime += 1;
            break;
        }

        switch (questionType.selectionType.GetType().Name)
        {
        case "Typing":
            idealTime += 1.5;
            break;

        case "SelectLetter":
            idealTime += 1;
            break;

        case "SlotMachine":
            idealTime += 1;
            break;

        case "WordChoice":
            idealTime += 0.5;
            break;
        }
        QuestionModel questionGot = new QuestionModel(questionType, question, answersList.ToArray(), idealTime);

        questionsDone.Add(question);
        return(questionGot);
    }
    public static QuestionTypeModel GetQuestionType(string selection)
    {
        Dictionary <QuestionSystemEnums.TargetType, int> targetDictionary = new Dictionary <QuestionSystemEnums.TargetType, int> ();

        targetDictionary.Add(QuestionSystemEnums.TargetType.Definition, 1);
        targetDictionary.Add(QuestionSystemEnums.TargetType.Synonym, 1);
        targetDictionary.Add(QuestionSystemEnums.TargetType.Antonym, 1);
        targetDictionary.Add(QuestionSystemEnums.TargetType.Association, 1);
        QuestionTypeModel typeModel = null;

        switch (selection)
        {
        case "SelectLetter":
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Definition,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.fillAnswer,
                QuestionSystemController.Instance.partSelection.selectLetter
                );
            break;

        case "Typing":
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Definition,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.fillAnswer,
                QuestionSystemController.Instance.partSelection.typing
                );
            break;

        case "ChangeOrderController":
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Synonym,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.showAnswer,
                QuestionSystemController.Instance.partSelection.changeOrder
                );
            break;

        case "WordChoice":
            targetDictionary.Remove(QuestionSystemEnums.TargetType.Definition);
            targetDictionary.Remove(QuestionSystemEnums.TargetType.Association);
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Synonym,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.noAnswer,
                QuestionSystemController.Instance.partSelection.wordChoice
                );
            break;

        case "SlotMachine":
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Definition,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.showAnswer,
                QuestionSystemController.Instance.partSelection.slotMachine
                );
            break;

        case "LetterLink":
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Association,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.showAnswer,
                QuestionSystemController.Instance.partSelection.letterLink
                );
            break;

        case "StackSwipeController":
            typeModel = new QuestionTypeModel(
                //				QuestionSystemEnums.TargetType.Association,
                QuestionGenerator.GetTargetWay(targetDictionary),
                QuestionSystemEnums.ContentLevel.Normal,
                QuestionSystemController.Instance.partAnswer.noAnswer,
                QuestionSystemController.Instance.partSelection.stackSwipe
                );
            break;
        }

        if (QuestionSystemController.Instance.isDebug)
        {
            switch (QuestionSystemController.Instance.difficultyDrop.value)
            {
            case 0: typeModel.contentLevel = QuestionSystemEnums.ContentLevel.Easy;
                break;

            case 1:
                typeModel.contentLevel = QuestionSystemEnums.ContentLevel.Normal;
                break;

            case 2:
                typeModel.contentLevel = QuestionSystemEnums.ContentLevel.Hard;
                break;
            }
        }
        return(typeModel);
    }
 public static QuestionType ToEntity(this QuestionTypeModel model, QuestionType destination)
 {
     return(model.MapTo(destination));
 }
 public static QuestionType ToEntity(this QuestionTypeModel model)
 {
     return(model.MapTo <QuestionTypeModel, QuestionType>());
 }