123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- using Microsoft.Win32;
- using System;
- using System.Linq;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Input;
- using System.Windows.Media.Imaging;
- namespace Hotel_Course_Project
- {
- /// <summary>
- /// Логика взаимодействия для StaffChangeOrAddPage.xaml
- /// </summary>
- public partial class StaffChangeOrAddPage : Page
- {
- public byte[] contractImage;
- public string FilePath;
- public Staff _staff;
- public Staff addStaff;
- 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;
- }
- }
- private void StaffChangeOrAddBtn_Click(object sender, RoutedEventArgs e)
- {
- if (DataContext == null)
- {
- if (SStaffRole.Text == null || SStaffRole.Text == "")
- {
- MessageBox.Show("Не выбрана должность");
- return;
- }
- else
- {
- int numRole = DataBase.db.StaffRole.SingleOrDefault(item => item.Name == SStaffRole.Text).Id;
- if (TestAddStaff(SLName.Text, SFName.Text, SMName.Text, SLogin.Text, SPassword.Text, numRole) == true)
- {
- DataBase.db.Staff.Add(addStaff);
- var lastId = DataBase.db.Staff.OrderByDescending(item => item.Id).FirstOrDefault().Id;
- DataBase.db.Staff.SingleOrDefault(item => item.Id == lastId).PhotoContract = contractImage;
- DataBase.db.SaveChanges();
- MessageBox.Show("Сотрудник добавлен в базу.");
- }
- else
- {
- if (SLName.Text == null || SLName.Text == "" || SFName.Text == null || SFName.Text == "" || SMName.Text == null || SMName.Text == "" || SLogin.Text == null || SLogin.Text == "" || SPassword.Text == null || SPassword.Text == "")
- {
- MessageBox.Show("Ключевые поля не были заполнены!");
- }
- else
- {
- MessageBox.Show("Такой логин уже имеется в базе данных у другого сотрудника!");
- }
- }
- }
- }
- else
- {
- if (SLName.Text == null || SFName.Text == null || SLogin.Text == null || SPassword.Text == null)
- {
- MessageBox.Show("Ключевые поля не были заполнены!");
- return;
- }
- else if (DataBase.db.Staff.SingleOrDefault(item => item.Id == IdStaff).Login != SLogin.Text)
- {
- if (DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text) != null)
- {
- MessageBox.Show("Такой логин имеется у другого сотрудника");
- return;
- }
- }
- MessageBox.Show("Данные по сотрудинку изменены.");
- _staff.PhotoContract = contractImage;
- DataBase.db.SaveChanges();
- PChanger.MainFrame.GoBack();
- return;
- }
- }
- public bool TestAddStaff(string LName, string FName, string MName, string Login, string Password, int numRole)
- {
- if (LName == null || LName == "" || FName == null || FName == "" || Login == null || Login == "" || Password == null || Password == "")
- {
- return false;
- }
- else
- {
- var existUserS = DataBase.db.Staff.SingleOrDefault(item => item.Login == Login);
- if (existUserS != null)
- {
- return false;
- }
- else
- {
- Staff staff = new Staff()
- {
- LName = LName,
- FName = FName,
- MName = MName,
- Login = Login,
- Password = Password,
- Id_StaffRole = numRole,
- Id_PersStatus = 1
- };
- addStaff = staff;
- return true;
- }
- }
- }
- 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));
- if (TestReceiveImage(uriString) == true)
- {
- SContractPhoto.Source = bitimage;
- contractImage = SomeMethods.ConvertBitmapImageToByte(bitimage);
- }
- else
- {
- MessageBox.Show("Ошибка выбора изображения");
- }
- }
- else
- {
- FilePath = string.Empty;
- }
- }
- public bool TestReceiveImage(string uriString)
- {
- try
- {
- BitmapImage bitimage = new BitmapImage(new Uri(@uriString));
- return true;
- }
- catch
- {
- return false;
- }
- }
- private void Page_Loaded(object sender, RoutedEventArgs e)
- {
- if (_staff == null || _staff.PhotoContract == null)
- {
- SContractPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/no_picture.jpg"));
- }
- }
- }
- }
|