ClientChangeOrAddPage.xaml.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. /// Логика взаимодействия для ClientChangeOrAddPage.xaml
  12. /// </summary>
  13. public partial class ClientChangeOrAddPage : Page
  14. {
  15. public Client _client;
  16. public Client addClient;
  17. public int idClient;
  18. public byte[] PassportImage;
  19. public string FilePath;
  20. public ClientChangeOrAddPage(Client client)
  21. {
  22. InitializeComponent();
  23. DataContext = client;
  24. _client = client;
  25. addClient = client;
  26. if (DataContext != null)
  27. {
  28. ClientChangeOrAddBtn.Content = "Изменить данные";
  29. this.Title = "Информация о клиенте";
  30. idClient = client.Id;
  31. ClientDeleteOrRestoreBtn.Visibility = Visibility.Visible;
  32. if (client.Id_PersStatus == 1)
  33. {
  34. ClientDeleteOrRestoreBtn.Content = "Удалить клиента";
  35. }
  36. else
  37. {
  38. ClientDeleteOrRestoreBtn.Content = "Востановить клиента";
  39. }
  40. }
  41. else
  42. {
  43. ClientChangeOrAddBtn.Content = "Добавить клиента";
  44. this.Title = "Окно добавления клиента";
  45. ClientDeleteOrRestoreBtn.Visibility = Visibility.Collapsed;
  46. }
  47. }
  48. private void ClientChangeOrAddBtn_Click(object sender, RoutedEventArgs e)
  49. {
  50. if (DataContext == null)
  51. {
  52. }
  53. if (CLName.Text == null || CFName.Text == null)
  54. {
  55. MessageBox.Show("Ключевые поля не были заполнены!");
  56. return;
  57. }
  58. else if (CPassportPhoto == null)
  59. {
  60. MessageBox.Show("Фотография паспорта не была загружена!");
  61. return;
  62. }
  63. else
  64. {
  65. if (DataContext == null)
  66. {
  67. if (TestAddClient(CLName.Text, CFName.Text, CMName.Text) == true)
  68. {
  69. DataBase.db.Client.Add(addClient);
  70. var lastId = DataBase.db.Client.OrderByDescending(item => item.Id).FirstOrDefault().Id;
  71. DataBase.db.Client.SingleOrDefault(item => item.Id == lastId).Passport = PassportImage;
  72. DataBase.db.SaveChanges();
  73. MessageBox.Show("Клиент добавлен в базу.");
  74. }
  75. else
  76. {
  77. MessageBox.Show("Ключевые поля не были заполнены!");
  78. }
  79. //Client client = new Client()
  80. //{
  81. // LName = CLName.Text,
  82. // FName = CFName.Text,
  83. // MName = CMName.Text,
  84. // Passport = PassportImage,
  85. // Id_PersStatus = 1
  86. //};
  87. //DataBase.db.Client.Add(client);
  88. //var lastId = DataBase.db.Client.OrderByDescending(item => item.Id).FirstOrDefault().Id;
  89. //DataBase.db.SaveChanges();
  90. //MessageBox.Show("Клиент добавлен в базу.");
  91. }
  92. else
  93. {
  94. MessageBox.Show("Данные по клиенту изменены.");
  95. _client.Passport = PassportImage;
  96. DataBase.db.SaveChanges();
  97. }
  98. PChanger.MainFrame.GoBack();
  99. }
  100. }
  101. public bool TestAddClient(string LName, string FName, string MName)
  102. {
  103. if (LName == null || LName == "" || FName == null || FName == "")
  104. {
  105. return false;
  106. }
  107. else
  108. {
  109. Client client = new Client()
  110. {
  111. LName = LName,
  112. FName = FName,
  113. MName = MName,
  114. Id_PersStatus = 1
  115. };
  116. addClient = client;
  117. return true;
  118. }
  119. }
  120. private void ClientDeleteOrRestoreBtn_Click(object sender, RoutedEventArgs e)
  121. {
  122. if (_client.Id_PersStatus == 1)
  123. {
  124. _client.Id_PersStatus = 2;
  125. MessageBox.Show("Статус пользователя изменился на <удалён>");
  126. }
  127. else
  128. {
  129. _client.Id_PersStatus = 1;
  130. MessageBox.Show("Статус пользователя восстановлен");
  131. }
  132. DataBase.db.SaveChanges();
  133. PChanger.MainFrame.GoBack();
  134. }
  135. private void CPassportPhoto_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  136. {
  137. OpenFileDialog openFileDialog = new OpenFileDialog();
  138. if (openFileDialog.ShowDialog() == true)
  139. {
  140. FilePath = openFileDialog.FileName;
  141. string uriString = $"{FilePath}";
  142. BitmapImage bitimage = new BitmapImage(new Uri(@uriString));
  143. CPassportPhoto.Source = bitimage;
  144. PassportImage = SomeMethods.ConvertBitmapImageToByte(bitimage);
  145. }
  146. else
  147. {
  148. FilePath = string.Empty;
  149. }
  150. }
  151. private void Page_Loaded(object sender, RoutedEventArgs e)
  152. {
  153. if (_client == null || _client.Passport == null)
  154. {
  155. CPassportPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/PersDefaultPhoto.png"));
  156. }
  157. }
  158. }
  159. }