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 WpfApp1 { /// /// Логика взаимодействия для pgTours.xaml /// public partial class pgTours : Page { List tours; List tourTypes; public pgTours() { InitializeComponent(); BaseConnect.BaseModel = new ToursEntities(); tours = BaseConnect.BaseModel.Tour.ToList(); lbTours.ItemsSource = tours; tourTypes = BaseConnect.BaseModel.Type.ToList(); Type type = new Type(); type.Name = "Все типы"; //type.Id = 10; tourTypes.Insert(0, type); cbType.ItemsSource = tourTypes; cbType.SelectedValuePath = "Id"; cbType.DisplayMemberPath = "Name"; cbType.SelectedIndex = 0; decimal fullP =0; foreach(Tour tour in tours) { fullP += tour.fullPrice; } rSummPrice.Text = fullP.ToString(); } public void filter() { List filt = BaseConnect.BaseModel.Tour.ToList(); if (cbType.SelectedIndex != 0) { Type tepe = tourTypes.FirstOrDefault(x => x.Id == (int)cbType.SelectedValue); filt = filt.Where(x => x.TourType.Contains(tepe.Name)).ToList(); } else { filt = BaseConnect.BaseModel.Tour.ToList(); } if (chbIsActual.IsChecked == true) { filt = filt.Where(x => x.IsActual == true).ToList(); } if(cbSort.SelectedIndex!=-1) { if(cbSort.SelectedIndex == 1) filt = filt.OrderBy(x=>x.Price).ToList(); if(cbSort.SelectedIndex == 2) { filt = filt.OrderBy(x => x.Price).ToList(); filt.Reverse(); } } decimal fullP = 0; filt = filt.Where(x => x.Name.Contains(tbName.Text)).ToList(); lbTours.ItemsSource = filt; foreach (Tour tour in filt) { fullP += tour.fullPrice; } rSummPrice.Text = fullP.ToString(); } private void cbType_SelectionChanged(object sender, SelectionChangedEventArgs e) { filter(); } private void tbName_TextChanged(object sender, TextChangedEventArgs e) { filter(); } private void chbIsActual_Checked(object sender, RoutedEventArgs e) { filter(); } private void chbIsActual_Unchecked(object sender, RoutedEventArgs e) { filter(); } private void cbSort_SelectionChanged(object sender, SelectionChangedEventArgs e) { filter(); } private void btnHotel_Click(object sender, RoutedEventArgs e) { LoadPages.frmMain.Navigate(new pgHotels()); } } }