using Microsoft.Win32; using System; using System.Collections.Generic; 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 Hotel_Course_Project { /// /// Логика взаимодействия для StaffChangeOrAddPage.xaml /// public partial class StaffChangeOrAddPage : Page { public byte[] cotractImage; public string FilePath; public Staff _staff; public int IdStaff = 0; public StaffChangeOrAddPage(Staff staff) { InitializeComponent(); DataContext = staff; _staff = staff; SStaffRole.ItemsSource = DataBase.db.StaffRole.ToList(); if (DataContext != null) { SStaffRole.Text = staff.ToString(); StaffChangeOrAddBtn.Content = "Изменить данные"; this.Title = "Информация о сотруднике"; IdStaff = staff.Id; StaffDeleteOrRestoreBtn.Visibility = Visibility.Visible; if (staff.Id_PersStatus == 1) { StaffDeleteOrRestoreBtn.Content = "Удалить сотрудника"; } else { StaffDeleteOrRestoreBtn.Content = "Востановить сотрудника"; } } else { StaffChangeOrAddBtn.Content = "Добавить сотрудника"; this.Title = "Окно добавления сотрудника"; StaffDeleteOrRestoreBtn.Visibility = Visibility.Collapsed; } if (staff == null || staff.PhotoContract == null) { SContractPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/no_picture.jpg")); } } private void StaffChangeOrAddBtn_Click(object sender, RoutedEventArgs e) { if (DataContext == null) { var existUser = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text); if (existUser != null && DataContext == null) { MessageBox.Show("Такой логин уже имеется в базе данных!"); return; } } if (SLName.Text == null || SFName.Text == null || SLogin.Text == null || SPassword.Text == null) { MessageBox.Show("Ключевые поля не были заполнены!"); return; } else { var existUserS = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text && item.Id != IdStaff); if (existUserS != null) { MessageBox.Show("Такой логин уже имеется в базе данных у другого сотрудника!"); return; } else if (DataContext == null) { int numRole = DataBase.db.StaffRole.SingleOrDefault(item => item.Name == SStaffRole.Text).Id; Staff staff = new Staff() { LName = SLName.Text, FName = SFName.Text, MName = SMName.Text, Login = SLogin.Text, Password = SPassword.Text, Id_StaffRole = numRole, PhotoContract = cotractImage, Id_PersStatus = 1 }; DataBase.db.Staff.Add(staff); var lastId = DataBase.db.Staff.OrderByDescending(item => item.Id).FirstOrDefault().Id; DataBase.db.SaveChanges(); MessageBox.Show("Сотрудник добавлен в базу."); } else { MessageBox.Show("Данные по сотрудинку изменены."); _staff.PhotoContract = cotractImage; DataBase.db.SaveChanges(); } PChanger.MainFrame.GoBack(); } } private void StaffDeleteOrRestoreBtn_Click(object sender, RoutedEventArgs e) { if (_staff.Id_PersStatus == 1) { _staff.Id_PersStatus = 2; MessageBox.Show("Статус пользователя изменился на <удалён>"); } else { _staff.Id_PersStatus = 1; MessageBox.Show("Статус пользователя восстановлен"); } DataBase.db.SaveChanges(); PChanger.MainFrame.GoBack(); } private void SContractPhoto_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == true) { FilePath = openFileDialog.FileName; string uriString = $"{FilePath}"; BitmapImage bitimage = new BitmapImage(new Uri(@uriString)); SContractPhoto.Source = bitimage; cotractImage = SomeMethods.ConvertBitmapImageToByte(bitimage); } else { FilePath = string.Empty; } } } }