using practica12.Classs;
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 practica12.Pages
{
///
/// Логика взаимодействия для HotelPage.xaml
///
public partial class HotelPage : Page
{
Pagin pc = new Pagin();
List listHotel = Base.ep.Hotel.ToList();
public HotelPage()
{
InitializeComponent();
dgHotels.ItemsSource = Base.ep.Hotel.ToList();
pc.Countlist = listHotel.Count;
pc.CountPage = 10;
dgHotels.ItemsSource = listHotel.Skip(0).Take(pc.CountPage).ToList();
DataContext = pc;
}
private void txtPageCount_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
pc.CountPage = Convert.ToInt32(txtPageCount.Text); // если в текстовом поле есnь значение, присваиваем его свойству объекта, которое хранит количество записей на странице
}
catch
{
pc.CountPage = 10; // если в текстовом поле значения нет, присваиваем свойству объекта, которое хранит количество записей на странице количество элементов в списке
}
pc.Countlist = listHotel.Count; // присваиваем новое значение свойству, которое в объекте отвечает за общее количество записей
dgHotels.ItemsSource = listHotel.Skip(0).Take(pc.CountPage).ToList(); // отображаем первые записи в том количестве, которое равно CountPage
pc.CurrentPage = 1; // текущая страница - это страница 1
}
private void GoPage_MouseDown(object sender, MouseButtonEventArgs e)
{
TextBlock tb = (TextBlock)sender;
switch (tb.Uid)
{
case "prev":
pc.CurrentPage--;
break;
case "next":
pc.CurrentPage++;
break;
case "firstPage":
pc.CurrentPage = 1;
break;
case "lastPage":
pc.CurrentPage = pc.CountPages;
break;
default:
pc.CurrentPage = Convert.ToInt32(tb.Text);
break;
}
dgHotels.ItemsSource = listHotel.Skip(pc.CurrentPage * pc.CountPage - pc.CountPage).Take(pc.CountPage).ToList(); // оображение записей постранично с определенным количеством на каждой странице
}
private void btn_Tours_Click(object sender, RoutedEventArgs e)
{
FrameClass.MainFrame.Navigate(new MainPage());
}
private void btn_Add_Click(object sender, RoutedEventArgs e)
{
FrameClass.MainFrame.Navigate(new PageUpdADD());
}
private void btn_Dell_Click(object sender, RoutedEventArgs e)
{
if (dgHotels.SelectedItems.Count != 0)
{
foreach (Hotel hotel in dgHotels.SelectedItems)
{
List hot = Base.ep.Hotel.Where(z => z.Id == hotel.Id).ToList();
foreach (Hotel h in hot)
{
if (MessageBox.Show("Вы хотите удалить {0}", Name, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
Base.ep.Hotel.Remove(hotel);
Base.ep.SaveChanges();
MessageBox.Show("Успешное удаление!!!");
FrameClass.MainFrame.Navigate(new HotelPage());
}
}
}
}
else
{
MessageBox.Show("Выберите отель для удаления!!!");
}
}
private void btnUpdate_Click(object sender, RoutedEventArgs e)
{
Button btn = (Button)sender;
int index = Convert.ToInt32(btn.Uid);
Hotel hotel = Base.ep.Hotel.FirstOrDefault(x => x.Id == index);
FrameClass.MainFrame.Navigate(new PageUpdADD(hotel));
}
}
}