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 { /// /// Логика взаимодействия для ClientChangeOrAddPage.xaml /// public partial class ClientChangeOrAddPage : Page { public Client _client; public Client addClient; public int idClient; public byte[] PassportImage; public string FilePath; public ClientChangeOrAddPage(Client client) { InitializeComponent(); DataContext = client; _client = client; addClient = client; if (DataContext != null) { ClientChangeOrAddBtn.Content = "Изменить данные"; this.Title = "Информация о клиенте"; idClient = client.Id; ClientDeleteOrRestoreBtn.Visibility = Visibility.Visible; if (client.Id_PersStatus == 1) { ClientDeleteOrRestoreBtn.Content = "Удалить клиента"; } else { ClientDeleteOrRestoreBtn.Content = "Востановить клиента"; } } else { ClientChangeOrAddBtn.Content = "Добавить клиента"; this.Title = "Окно добавления клиента"; ClientDeleteOrRestoreBtn.Visibility = Visibility.Collapsed; } } private void ClientChangeOrAddBtn_Click(object sender, RoutedEventArgs e) { if (DataContext == null) { } if (CLName.Text == null || CFName.Text == null) { MessageBox.Show("Ключевые поля не были заполнены!"); return; } else if (CPassportPhoto == null) { MessageBox.Show("Фотография паспорта не была загружена!"); return; } else { if (DataContext == null) { if (TestAddClient(CLName.Text, CFName.Text, CMName.Text) == true) { DataBase.db.Client.Add(addClient); var lastId = DataBase.db.Client.OrderByDescending(item => item.Id).FirstOrDefault().Id; DataBase.db.Client.SingleOrDefault(item => item.Id == lastId).Passport = PassportImage; DataBase.db.SaveChanges(); MessageBox.Show("Клиент добавлен в базу."); } else { MessageBox.Show("Ключевые поля не были заполнены!"); } //Client client = new Client() //{ // LName = CLName.Text, // FName = CFName.Text, // MName = CMName.Text, // Passport = PassportImage, // Id_PersStatus = 1 //}; //DataBase.db.Client.Add(client); //var lastId = DataBase.db.Client.OrderByDescending(item => item.Id).FirstOrDefault().Id; //DataBase.db.SaveChanges(); //MessageBox.Show("Клиент добавлен в базу."); } else { MessageBox.Show("Данные по клиенту изменены."); _client.Passport = PassportImage; DataBase.db.SaveChanges(); } PChanger.MainFrame.GoBack(); } } public bool TestAddClient(string LName, string FName, string MName) { if (LName == null || LName == "" || FName == null || FName == "") { return false; } else { Client client = new Client() { LName = LName, FName = FName, MName = MName, Id_PersStatus = 1 }; addClient = client; return true; } } private void ClientDeleteOrRestoreBtn_Click(object sender, RoutedEventArgs e) { if (_client.Id_PersStatus == 1) { _client.Id_PersStatus = 2; MessageBox.Show("Статус пользователя изменился на <удалён>"); } else { _client.Id_PersStatus = 1; MessageBox.Show("Статус пользователя восстановлен"); } DataBase.db.SaveChanges(); PChanger.MainFrame.GoBack(); } private void CPassportPhoto_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)); CPassportPhoto.Source = bitimage; PassportImage = SomeMethods.ConvertBitmapImageToByte(bitimage); } else { FilePath = string.Empty; } } private void Page_Loaded(object sender, RoutedEventArgs e) { if (_client == null || _client.Passport == null) { CPassportPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/PersDefaultPhoto.png")); } } } }