StaffChangeOrAddPage.xaml.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using Microsoft.Win32;
  2. using System;
  3. using System.Linq;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using System.Windows.Input;
  7. using System.Windows.Media.Imaging;
  8. namespace Hotel_Course_Project
  9. {
  10. /// <summary>
  11. /// Логика взаимодействия для StaffChangeOrAddPage.xaml
  12. /// </summary>
  13. public partial class StaffChangeOrAddPage : Page
  14. {
  15. public byte[] cotractImage;
  16. public string FilePath;
  17. public Staff _staff;
  18. public int IdStaff = 0;
  19. public StaffChangeOrAddPage(Staff staff)
  20. {
  21. InitializeComponent();
  22. DataContext = staff;
  23. _staff = staff;
  24. SStaffRole.ItemsSource = DataBase.db.StaffRole.ToList();
  25. if (DataContext != null)
  26. {
  27. SStaffRole.Text = staff.ToString();
  28. StaffChangeOrAddBtn.Content = "Изменить данные";
  29. this.Title = "Информация о сотруднике";
  30. IdStaff = staff.Id;
  31. StaffDeleteOrRestoreBtn.Visibility = Visibility.Visible;
  32. if (staff.Id_PersStatus == 1)
  33. {
  34. StaffDeleteOrRestoreBtn.Content = "Удалить сотрудника";
  35. }
  36. else
  37. {
  38. StaffDeleteOrRestoreBtn.Content = "Востановить сотрудника";
  39. }
  40. }
  41. else
  42. {
  43. StaffChangeOrAddBtn.Content = "Добавить сотрудника";
  44. this.Title = "Окно добавления сотрудника";
  45. StaffDeleteOrRestoreBtn.Visibility = Visibility.Collapsed;
  46. }
  47. if (staff == null || staff.PhotoContract == null)
  48. {
  49. SContractPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/no_picture.jpg"));
  50. }
  51. }
  52. private void StaffChangeOrAddBtn_Click(object sender, RoutedEventArgs e)
  53. {
  54. if (DataContext == null)
  55. {
  56. var existUser = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text);
  57. if (existUser != null && DataContext == null)
  58. {
  59. MessageBox.Show("Такой логин уже имеется в базе данных!");
  60. return;
  61. }
  62. }
  63. if (SLName.Text == null || SFName.Text == null || SLogin.Text == null || SPassword.Text == null)
  64. {
  65. MessageBox.Show("Ключевые поля не были заполнены!");
  66. return;
  67. }
  68. else
  69. {
  70. var existUserS = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text && item.Id != IdStaff);
  71. if (existUserS != null)
  72. {
  73. MessageBox.Show("Такой логин уже имеется в базе данных у другого сотрудника!");
  74. return;
  75. }
  76. else if (DataContext == null)
  77. {
  78. int numRole = DataBase.db.StaffRole.SingleOrDefault(item => item.Name == SStaffRole.Text).Id;
  79. Staff staff = new Staff()
  80. {
  81. LName = SLName.Text,
  82. FName = SFName.Text,
  83. MName = SMName.Text,
  84. Login = SLogin.Text,
  85. Password = SPassword.Text,
  86. Id_StaffRole = numRole,
  87. PhotoContract = cotractImage,
  88. Id_PersStatus = 1
  89. };
  90. DataBase.db.Staff.Add(staff);
  91. var lastId = DataBase.db.Staff.OrderByDescending(item => item.Id).FirstOrDefault().Id;
  92. DataBase.db.SaveChanges();
  93. MessageBox.Show("Сотрудник добавлен в базу.");
  94. }
  95. else
  96. {
  97. MessageBox.Show("Данные по сотрудинку изменены.");
  98. _staff.PhotoContract = cotractImage;
  99. DataBase.db.SaveChanges();
  100. }
  101. PChanger.MainFrame.GoBack();
  102. }
  103. }
  104. private void StaffDeleteOrRestoreBtn_Click(object sender, RoutedEventArgs e)
  105. {
  106. if (_staff.Id_PersStatus == 1)
  107. {
  108. _staff.Id_PersStatus = 2;
  109. MessageBox.Show("Статус пользователя изменился на <удалён>");
  110. }
  111. else
  112. {
  113. _staff.Id_PersStatus = 1;
  114. MessageBox.Show("Статус пользователя восстановлен");
  115. }
  116. DataBase.db.SaveChanges();
  117. PChanger.MainFrame.GoBack();
  118. }
  119. private void SContractPhoto_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  120. {
  121. OpenFileDialog openFileDialog = new OpenFileDialog();
  122. if (openFileDialog.ShowDialog() == true)
  123. {
  124. FilePath = openFileDialog.FileName;
  125. string uriString = $"{FilePath}";
  126. BitmapImage bitimage = new BitmapImage(new Uri(@uriString));
  127. SContractPhoto.Source = bitimage;
  128. cotractImage = SomeMethods.ConvertBitmapImageToByte(bitimage);
  129. }
  130. else
  131. {
  132. FilePath = string.Empty;
  133. }
  134. }
  135. }
  136. }