HotelPage.xaml.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using practica12.Classs;
  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 practica12.Pages
  17. {
  18. /// <summary>
  19. /// Логика взаимодействия для HotelPage.xaml
  20. /// </summary>
  21. public partial class HotelPage : Page
  22. {
  23. Pagin pc = new Pagin();
  24. List<Hotel> listHotel = Base.ep.Hotel.ToList();
  25. public HotelPage()
  26. {
  27. InitializeComponent();
  28. dgHotels.ItemsSource = Base.ep.Hotel.ToList();
  29. pc.Countlist = listHotel.Count;
  30. pc.CountPage = 10;
  31. dgHotels.ItemsSource = listHotel.Skip(0).Take(pc.CountPage).ToList();
  32. DataContext = pc;
  33. }
  34. private void txtPageCount_TextChanged(object sender, TextChangedEventArgs e)
  35. {
  36. try
  37. {
  38. pc.CountPage = Convert.ToInt32(txtPageCount.Text); // если в текстовом поле есnь значение, присваиваем его свойству объекта, которое хранит количество записей на странице
  39. }
  40. catch
  41. {
  42. pc.CountPage = 10; // если в текстовом поле значения нет, присваиваем свойству объекта, которое хранит количество записей на странице количество элементов в списке
  43. }
  44. pc.Countlist = listHotel.Count; // присваиваем новое значение свойству, которое в объекте отвечает за общее количество записей
  45. dgHotels.ItemsSource = listHotel.Skip(0).Take(pc.CountPage).ToList(); // отображаем первые записи в том количестве, которое равно CountPage
  46. pc.CurrentPage = 1; // текущая страница - это страница 1
  47. }
  48. private void GoPage_MouseDown(object sender, MouseButtonEventArgs e)
  49. {
  50. TextBlock tb = (TextBlock)sender;
  51. switch (tb.Uid)
  52. {
  53. case "prev":
  54. pc.CurrentPage--;
  55. break;
  56. case "next":
  57. pc.CurrentPage++;
  58. break;
  59. case "firstPage":
  60. pc.CurrentPage = 1;
  61. break;
  62. case "lastPage":
  63. pc.CurrentPage = pc.CountPages;
  64. break;
  65. default:
  66. pc.CurrentPage = Convert.ToInt32(tb.Text);
  67. break;
  68. }
  69. dgHotels.ItemsSource = listHotel.Skip(pc.CurrentPage * pc.CountPage - pc.CountPage).Take(pc.CountPage).ToList(); // оображение записей постранично с определенным количеством на каждой странице
  70. }
  71. private void btn_Tours_Click(object sender, RoutedEventArgs e)
  72. {
  73. FrameClass.MainFrame.Navigate(new MainPage());
  74. }
  75. private void btn_Add_Click(object sender, RoutedEventArgs e)
  76. {
  77. FrameClass.MainFrame.Navigate(new PageUpdADD());
  78. }
  79. private void btn_Dell_Click(object sender, RoutedEventArgs e)
  80. {
  81. if (dgHotels.SelectedItems.Count != 0)
  82. {
  83. foreach (Hotel hotel in dgHotels.SelectedItems)
  84. {
  85. List<Hotel> hot = Base.ep.Hotel.Where(z => z.Id == hotel.Id).ToList();
  86. foreach (Hotel h in hot)
  87. {
  88. if (MessageBox.Show("Вы хотите удалить {0}", Name, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
  89. {
  90. Base.ep.Hotel.Remove(hotel);
  91. Base.ep.SaveChanges();
  92. MessageBox.Show("Успешное удаление!!!");
  93. FrameClass.MainFrame.Navigate(new HotelPage());
  94. }
  95. }
  96. }
  97. }
  98. else
  99. {
  100. MessageBox.Show("Выберите отель для удаления!!!");
  101. }
  102. }
  103. private void btnUpdate_Click(object sender, RoutedEventArgs e)
  104. {
  105. Button btn = (Button)sender;
  106. int index = Convert.ToInt32(btn.Uid);
  107. Hotel hotel = Base.ep.Hotel.FirstOrDefault(x => x.Id == index);
  108. FrameClass.MainFrame.Navigate(new PageUpdADD(hotel));
  109. }
  110. }
  111. }