UserTests.xaml.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace PsychoTest.Pages
  18. {
  19. /// <summary>
  20. /// Логика взаимодействия для UserTests.xaml
  21. /// </summary>
  22. public partial class UserTests : Page
  23. {
  24. public PsychoBase DB = new PsychoBase();
  25. int usid;
  26. public UserTests(int id)
  27. {
  28. InitializeComponent();
  29. TestList.ItemsSource = DB.Tests.ToList();
  30. List<Categories> cats = DB.Categories.ToList();
  31. cats.Insert(0, new Categories() { Category_name = "Все"});
  32. CategoryFilter.ItemsSource = cats.Select(x=>x.Category_name);
  33. usid = id;
  34. }
  35. private void Image_Loaded(object sender, RoutedEventArgs e)
  36. {
  37. Image img = (Image)sender;
  38. int id = Convert.ToInt32(img.Uid);
  39. Tests test = DB.Tests.Where(x => x.Test_id == id).FirstOrDefault();
  40. byte[] bt = test.Image;
  41. if(bt != null)
  42. {
  43. ShowImage(bt, img);
  44. }
  45. else
  46. {
  47. img.Source = img.Source = new BitmapImage(new Uri("/Resources/picture.png", UriKind.RelativeOrAbsolute));
  48. }
  49. }
  50. void ShowImage(byte[] arr, System.Windows.Controls.Image img)
  51. {
  52. BitmapImage BI = new BitmapImage();
  53. BI.BeginInit();
  54. BI.StreamSource = new MemoryStream(arr);
  55. BI.EndInit();
  56. img.Source = BI;
  57. }
  58. public void Filter()
  59. {
  60. List<Tests> FilterList = DB.Tests.ToList();
  61. if(CategoryFilter.SelectedIndex!= 0)
  62. {
  63. FilterList = FilterList.Where(x=>x.Id_category == CategoryFilter.SelectedIndex+1).ToList();
  64. }
  65. if (!string.IsNullOrEmpty(SearchBar.Text))
  66. {
  67. FilterList = FilterList.Where(x=>x.Test_name.ToUpper().Contains(SearchBar.Text.ToUpper())).ToList();
  68. }
  69. TestList.ItemsSource = FilterList;
  70. }
  71. private void ChangeCategory(object sender, SelectionChangedEventArgs e)
  72. {
  73. Filter();
  74. }
  75. private void SearchChanged(object sender, TextChangedEventArgs e)
  76. {
  77. Filter();
  78. }
  79. private void GoToTestPage(object sender, RoutedEventArgs e)
  80. {
  81. Button bt = (Button)sender;
  82. int test_id = Convert.ToInt32(bt.Uid);
  83. MainFrame.frame.Navigate(new TestPage(test_id,usid));
  84. }
  85. private void GoToUserPage(object sender, RoutedEventArgs e)
  86. {
  87. MainFrame.frame.Navigate(new UserPage(usid));
  88. }
  89. }
  90. }