Exemplo n.º 1
0
        public override void OnEnter()
        {
            if (Settings.IsOfflineMode)
            {
                MessageBox.Show("Dit scherm is niet beschikbaar in offline mode.");
                _router.GoBack();
                return;
            }

            TemplateQuestions.Clear();

            if (ViewBag?.Template == null)
            {
                Checklist = new Checklist();
                return;
            }

            Checklist = ViewBag.Template.GetCleanModel();

            const string regex = "\\s{1}[Vv]{1}\\d{1,}$";

            if (Regex.Match(Checklist.Name, regex).Success)
            {
                Checklist.Name = Regex.Replace(Checklist.Name, regex, string.Empty);
            }

            Checklist.Name += $" v{Checklist.Version}";

            RaisePropertyChanged(nameof(Checklist));

            _checklistQuestionRepository.GetChecklistQuestions(Checklist.Parent).ForEach(q => TemplateQuestions.Add(q.GetCleanModel()));

            _questionRepository.All().ForEach(ExistingQuestions.Add);
        }
        public Action AddQuizCommand(
            User user,
            Message message,
            QueueMessage nextFalseMessage,
            QueueMessage wrongMessage)
        {
            var answer = message.Text;

            return(() =>
            {
                if (Compare(answer, "Викторина") || Compare(answer, "Да"))
                {
                    var result = _resultRepository.AddUserQuiz(user);

                    // generating answers from all questions
                    var answers = _questionRepository.All().Select(q => new QuestionAnswer
                    {
                        QuestionId = q.Id,
                        Point = 0,
                        IsAnswered = false
                    }).ToArray();

                    // random sort answers
                    var random = new Random();
                    var randomNumbers = answers.Select(r => random.Next()).ToArray();
                    var orderedAnswers = answers.Zip(randomNumbers, (r, o) => new { Result = r, Order = o })
                                         .OrderBy(o => o.Order)
                                         .Select(o => o.Result);

                    result.QuestionAnswers.AddRange(orderedAnswers);

                    _resultRepository.UpdateQuestionsForUser(result);
                    _userRepository.SetQuizMember(user.ChatId, true);

                    // add first question
                    HandleNewQuestion(result, message);
                }
                else if (Compare(answer, "Опрос") || Compare(answer, "Нет"))
                {
                    _userRepository.SetQuizMember(user.ChatId, false);
                    _queueService.Add(nextFalseMessage);
                }
                else
                {
                    _queueService.Add(wrongMessage);
                }
            });
        }
Exemplo n.º 3
0
        public IQueryable <QuestionInfo> Query(Expression <Func <DbModel.QuestionInfo, bool> > expression)
        {
            IEnumerable <DbModel.QuestionInfo> questions = _repository.All(expression);
            List <QuestionInfo> results = new List <QuestionInfo>();

            foreach (DbModel.QuestionInfo question in questions)
            {
                QuestionInfo result = new QuestionInfo();
                result.Id                = question.Id;
                result.Name              = question.QuestionName;
                result.QuestionScore     = question.QuestionScore;
                result.QuestionType      = (QuestionType)question.QuestionType;
                result.QuestionGroupName = question.QuestionGroupName;
                //result.Solutions = QuerySolutions(question.Solutions);
                results.Add(result);
            }
            foreach (QuestionInfo item in results)
            {
                item.Solutions = QuerySolutions(item.Id);
            }
            return(results.AsQueryable <QuestionInfo>());
        }
Exemplo n.º 4
0
        public ActionResult Index()
        {
            IEnumerable <Question> model = repository.All().Reverse();

            return(View(model));
        }