CurTestPage.xaml.cs 2.7 KB

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