CurTestPage.xaml.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Navigation;
  6. namespace MyTests.Pages
  7. {
  8. public partial class CurTestPage : Page
  9. {
  10. public CurTestPage()
  11. {
  12. InitializeComponent();
  13. QuestionBox.Text = Session.Quest.Content[Session.CurQuestion];
  14. }
  15. private void NextButton_Click(object sender, RoutedEventArgs e)
  16. {
  17. try
  18. {
  19. string strContent = Session.Quest.Content[Session.CurQuestion];
  20. string strAnswer = Session.Quest.Answer[Session.CurQuestion];
  21. if (cdb.db.Answers.Select(item => item.IdQuestion + " " + item.IdUser).Contains(cdb.db.Questions.Where(item => item.Content == strContent && item.Answer == strAnswer).Select(item => item.IdQuestion).FirstOrDefault() + " " + Session.User.IdUser))
  22. {
  23. Answers answer = cdb.db.Answers.Where(item => item.IdQuestion == cdb.db.Questions.Where(i => i.Content == strContent && i.Answer == strAnswer).Select(i => i.IdQuestion).FirstOrDefault() && item.IdUser == Session.User.IdUser).FirstOrDefault();
  24. answer.Answer = AnswerBox.Text;
  25. cdb.db.SaveChanges();
  26. }
  27. else
  28. {
  29. Answers newAnswer = new Answers()
  30. {
  31. IdUserAnswer = cdb.db.Answers.Select(p => p.IdUserAnswer).DefaultIfEmpty(0).Max() + 1,
  32. IdQuestion = cdb.db.Questions.Where(item => item.Content == strContent && item.Answer == strAnswer).Select(item => item.IdQuestion).FirstOrDefault(),
  33. IdUser = Session.User.IdUser,
  34. Answer = AnswerBox.Text
  35. };
  36. cdb.db.Answers.Add(newAnswer);
  37. cdb.db.SaveChanges();
  38. }
  39. }
  40. catch (Exception ex)
  41. {
  42. new ErrorWindow(ex.Message).ShowDialog();
  43. }
  44. if (AnswerBox.Text.ToLower().Trim() == Session.Quest.Answer[Session.CurQuestion].ToLower().Trim())
  45. Session.Points++;
  46. if (Session.CurQuestion >= Session.OpenedTest.Questions.Count() - 1)
  47. NavigationService.Navigate(new Pages.ResultTestPage());
  48. else
  49. {
  50. Session.CurQuestion++;
  51. NavigationService.Navigate(new Pages.CurTestPage());
  52. }
  53. }
  54. }
  55. }