ProfilePage.xaml.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using System.Windows.Media.Imaging;
  6. using System.Windows.Navigation;
  7. namespace MyTests.Pages
  8. {
  9. public partial class ProfilePage : Page
  10. {
  11. public static Users user;
  12. public ProfilePage(Users _user)
  13. {
  14. InitializeComponent();
  15. user = _user;
  16. UserName.Content = user.Login;
  17. if (user.Image == null)
  18. ProfileImage.Source = new BitmapImage(new Uri("../Resources/StandartImage.png", UriKind.RelativeOrAbsolute));
  19. else
  20. ProfileImage.Source = ImagesManip.NewImage(user);
  21. EmailBox.Text = user.Email;
  22. InfoBox.Text = user.Info;
  23. TestsLoading();
  24. }
  25. private void EditImage_Click(object sender, RoutedEventArgs e)
  26. {
  27. if(user == Session.User)
  28. {
  29. BitmapImage image = ImagesManip.SelectImage();
  30. if (image != null)
  31. {
  32. ProfileImage.Source = image;
  33. Session.User.Image = ImagesManip.BitmapSourceToByteArray((BitmapSource)ProfileImage.Source);
  34. cnt.db.SaveChanges();
  35. }
  36. }
  37. }
  38. private void TestsLoading()
  39. {
  40. TestsListBox.Items.Clear();
  41. TestsListBox.ItemsSource = cnt.db.Tests.Where(item => item.IdUser == user.IdUser).ToList();
  42. }
  43. private void SaveButton(object sender, RoutedEventArgs e)
  44. {
  45. if (!Functions.IsValidEmail(EmailBox.Text))
  46. new ErrorWindow("Email введен неверно.").Show();
  47. else if (Functions.IsEmailAlreadyTaken(EmailBox.Text))
  48. new ErrorWindow("Данный email уже используется.").Show();
  49. else
  50. {
  51. Session.User.Email = EmailBox.Text;
  52. Session.User.Info = InfoBox.Text;
  53. cnt.db.SaveChanges();
  54. new ErrorWindow("Успешно.").ShowDialog();
  55. }
  56. }
  57. private void BackButton(object sender, RoutedEventArgs e)
  58. {
  59. }
  60. private void TestsListBox_Selected(object sender, RoutedEventArgs e)
  61. {
  62. try
  63. {
  64. if (((Tests)TestsListBox.SelectedItem) != null)
  65. {
  66. Session.OpenedTest = cnt.db.Tests.Where(item => item.IdTest == ((Tests)TestsListBox.SelectedItem).IdTest).FirstOrDefault();
  67. Session.Points = 0;
  68. Session.CurQuestion = 0;
  69. Session.Quest.Content = cnt.db.Questions.Where(item => item.IdTest == Session.OpenedTest.IdTest).Select(item => item.Content).ToArray();
  70. Session.Quest.Answer = cnt.db.Questions.Where(item => item.IdTest == Session.OpenedTest.IdTest).Select(item => item.Answer).ToArray();
  71. NavigationService.Navigate(new Pages.CurTestPage());
  72. }
  73. }
  74. catch
  75. {
  76. new ErrorWindow("Ошибка открытия теста.").ShowDialog();
  77. }
  78. }
  79. }
  80. }