Example #1
0
        public ActionResult Work(List <AnswersVM> resultQuiz)
        {
            List <AnswersVM> finalResultQuiz = new List <AnswersVM>();

            foreach (AnswersVM answser in resultQuiz)
            {
                if (answser.Answer != null)
                {
                    AnswersVM result = questionService.GetAll().Where(x => x.ID == answser.QuestionID)
                                       .FirstOrDefault().Answers.Where(d => d.Correct).Select(a => new AnswersVM
                    {
                        QuestionID = answser.QuestionID,
                        Answer     = a.Desctiption,
                        IsCorrect  = a.Desctiption.ToLower().Equals(answser.Answer.ToLower())
                    }).FirstOrDefault();

                    finalResultQuiz.Add(result);
                }
                else
                {
                    AnswersVM result = questionService.GetAll().Where(x => x.ID == answser.QuestionID)
                                       .FirstOrDefault().Answers.Where(d => d.Correct).Select(a => new AnswersVM
                    {
                        QuestionID = answser.QuestionID,
                        Answer     = a.Desctiption,
                        IsCorrect  = false
                    }).FirstOrDefault();

                    finalResultQuiz.Add(result);
                }
            }
            int count = 0, correct = 0;

            foreach (var item in finalResultQuiz)
            {
                ++count;
                if (item.IsCorrect)
                {
                    ++correct;
                }
            }
            var question = questionService.GetAll().Where(x => x.ID == finalResultQuiz[0].QuestionID).FirstOrDefault();

            if (question != null)
            {
                var    identity = (ClaimsIdentity)User.Identity;
                var    id       = identity.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value;
                var    user     = userService.Get(int.Parse(id));
                double mark     = (double)correct / count;
                var    grade    = new Grade
                {
                    TestID = question.TestID,
                    UserID = user.ID,
                    Value  = mark
                };

                gradeService.Create(grade);
            }
            return(Json(new { result = finalResultQuiz }, JsonRequestBehavior.AllowGet));
        }
        private void EditAnswers(ITest test)
        {
            var vm = new AnswersVM(test);
            var w  = new AnswersWindow();

            w.DataContext = vm;
            w.ShowDialog();

            Update(test);
        }
Example #3
0
 public ActionResult <AnswersPost> CreateAnswer([FromBody] AnswersVM entry)
 {
     if (_context.QuestionPosts.Any(a => a.Id == entry.QuestionPostId))
     {
         var nAnswer = new AnswersPost
         {
             AnswerContent  = entry.AnswerContent,
             QuestionPostId = entry.QuestionPostId
         };
         _context.AnswersPosts.Add(nAnswer);
         _context.SaveChanges();
         return(nAnswer);
     }
     else
     {
         return(BadRequest());
     }
 }
        private void AddNewAnswerToStackPanel(AnswersVM answer)
        {
            Grid g = new Grid();
            g.Name = "AnswerGrid" + AnswersCount.ToString();
            RegisterName(g.Name, g);
            g.Tag = AnswersCount.ToString();
            g.MinHeight = 30;

            ColumnDefinition cl = new ColumnDefinition { Width = new GridLength(40.0, GridUnitType.Pixel) };
            ColumnDefinition cm = new ColumnDefinition { Width = new GridLength(20.0, GridUnitType.Pixel) };
            ColumnDefinition cr = new ColumnDefinition { };
            g.ColumnDefinitions.Add(cl);
            g.ColumnDefinitions.Add(cm);
            g.ColumnDefinitions.Add(cr);

            Button btn = new Button();
            btn.VerticalAlignment = VerticalAlignment.Center;
            btn.MinHeight = 35;
            btn.Name = "AnswerCancelBtn" + AnswersCount.ToString();
            RegisterName(btn.Name, btn);
            btn.Tag = AnswersCount.ToString();
            btn.Click += AddQARemoveBtnClicked;
            Grid.SetColumn(btn, 0);
            g.Children.Add(btn);

            RadioButton rb = new RadioButton();
            rb.Name = "AnswerRadioButton" + AnswersCount.ToString();
            RegisterName(rb.Name, rb);
            rb.Click += AddQRadioBClicked;//
            rb.Tag = AnswersCount.ToString();
            rb.HorizontalAlignment = HorizontalAlignment.Center;
            rb.VerticalAlignment = VerticalAlignment.Center;
            Grid.SetColumn(rb, 1);
            g.Children.Add(rb);

            RichTextBox textBox = new RichTextBox();
            textBox.Name = "AnswerRTB" + AnswersCount.ToString();
            RegisterName(textBox.Name, textBox);
            textBox.Margin = new Thickness(5);
            textBox.Tag = AnswersCount.ToString();
            textBox.FontSize = 20;
            Grid.SetColumn(textBox, 2);
            g.Children.Add(textBox);

            if (answer != null)
            {
                if (answer.IsCorrectAnswer)
                {
                    rb.IsChecked = true;
                }
                textBox.Selection.Text = answer.AnswerBody;
            }

            AnswersDictionary.Add(AnswersCount, textBox.Name);
            AnswersCount++;
            AnswersStackPannel.Children.Add(g);

            if (answer != null)
            {

            }
        }
        private QuestionVM ConvertModelToVM(QuestionModel Question)
        {
            if (Question == null) return null;

            QuestionVM qvm = new QuestionVM();
            qvm.QID = Question.QID;
            qvm.QBody = Question.QBody;
            if (qvm.QBody.Length > 40)
            {
                qvm.QHeader = qvm.QBody.Substring(0, 40) + "...";
            }
            else qvm.QHeader = qvm.QBody;

            qvm.HasImages = Question.HasImages;
            qvm.Answers = new ObservableCollection<AnswersVM>();
            for (int j = 0; j < Question.Answers.Count; j++)
            {
                AnswersVM a = new AnswersVM();
                a.AID = Question.Answers[j].AID;
                a.QID = Question.Answers[j].QID;
                a.AnswerBody = Question.Answers[j].AnswerBody;
                a.IsCorrectAnswer = Question.Answers[j].IsCorrectAnswer;
                qvm.Answers.Add(a);
            }
            qvm.Images = new ObservableCollection<ImageModel>();
            for (int j = 0; j < Question.Images.Count; j++)
            {
                qvm.Images.Add(Question.Images[j]);
            }

            return qvm;
        }