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); }
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; }