ServicePage.xaml.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using AutoServiceVika.Entites;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows;
  8. using System.Windows.Controls;
  9. using System.Windows.Data;
  10. using System.Windows.Documents;
  11. using System.Windows.Input;
  12. using System.Windows.Media;
  13. using System.Windows.Media.Imaging;
  14. using System.Windows.Navigation;
  15. using System.Windows.Shapes;
  16. namespace AutoServiceVika.Pages
  17. {
  18. /// <summary>
  19. /// Логика взаимодействия для ServicePage.xaml
  20. /// </summary>
  21. public partial class ServicePage : Page
  22. {
  23. public ServicePage()
  24. {
  25. InitializeComponent();
  26. if(App.CurrentUser.Role_ID == 1)
  27. {
  28. btnAddNewService.Visibility = Visibility.Visible;
  29. } else
  30. {
  31. btnAddNewService.Visibility = Visibility.Collapsed;
  32. }
  33. ComboDiscount.SelectedIndex = 0;
  34. ComboSortBy.SelectedIndex = 0;
  35. UpdateService();
  36. }
  37. private void UpdateService()
  38. {
  39. var services = App.context.Service.ToList();
  40. if (ComboSortBy.SelectedIndex == 0)
  41. {
  42. services = services.OrderBy(i => i.CostWithDiscount).ToList();
  43. }
  44. else
  45. {
  46. services = services.OrderByDescending(i => i.CostWithDiscount).ToList();
  47. }
  48. //По скидке
  49. switch (ComboDiscount.SelectedIndex)
  50. {
  51. case 1:
  52. services = services.Where(i => i.Discount >= 0 && i.Discount < 0.05).ToList();
  53. break;
  54. case 2:
  55. services = services.Where(i => i.Discount >= 0.05 && i.Discount < 0.15).ToList();
  56. break;
  57. case 3:
  58. services = services.Where(i => i.Discount >= 0.15 && i.Discount < 0.30).ToList();
  59. break;
  60. case 4:
  61. services = services.Where(i => i.Discount >= 0.30 && i.Discount < 0.70).ToList();
  62. break;
  63. case 5:
  64. services = services.Where(i => i.Discount >= 0.70 && i.Discount <= 1).ToList();
  65. break;
  66. }
  67. //По тексту
  68. services = services.Where(i => i.Title.ToLower().Contains(tbSearch.Text.ToLower())).ToList();
  69. lvSevice.ItemsSource = services;
  70. }
  71. private void ComboSortBy_SelectionChanged(object sender, SelectionChangedEventArgs e)
  72. {
  73. UpdateService();
  74. }
  75. private void ComboDiscount_SelectionChanged(object sender, SelectionChangedEventArgs e)
  76. {
  77. UpdateService();
  78. }
  79. private void tbSearch_TextChanged(object sender, TextChangedEventArgs e)
  80. {
  81. UpdateService();
  82. }
  83. private void Page_Loaded(object sender, RoutedEventArgs e)
  84. {
  85. UpdateService();
  86. }
  87. private void btnAddNewService_Click(object sender, RoutedEventArgs e)
  88. {
  89. App.MainFrame.Navigate(new AddEditPage());
  90. }
  91. private void btnEdit_Click(object sender, RoutedEventArgs e)
  92. {
  93. var currentSerivce = (sender as Button).DataContext as Service;
  94. App.MainFrame.Navigate(new AddEditPage(currentSerivce));
  95. }
  96. private void btnRemove_Click(object sender, RoutedEventArgs e)
  97. {
  98. var currentService = (sender as Button).DataContext as Service;
  99. if (MessageBox.Show($"Вы уверены, что хотите удалить услугу {currentService.Title}?", "Внимание", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
  100. {
  101. App.context.Service.Remove(currentService);
  102. App.context.SaveChanges();
  103. UpdateService();
  104. }
  105. }
  106. }
  107. }