public WindowPictures(QueryMode mode, MainWindow parent, string primary_key_value = "") { InitializeComponent(); this.mode = mode; this.parent = parent; this.primary_key_value = primary_key_value; if (mode == QueryMode.add) { Button_reset.Visibility = Visibility.Collapsed; Button_accept.Content = "Добавить"; } else { Button_accept.Content = "Изменить"; TextBox_name.Text = primary_key_value; byte[] image_bytes = Shortcuts.get_image("pictures", "name", primary_key_value, connection); new_image = image_bytes; Shortcuts.set_image(Image, image_bytes); TextBox_price.Text = Shortcuts.get_one_string_data_from($"select `price` from `pictures` where `name` = '{primary_key_value}'", connection); TextBox_price.Text = TextBox_price.Text.Replace(",", "."); old_values = new object[2] { primary_key_value, image_bytes }; } }
private void Button_accept_Click(object sender, RoutedEventArgs e) { int dot_count1 = TextBox_product_amount.Text.Split('.').Length - 1; int dot_count2 = TextBox_average_purchase_price.Text.Split('.').Length - 1; if (ComboBox_product_name.Text != "" && TextBox_product_amount.Text != "" && ComboBox_supplier.Text != "" && TextBox_average_purchase_price.Text != "" && dot_count1 <= 1 && dot_count2 <= 1) { string count = Shortcuts.get_one_string_data_from($"SELECT count(*) FROM " + $"`storage` WHERE `product_name` = '{ComboBox_product_name.Text}' AND " + $"`supplier` = '{ComboBox_supplier.Text}';", connection); if (int.Parse(count) >= 1 && mode == QueryMode.add) { MessageBox.Show("Уже существует запись с такой краской и поставщиком!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } bool success = true; string measurement = Shortcuts.get_one_string_data_from($"SELECT `measurement` FROM `products` where `name` = '{ComboBox_product_name.Text}';", connection); switch (mode) { case QueryMode.add: success = Shortcuts.execute_command($"INSERT INTO `storage` (`id`, `product_name`, `product_amount`, `measurement`, `supplier`, `average_purchase_price`) " + $"VALUES (DEFAULT, '{ComboBox_product_name.Text}', {TextBox_product_amount.Text}, '{measurement}', " + $"'{ComboBox_supplier.Text}', {TextBox_average_purchase_price.Text});", connection); break; case QueryMode.change: success = Shortcuts.change("storage", new string[] { "id", "product_name", "product_amount", "measurement", "supplier", "average_purchase_price" }, new string[] { primary_key_value, ComboBox_product_name.Text, TextBox_product_amount.Text, measurement, ComboBox_supplier.Text, TextBox_average_purchase_price.Text }, primary_key_value, connection); break; } if (success) { parent.Focus(); if (parent is MainWindow) { ((MainWindow)parent).fill_table(); } if (parent is SupplyManagerWindow) { ((SupplyManagerWindow)parent).fill_table(); } Close(); } } else { MessageBox.Show("Заполните корректно все числовые поля и поля с выбором!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (DataGrid.SelectedItem != null) { switch (current_table) { case Tables.supplies: Border_color.Visibility = Visibility.Visible; Supply sup = (Supply)DataGrid.SelectedItem; Border_color.Visibility = Visibility.Visible; string supply_color_code = Shortcuts.get_one_string_data_from($"SELECT `color_code` FROM `products` WHERE `name` = '{sup.product_name}';", connection); Border_color.Background = new SolidColorBrush((System.Windows.Media.Color)ColorConverter.ConvertFromString("#" + supply_color_code)); break; case Tables.storage: Border_color.Visibility = Visibility.Visible; Storage st = (Storage)DataGrid.SelectedItem; Border_color.Visibility = Visibility.Visible; string st_color_code = Shortcuts.get_one_string_data_from($"SELECT `color_code` FROM `products` WHERE `name` = '{st.product_name}';", connection); Border_color.Background = new SolidColorBrush((System.Windows.Media.Color)ColorConverter.ConvertFromString("#" + st_color_code)); break; } } }
//Отображение изображения или цвета из некоторых таблиц private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { TextBlock_car_parts.Text = ""; object item = DataGrid.SelectedItem; if (item != null) { switch (current_table) { case Tables.users: Button_image_change.Visibility = Visibility.Visible; Shortcuts.set_image(DataImage, Shortcuts.get_image(tables[(int)current_table], current_primary_key_name, ((User)item).mail, connection)); break; case Tables.pictures: Button_image_change.Visibility = Visibility.Visible; Shortcuts.set_image(DataImage, Shortcuts.get_image(tables[(int)current_table], current_primary_key_name, ((Picture)item).name, connection)); break; case Tables.colors: Border_color.Visibility = Visibility.Visible; string color_code = "#" + ((Color)item).color_code; Border_color.Background = new SolidColorBrush((System.Windows.Media.Color)ColorConverter.ConvertFromString(color_code)); break; case Tables.products: Border_color.Visibility = Visibility.Visible; string color = "#" + ((Product)item).color_code; Border_color.Background = new SolidColorBrush((System.Windows.Media.Color)ColorConverter.ConvertFromString(color)); break; case Tables.supplies: Supply sup = (Supply)item; Border_color.Visibility = Visibility.Visible; string supply_color_code = Shortcuts.get_one_string_data_from($"SELECT `color_code` FROM `products` WHERE `name` = '{sup.product_name}';", connection); Border_color.Background = new SolidColorBrush((System.Windows.Media.Color)ColorConverter.ConvertFromString("#" + supply_color_code)); break; case Tables.requests: int numb = ((Request)item).parts_to_paint; TextBlock_car_parts.Text = "Части на покраску:\n"; if (numb == 8191) { TextBlock_car_parts.Text += "Все"; } else { try { connection.Open(); MySqlCommand comm = new MySqlCommand($"SELECT `name` FROM `car_parts` WHERE `id` & {numb};", connection); MySqlDataReader data = comm.ExecuteReader(); while (data.Read()) { TextBlock_car_parts.Text += data[0].ToString() + "\n"; } /* * if (TextBlock_car_parts.Text == "Части на покраску:\n") * { * TextBlock_car_parts.Text += "Все"; * }*/ } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { connection.Close(); } } break; } } }
private void button_write_check_Click(object sender, RoutedEventArgs e) { if (DataGrid.SelectedItem == null) { MessageBox.Show("Выберите мышью запись перед созданием чека!"); return; } else if (((Request)DataGrid.SelectedItem).paint_date == "") { MessageBox.Show("Нельзя выписать чек необработанной заявки!"); return; } SaveFileDialog SFDialog = new SaveFileDialog(); SFDialog.Filter = "Microsoft Word Document (*.docx)|*.docx"; if (SFDialog.ShowDialog() == true) { Request req = (Request)DataGrid.SelectedItem; string cashier_name = current_user.surname + " " + current_user.first_name[0] + ". " + current_user.second_name[0] + "."; string parts_to_paint = ""; decimal price = 0; //Определение цены услуги и списка покрашенных деталей if (req.parts_to_paint == 8191) { parts_to_paint = "Полностью"; //количество краски на всю машину decimal paint_amount = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT SUM(surface_size) FROM `car_parts`;", connection)) / 1000; if (req.product_name == "") { //стоимость за аэрографию price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `price` " + $"FROM `pictures` WHERE `name` = '{req.picture_name}';", connection)); } else { try { //стоимость покраски всей машины без учёта краски price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT SUM(cost) FROM `car_parts`;", connection)); //стоимость использованной краски decimal paint_price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `average_purchase_price` " + $"FROM `storage` WHERE `supplier` = '{req.supplier}' AND `product_name` = '{req.product_name}';", connection)); //надбавка цены на краску price = price + paint_price * paint_amount; } catch { MessageBox.Show("Невозможно оформить чек. Отсутствуют данные о цене краски."); return; } } } else //детальная покраска { //перечисление частей на покраску List <string> parts = Shortcuts.get_full_column_from("car_parts", "name", $"`id` & {req.parts_to_paint}", connection); for (int i = 0; i < parts.Count; i++) { parts_to_paint += parts[i]; if (i != parts.Count - 1) { parts_to_paint += "; "; } else { parts_to_paint += "."; } } try { //стоимость за покраску частей без учёта краски price = decimal.Parse(Shortcuts.get_one_string_data_from($"SELECT SUM(cost) FROM `car_parts` WHERE `id` & {req.parts_to_paint};", connection)); decimal paint_price = decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `average_purchase_price` " + $"FROM `storage` WHERE `supplier` = '{req.supplier}' AND `product_name` = '{req.product_name}';", connection)); //общая цена за услугу decimal paint_amount = decimal.Parse(Shortcuts.get_one_string_data_from($"SELECT SUM(surface_size) FROM `car_parts` WHERE `id` & {req.parts_to_paint};", connection)) / 1000; //надбавка цены на краску price = price + paint_price * paint_amount; } catch { MessageBox.Show("Невозможно оформить чек. Отсутствуют данные о цене краски."); return; } } try { Word.Application WordApp = new Word.Application(); WordApp.Visible = false; string price_in_doc = price.ToString().Replace(',', '.'); int dot_pos = price_in_doc.IndexOf('.'); if (dot_pos > 0) { price_in_doc = price_in_doc.Substring(0, dot_pos + 3); } Document word_doc = WordApp.Documents.Open(Directory.GetCurrentDirectory() + $@"\check.docx"); Shortcuts.replace_word("{vin}", req.vin, word_doc); Shortcuts.replace_word("{service_type}", req.service_type, word_doc); Shortcuts.replace_word("{color}", req.product_name, word_doc); Shortcuts.replace_word("{parts_to_paint}", parts_to_paint, word_doc); Shortcuts.replace_word("{picture}", req.picture_name, word_doc); Shortcuts.replace_word("{price}", price_in_doc, word_doc); Shortcuts.replace_word("{cashier_name}", cashier_name, word_doc); Shortcuts.replace_word("{current_date}", req.paint_date, word_doc); word_doc.SaveAs2(FileName: SFDialog.FileName); word_doc.Close(); MessageBox.Show("Файл успешно сохранён!"); } catch { MessageBox.Show("При сохранении чека возникла ошибка. Документ не сохранён.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } }
private void button_accept_request_Click(object sender, RoutedEventArgs e) { bool success = true; if (DataGrid.SelectedItem != null) { Request req = (Request)DataGrid.SelectedItem; if (req.request_status == "Обработано") { MessageBox.Show("Данная заявка уже обработана!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (req.service_type == "Аэрография") { success = Shortcuts.execute_command("UPDATE `requests` " + "SET `request_status` = 'Обработано', " + $"`paint_date` = '{DateTime.Now:yyyy-MM-dd HH:mm:ss}' " + $"WHERE `id` = {req.id};", connection); fill_table(); if (success) { MessageBox.Show("Заявка успешно обработана!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information); } } else { int parts = req.parts_to_paint; string measurement = Shortcuts.get_one_string_data_from($"SELECT `measurement`" + $"FROM `storage` WHERE `product_name` = '{req.product_name}'", connection); decimal paint_amount; if (req.service_type == "Детальная") { paint_amount = decimal.Parse(Shortcuts.get_one_string_data_from($"SELECT SUM(`surface_size`) FROM `car_parts` " + $"WHERE `id` & {parts};", connection)) / 1000; } else { paint_amount = decimal.Parse(Shortcuts.get_one_string_data_from($"SELECT SUM(`surface_size`) FROM `car_parts`;", connection)) / 1000; } int prod_available = int.Parse(Shortcuts.get_one_string_data_from($"SELECT count(*) FROM `storage` " + $"WHERE `product_name` = '{req.product_name}' AND `supplier` = '{req.supplier}';", connection)); decimal paint_cost; switch (prod_available) { case 1: paint_cost = paint_amount * decimal.Parse(Shortcuts.get_one_string_data_from("SELECT `average_purchase_price` " + $"FROM `storage` WHERE `product_name` = '{req.product_name}';", connection)); //Всё норм success = Shortcuts.execute_command("UPDATE `storage` " + $"SET `product_amount` = (`product_amount` - {paint_amount.ToString().Replace(',','.')}) " + $"WHERE `product_name` = '{req.product_name}' AND `supplier` = '{req.supplier}';", connection); success = Shortcuts.execute_command("UPDATE `requests` " + $"SET `request_status` = 'Обработано', " + $"`paint_amount` = {paint_amount.ToString().Replace(',','.')}, " + $"`measurement` = '{measurement}', " + $"`paint_cost` = {paint_cost.ToString().Replace(',', '.')}, " + $"`paint_date` = '{DateTime.Now:yyyy-MM-dd HH:mm:ss}' " + $"WHERE `id` = {req.id};", connection); fill_table(); if (success) { MessageBox.Show("Заявка успешно обработана!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information); } break; case 0: MessageBox.Show("На складе отсутствует краска соответствующего поставщика!", "Нет краски", MessageBoxButton.OK, MessageBoxImage.Exclamation); break; default: MessageBox.Show("Произошла ошибка в базе!\nПовторяющиеся записи продукта на одного поставщика. " + "Обратитесь к администратору", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); break; } } } else { MessageBox.Show("Выберите мышью запись перед изменением."); } }
private void Button_accept_Click(object sender, RoutedEventArgs e) { //Количество точек в введённых числах int dot_count1 = TextBox_product_amount.Text.Split('.').Length - 1; int dot_count2 = TextBox_price.Text.Split('.').Length - 1; if (ComboBox_supplier.Text != "" && (string)(ComboBox_product_name.Items[ComboBox_product_name.SelectedIndex] as ComboBoxItem).Tag != "" && TextBox_product_amount.Text != "" && TextBox_price.Text != "" && DatePicker_order.SelectedDate.HasValue && dot_count1 <= 1 && dot_count2 <= 1) { string mail = ""; if (parent is MainWindow) { mail = ((MainWindow)parent).current_user.mail; } else if (parent is SupplyManagerWindow) { mail = ((SupplyManagerWindow)parent).current_user.mail; } string measurement = Shortcuts.get_one_string_data_from($"SELECT `measurement` FROM `products` where `name` = '{(string)(ComboBox_product_name.Items[ComboBox_product_name.SelectedIndex] as ComboBoxItem).Tag}';", connection); bool success = true; switch (mode) { case QueryMode.add: success = Shortcuts.execute_command($"INSERT INTO `supplies` (`id`, `user_mail`, `supplier`, " + $"`product_name`, `product_amount`, `measurement`, `price`, " + $"`order_date`, `delivery_date`) " + $"VALUES (DEFAULT, '{mail}', '{ComboBox_supplier.Text}', " + $"'{(string)(ComboBox_product_name.Items[ComboBox_product_name.SelectedIndex] as ComboBoxItem).Tag}', {TextBox_product_amount.Text}, '{measurement}', {TextBox_price.Text}, " + $"'{DatePicker_order.SelectedDate.Value:yyyy-MM-dd}', " + $"NULL);", connection); break; case QueryMode.change: success = Shortcuts.execute_command($"UPDATE `supplies` " + $"SET " + $"`user_mail` = '{mail}', " + $"`supplier` = '{ComboBox_supplier.Text}', " + $"`product_name` = '{(string)(ComboBox_product_name.Items[ComboBox_product_name.SelectedIndex] as ComboBoxItem).Tag}', " + $"`product_amount` = '{TextBox_product_amount.Text}'," + $"`measurement` = '{measurement}', " + $"`price` = '{TextBox_price.Text}', " + $"`order_date` = '{DatePicker_order.SelectedDate.Value:yyyy-MM-dd}' " + $"WHERE `id` = {primary_key_value}", connection); break; } if (success) { parent.Focus(); if (parent is MainWindow) { ((MainWindow)parent).fill_table(); } if (parent is SupplyManagerWindow) { ((SupplyManagerWindow)parent).fill_table(); } Close(); } } else { MessageBox.Show("Заполните корректно все числовые поля, поля с выбором и даты!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void button_delivery_supply_Click(object sender, RoutedEventArgs e) { if (DataGrid.SelectedItem == null) { MessageBox.Show("Выберите мышью запись перед совершением поставки."); } else { bool success = true; Supply sup = (Supply)DataGrid.SelectedItem; if (sup.delivery_date != "") { MessageBox.Show("Данная поставка уже зачислена!", "Внимание", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } int product_storage_count = int.Parse(Shortcuts.get_one_string_data_from($"SELECT count(*) FROM " + $"`storage` WHERE `product_name` = '{sup.product_name}' AND " + $"`supplier` = '{sup.supplier}';", connection)); if (product_storage_count == 1) { //Записать в существующего поставщика Storage st = new Storage(); try { connection.Open(); MySqlCommand comm = new MySqlCommand("SELECT * FROM " + $"`storage` WHERE `product_name` = '{sup.product_name}' AND " + $"`supplier` = '{sup.supplier}';", connection); MySqlDataReader data = comm.ExecuteReader(); data.Read(); string[] values = new string[data.FieldCount]; for (int i = 0; i < data.FieldCount; i++) { values[i] = data[i].ToString(); } st = (Storage)Container_controller.Create_struct(Tables.storage, values); } catch (Exception ex) { success = false; MessageBox.Show(ex.Message); } finally { connection.Close(); } decimal new_prod_amount = st.product_amount + sup.product_amount; decimal new_price = ((st.average_purchase_price * st.product_amount) + sup.price * sup.product_amount) / (new_prod_amount); success = Shortcuts.execute_command("UPDATE `storage` SET " + $"`average_purchase_price` = {new_price.ToString().Replace(',', '.')}, " + $"`product_amount` = {new_prod_amount.ToString().Replace(',', '.')} " + $"WHERE `product_name` = '{sup.product_name.ToString().Replace(',', '.')}' AND " + $"`supplier` = '{sup.supplier}';", connection); success = Shortcuts.execute_command("UPDATE `supplies` SET " + $"`delivery_date` = '{DateTime.Now:yyyy-MM-dd}' " + $"WHERE `id` = {sup.id};", connection); if (success) { MessageBox.Show("Поставка на склад произведена!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("Поставка не произведена!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } else if (product_storage_count == 0) { success = Shortcuts.execute_command("INSERT INTO `storage` " + "(`product_name`, `product_amount`, " + "`measurement`, `supplier`, `average_purchase_price`) VALUES " + $"('{sup.product_name}', {sup.product_amount.ToString().Replace(',','.')}, " + $"'{sup.measurement}', '{sup.supplier}', {(sup.price).ToString().Replace(',', '.')});", connection); success = Shortcuts.execute_command("UPDATE `supplies` SET " + $"`delivery_date` = '{DateTime.Now:yyyy-MM-dd}' " + $"WHERE `id` = {sup.id};", connection); if (success) { MessageBox.Show("Поставка на склад произведена!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("Поставка не произведена!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("Произошла ошибка в базе!\nПовторяющиеся записи продукта на одного поставщика. " + "Обратитесь к администратору", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } fill_table(); } }
private void Button_accept_Click(object sender, RoutedEventArgs e) { if (TextBox_mail.Text != "" && TextBox_password.Text != "" && TextBox_surname.Text != "" && TextBox_first_name.Text != "" && TextBox_second_name.Text != "" && TextBox_phone.Text != "" && ComboBox_role.Text != "" && ComboBox_gender.Text != "" && Image.Source != null) { string m = TextBox_mail.Text.ToLower(); if (m.Split('@').Length != 2) { MessageBox.Show("Неправильный ввод почты!"); return; } if (!(m.Contains('.') && m.Split('@')[1].Split('.')[1].Length >= 2 && m.Split('@')[1].Split('.')[1].Length <= 4)) { MessageBox.Show("Неправильный ввод почты!"); return; } if (m.LastIndexOf('.') - m.IndexOf('@') <= 1) { MessageBox.Show("Неправильный ввод почты!"); return; } if (m.IndexOf('@') == 0) { MessageBox.Show("Неправильный ввод почты!"); return; } /*Regex reg = new Regex("^[A-Za-z0-9._-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$"); * if (!reg.IsMatch(TextBox_mail.Text.ToLower())) * { * MessageBox.Show("Неправильный ввод почты!"); * return; * }*/ bool success = true; switch (mode) { case QueryMode.add: try { connection.Open(); MySqlCommand comm = new MySqlCommand("INSERT INTO `users` (`mail`, `password`, " + "`surname`, `first_name`, `second_name`, " + "`phone`, `role`, `gender`, `image`) " + $"VALUES ('{TextBox_mail.Text.ToLower()}', '{TextBox_password.Text}', " + $" '{TextBox_surname.Text}', '{TextBox_first_name.Text}', '{TextBox_second_name.Text}', " + $"'{TextBox_phone.Text}', '{ComboBox_role.Text}', '{ComboBox_gender.Text}', @image);", connection); MySqlParameter img_param = new MySqlParameter("@image", new_image); comm.Parameters.Add(img_param); comm.ExecuteNonQuery(); } catch (Exception ex) { success = false; if (ex.Message.Contains("Duplicate entry")) { MessageBox.Show("Пользователь с такой почтой уже существует!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } else { MessageBox.Show(ex.Message); } } finally { connection.Close(); } break; case QueryMode.change: User current_user = parent.current_user; int admin_count = int.Parse(Shortcuts.get_one_string_data_from("SELECT count(*) from `users` " + "WHERE `role`='администратор'", connection)); if (current_user.mail == primary_key_value && ComboBox_role.Text != "администратор" && admin_count <= 1) { MessageBox.Show("Изменение роли невозможно! Единственный администратор в системе!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } //int user_count = int.Parse(Shortcuts.get_one_string_data_from($"SELECT count(*) FROM `users` WHERE `mail` = {TextBox_mail.Text.ToLower()}", connection)); if (!confirm_action("Вы точно хотите изменить данные пользователя?", "Подтверждение действия")) { return; } try { connection.Open(); MySqlCommand comm = new MySqlCommand("UPDATE `users` " + $"SET `mail` = '{TextBox_mail.Text.ToLower()}', " + $"`password` = '{TextBox_password.Text}', " + $"`surname` = '{TextBox_surname.Text}', " + $"`first_name` = '{TextBox_first_name.Text}', " + $"`second_name` = '{TextBox_second_name.Text}', " + $"`phone` = '{TextBox_phone.Text}', " + $"`gender` = '{ComboBox_gender.Text}', " + $"`role` = '{ComboBox_role.Text}', " + $"`image` = @image " + $"WHERE `mail` = '{primary_key_value}';", connection); MySqlParameter img_param = new MySqlParameter("@image", new_image); comm.Parameters.Add(img_param); comm.ExecuteNonQuery(); } catch (Exception ex) { success = false; if (ex.Message.Contains("Duplicate entry")) { MessageBox.Show("Пользователь с такой почтой уже существует!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } else { MessageBox.Show(ex.Message); } } finally { connection.Close(); } break; } if (success) { parent.Focus(); parent.fill_table(); Close(); } } else { MessageBox.Show("Заполните все поля и выберите изображение!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void button_enter_Click(object sender, RoutedEventArgs e) { string mail = textbox_mail.Text.ToLower(); string pass = passwordbox_password.Password; if (mail != "" && pass != "") { string user_count = Shortcuts.get_one_string_data_from($@"select count(*) from `users` where `mail` = '{mail}' and `password` = '{pass}';" , connection); if (user_count == "1") { try_count = 3; current_user = Shortcuts.get_user(mail, pass, connection); //Запоминание пользователя if (Checkbox_remember.IsChecked.Value) { if (File.Exists(remember_file_path)) { File.Delete(remember_file_path); } using (StreamWriter sw = new StreamWriter(remember_file_path)) { sw.WriteLine(textbox_mail.Text); sw.WriteLine(passwordbox_password.Password); sw.Close(); } } int hours = DateTime.Now.Hour; string greeting; if (hours >= 6 && hours <= 11) { greeting = "Доброе утро, "; } else if (hours >= 12 && hours <= 17) { greeting = "Добрый день, "; } else if (hours >= 18 && hours <= 21) { greeting = "Добрый вечер, "; } else { greeting = "Доброй ночи, "; } greeting += current_user.first_name + " " + current_user.second_name + "!"; MessageBox.Show(greeting); switch (current_user.role) { case "администратор": MainWindow window = new MainWindow(current_user, this); window.Show(); Hide(); break; case "менеджер по заявкам": RequestManagerWindow rmw = new RequestManagerWindow(current_user, this); rmw.Show(); Hide(); break; case "менеджер по поставкам": SupplyManagerWindow smw = new SupplyManagerWindow(current_user, this); smw.Show(); Hide(); break; } } else { MessageBox.Show("Неверный логин или пароль."); try_count--; if (try_count <= 0) { MessageBox.Show("Количество попыток превышено, введите проверочный текст!", "Внимание", MessageBoxButton.OK, MessageBoxImage.Exclamation); textbox_mail.Text = ""; passwordbox_password.Password = ""; change_login_ability(false); generate_captcha(); change_captcha_visibility(Visibility.Visible); } } } else { MessageBox.Show("Введите логин и пароль."); } }