using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace PsychoTest.Pages { /// /// Логика взаимодействия для UserTests.xaml /// public partial class UserTests : Page { public PsychoBase DB = new PsychoBase(); int usid; public UserTests(int id) { InitializeComponent(); TestList.ItemsSource = DB.Tests.ToList(); List cats = DB.Categories.ToList(); cats.Insert(0, new Categories() { Category_name = "Все"}); CategoryFilter.ItemsSource = cats.Select(x=>x.Category_name); usid = id; } private void Image_Loaded(object sender, RoutedEventArgs e) { Image img = (Image)sender; int id = Convert.ToInt32(img.Uid); Tests test = DB.Tests.Where(x => x.Test_id == id).FirstOrDefault(); byte[] bt = test.Image; if(bt != null) { ShowImage(bt, img); } else { img.Source = img.Source = new BitmapImage(new Uri("/Resources/picture.png", UriKind.RelativeOrAbsolute)); } } void ShowImage(byte[] arr, System.Windows.Controls.Image img) { BitmapImage BI = new BitmapImage(); BI.BeginInit(); BI.StreamSource = new MemoryStream(arr); BI.EndInit(); img.Source = BI; } public void Filter() { List FilterList = DB.Tests.ToList(); if(CategoryFilter.SelectedIndex!= 0) { FilterList = FilterList.Where(x=>x.Id_category == CategoryFilter.SelectedIndex+1).ToList(); } if (!string.IsNullOrEmpty(SearchBar.Text)) { FilterList = FilterList.Where(x=>x.Test_name.ToUpper().Contains(SearchBar.Text.ToUpper())).ToList(); } TestList.ItemsSource = FilterList; } private void ChangeCategory(object sender, SelectionChangedEventArgs e) { Filter(); } private void SearchChanged(object sender, TextChangedEventArgs e) { Filter(); } private void GoToTestPage(object sender, RoutedEventArgs e) { Button bt = (Button)sender; int test_id = Convert.ToInt32(bt.Uid); MainFrame.frame.Navigate(new TestPage(test_id,usid)); } private void GoToUserPage(object sender, RoutedEventArgs e) { MainFrame.frame.Navigate(new UserPage(usid)); } } }