CheckTestResultsCatalog.xaml.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System.Collections.Generic;
  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 CheckTestResultsCatalog : Page
  9. {
  10. Tests test;
  11. public CheckTestResultsCatalog(Tests _test)
  12. {
  13. InitializeComponent();
  14. test = _test;
  15. AnswersListBox.Items.Clear();
  16. List<AnswerClass> answerList = new List<AnswerClass>();
  17. foreach (Users user in cdb.db.Users.Where(item => item.Answers.Count() > 0))
  18. {
  19. if (cdb.db.Answers.Select(item => item.Questions.IdTest + " " + item.IdUser).Contains(_test.IdTest + " " + user.IdUser))
  20. {
  21. AnswerClass newUserAnswer = new AnswerClass();
  22. newUserAnswer.User = user;
  23. newUserAnswer.Correct = Functions.CorrectAnswersCounter(_test, user);
  24. newUserAnswer.Count = cdb.db.Questions.Where(item => item.IdTest == _test.IdTest).Count();
  25. answerList.Add(newUserAnswer);
  26. }
  27. }
  28. AnswersListBox.ItemsSource = answerList;
  29. if (AnswersListBox.Items.Count == 0)
  30. ResultLabel.Content = "На данный момент тест еще никто не прошел.";
  31. }
  32. private void AnswersListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
  33. {
  34. if (((AnswerClass)AnswersListBox.SelectedItem) != null)
  35. {
  36. NavigationService.Navigate(new Pages.CheckTestResults(test,
  37. cdb.db.Users.Where(item => item.IdUser == ((AnswerClass)AnswersListBox.SelectedItem).User.IdUser).FirstOrDefault()));
  38. }
  39. }
  40. private void BackButton_Click(object sender, RoutedEventArgs e)
  41. {
  42. NavigationService.GoBack();
  43. }
  44. public class AnswerClass
  45. {
  46. public Users User { get; set; }
  47. public int Correct { get; set; }
  48. public int Count { get; set; }
  49. }
  50. }
  51. }