123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- using school.FolderClasses;
- using System;
- using System.Collections.Generic;
- 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 school
- {
- /// <summary>
- /// Логика взаимодействия для pageServicesList.xaml
- /// </summary>
- public partial class pageServicesList : Page
- {
- public pageServicesList()
- {
- InitializeComponent();
- init();
- }
- /// <summary>
- /// Функция загрузки элементов экрана
- /// </summary>
- public void init()
- {
- List<Service> services = baseConnect.thisBase.Service.ToList();
- LVServiseList.ItemsSource = services;
- TBCountRecord.Text = $"{services.Count} из {services.Count}";//количество записей
- CBDiscount.ItemsSource = dataConstant.Discount;
- CBDiscount.SelectedIndex = 0;
- TBSearchDiscription.Text = "";
- TBSearchName.Text = "";
- RBSalaryDown.IsChecked = false;
- RBSalaryUp.IsChecked = false;
- if (services.Count > 0) TBNoSevise.Visibility = Visibility.Collapsed;
- else TBNoSevise.Visibility = Visibility.Visible;
- if (dataUser.user == null) BtnAdminAuthorizstion.Visibility = Visibility.Visible;
- else BtnAdminAuthorizstion.Visibility = Visibility.Collapsed;
- if (dataAdminRoot.adminRoot == ("0000").GetHashCode())
- {
- BtnAdd.Visibility = Visibility.Visible;
- BtnRead.Visibility = Visibility.Visible;
- }
- else
- {
- BtnAdd.Visibility = Visibility.Collapsed;
- BtnRead.Visibility = Visibility.Collapsed;
- }
- }
- private void BtnAdminAuthorizstionClick(object sender, RoutedEventArgs e)
- {
- winAdminAuthorization window = new winAdminAuthorization();
- window.ShowDialog();
- dataFrame.mainFrame.Navigate(new pageServicesList());//перезагружаем окошко
- }
- /// <summary>
- /// Метод для сортировки и фильтрациии листа с услугами
- /// </summary>
- private void sort()
- {
- List<Service> services = baseConnect.thisBase.Service.ToList();//все данные таблицы
- int firstCount = services.Count;//запоминаем изначальное количество элементов
- //выбираем данные подходищие под название
- if (!string.IsNullOrWhiteSpace(TBSearchName.Text))
- {
- services = services.Where(tb => tb.Title.ToLower().Contains(TBSearchName.Text.ToLower())).ToList();
- }
- //выбираем данные подходищие под описание
- if (!string.IsNullOrWhiteSpace(TBSearchDiscription.Text))
- {
- services = services.Where(tb => tb.Description != null && tb.Description.ToLower().Contains(TBSearchDiscription.Text.ToLower())).ToList();
- }
- //данные подходящие под размер скидки
- if (CBDiscount.SelectedIndex > 0)
- {
- string line = CBDiscount.SelectedItem.ToString().Replace("до ", "").Replace("от ", "").Replace("%", "");//убираем у строки все лишнее оставляя только числв через пробел
- string[] valueArr = line.Split(' ');//записываем числа разбивая по последнему пробелу
- double min;
- if (Convert.ToDouble(valueArr[0]) != 0)//проверяем 1 число, чтобы не возникло ошибки деления на 0
- {
- min = Convert.ToDouble(valueArr[0]) / 100;
- }
- else
- {
- min = 0;
- }
- double max = Convert.ToDouble(valueArr[1]) / 100;
- if (min == 0)
- {
- services = services.Where(tb => tb.Discount >= min && tb.Discount < max || tb.Discount == null).ToList();
- }
- else
- {
- services = services.Where(tb => tb.Discount >= min && tb.Discount < max).ToList();
- }
- }
- //сортировка по возрастанию и убыванию
- if (RBSalaryUp.IsChecked == true)
- {
- services = services.OrderBy(tb => tb.priceEnd).ToList();//по возрастанию
- }
- if (RBSalaryDown.IsChecked == true)
- {
- services = services.OrderByDescending(tb => tb.priceEnd).ToList();//по убыванию
- }
- LVServiseList.ItemsSource = services;//иотговый лист
- TBCountRecord.Text = $"{services.Count} из {firstCount}";
- if (services.Count > 0) TBNoSevise.Visibility = Visibility.Collapsed;
- else TBNoSevise.Visibility = Visibility.Visible;
- }
- private void SortChecked(object sender, RoutedEventArgs e)
- {
- sort();
- }
- private void TBSearchTextChanged(object sender, TextChangedEventArgs e)
- {
- sort();
- }
- private void CBDiscountSelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- sort();
- }
- private void BtnSortClick(object sender, RoutedEventArgs e)
- {
- if (GSort.Visibility == Visibility.Visible)
- {
- GSort.Visibility = Visibility.Collapsed;
- }
- else
- {
- GSort.Visibility = Visibility.Visible;
- }
- }
- private void BtnNoSortClick(object sender, RoutedEventArgs e)
- {
- init();
- }
- private void BtnAddClick(object sender, RoutedEventArgs e)
- {
- dataFrame.mainFrame.Navigate(new pageEditService());
- }
- private void BtnEditClick(object sender, RoutedEventArgs e)
- {
- Button thisBtn = (Button)sender;
- int id = Convert.ToInt32(thisBtn.Uid);//находим id выбранной услуги
- dataFrame.mainFrame.Navigate(new pageEditService(id));
- }
- private void BtnDeleteClick(object sender, RoutedEventArgs e)
- {
- Button thisBtn = (Button)sender;
- int id = Convert.ToInt32(thisBtn.Uid);//находим id выбранной услуги
- List<ClientService> clientServices = baseConnect.thisBase.ClientService.Where(tb => tb.ServiceID == id).ToList();
- if (clientServices.Count > 0)
- {
- MessageBox.Show("Данную услугу не возможно удалить!", "Ошибка удаления", MessageBoxButton.OK, MessageBoxImage.Error);
- }
- else
- {
- switch (MessageBox.Show("Вы действительно хотите удалить эту услугу?", "Подтверждение удаления", MessageBoxButton.YesNo, MessageBoxImage.Stop))
- {
- case MessageBoxResult.Yes:
- {
- //код удаления
- try
- {
- Service service = baseConnect.thisBase.Service.Where(tb => tb.ID == id).FirstOrDefault();
- baseConnect.thisBase.Service.Remove(service);
- baseConnect.thisBase.SaveChanges();
- dataFrame.mainFrame.Navigate(new pageServicesList());
- MessageBox.Show("Удаление прошло успешно");
- }
- catch
- {
- MessageBox.Show("Не удалось удалить объект");
- }
- break;
- }
- case MessageBoxResult.No:
- {
- break;
- }
- }
- }
- }
- private void BtnWriteClick(object sender, RoutedEventArgs e)
- {
- if (dataUser.user != null)
- {
- Button btn = (Button)sender;
- int id = Convert.ToInt32(btn.Uid);
- winWriteService window = new winWriteService(id);
- window.ShowDialog();
- }
- else
- {
- switch (MessageBox.Show("Вы не авторизировались, поэтому во время записи произошла ошибка. Хотите авторизироваться?", "Ошибка записи", MessageBoxButton.YesNo, MessageBoxImage.Question))
- {
- case MessageBoxResult.Yes:
- {
- BtnAdminAuthorizstionClick(null, null);//окно для авторизации пользователя
- break;
- }
- case MessageBoxResult.No:
- {
- break;
- }
- }
- }
- }
- private void BtnReadClick(object sender, RoutedEventArgs e)
- {
- dataFrame.mainFrame.Navigate(new pageServiceNearRecord());
- }
- }
- }
|