using System; using System.Collections.Generic; using System.Linq; using System.Net; 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; using UP_Venediktov.Classes; using UP_Venediktov.ModelBase; namespace UP_Venediktov.Pages { /// /// Логика взаимодействия для ProductListUser.xaml /// public partial class ProductListUser : Page { Entities DB = new Entities(); int AllData; int id; public ProductListUser() { InitializeComponent(); ProductList.ItemsSource = DB.Product.ToList(); CB_Filter.ItemsSource = new List() { "Все", "Скидка 0-9,99%", "Скидка 10-14,99%", "Скидка 15% и более" }; CB_Sort.ItemsSource = new List() { "Без сортировки", "По имени А-Я", "По имени Я-А" }; CB_Sort.SelectedIndex = 0; CB_Filter.SelectedIndex = 0; AllData = ProductList.Items.Count; //AmountOfData.Text = AllData + " из " + AllData + " товаров"; } public ProductListUser(int id) { InitializeComponent(); ProductList.ItemsSource = DB.Product.ToList(); User user = DB.User.Where(x => x.UserID == id).FirstOrDefault(); if (user.UserRole == 1) { ButtonsForAdmin.Visibility = Visibility.Visible; ViewOrder.Visibility = Visibility.Visible; } if (user.UserRole == 3) { ViewOrder.Visibility = Visibility.Visible; } CB_Filter.ItemsSource = new List() { "Все", "Скидка 0-9,99%", "Скидка 10-14,99%", "Скидка 15% и более" }; CB_Sort.ItemsSource = new List() { "Без сортировки", "По имени А-Я", "По имени Я-А" }; CB_Sort.SelectedIndex = 0; CB_Filter.SelectedIndex = 0; this.id = id; } public void BackgroundLoad(object sender, RoutedEventArgs e) { Grid bgr = (Grid)sender; string Article = bgr.Uid.ToString(); Product pr = DB.Product.Where(x => x.ProductArticleNumber == Article).FirstOrDefault(); if (pr.ProductDiscountAmount > 15) { bgr.Background = (SolidColorBrush)new BrushConverter().ConvertFrom("#7fff00"); } } public void StrikePrice(object sender, RoutedEventArgs e) { TextBlock tb = (TextBlock)sender; string Article = tb.Uid.ToString(); Product pr = DB.Product.Where(x => x.ProductArticleNumber == Article).FirstOrDefault(); tb.Text = "Цена: " + string.Format("{0:C2}", pr.ProductCost); if (pr.ProductDiscountAmount > 0) { tb.TextDecorations = TextDecorations.Strikethrough; } } public void PromoPrice(object sender, RoutedEventArgs e) { TextBlock tb = (TextBlock)sender; string Article = tb.Uid.ToString(); Product pr = DB.Product.Where(x => x.ProductArticleNumber == Article).FirstOrDefault(); if (pr.ProductDiscountAmount > 0) { tb.Text = "Цена: " + string.Format("{0:C2}", (pr.ProductCost - (pr.ProductCost / 100 * pr.ProductDiscountAmount))); tb.FontWeight = FontWeights.Bold; } } private void Photo(object sender, RoutedEventArgs e) { Image pic = (Image)sender; string Article = pic.Uid.ToString(); string photoPath = DB.Product.Where(x => x.ProductArticleNumber == Article).Select(x => x.ProductPhoto).FirstOrDefault(); if (photoPath != null && photoPath != "") { pic.Source = new BitmapImage(new Uri(Environment.CurrentDirectory + "\\Pictures\\" + photoPath, UriKind.RelativeOrAbsolute)); } else { pic.Source = new BitmapImage(new Uri(Environment.CurrentDirectory + "\\Pictures\\picture.png", UriKind.RelativeOrAbsolute)); } } private void Filter() { List products = DB.Product.ToList(); if (CB_Sort.SelectedIndex != 0) { switch (CB_Sort.SelectedIndex) { case 1: products = products.OrderBy(x => x.ProductName).ToList(); break; case 2: products = products.OrderByDescending(x => x.ProductName).ToList(); break; } } if (CB_Filter.SelectedIndex != 0) { switch (CB_Filter.SelectedIndex) { case 1: products = products.Where(x => x.ProductDiscountAmount >= 0 && x.ProductDiscountAmount < 10).ToList(); break; case 2: products = products.Where(x => x.ProductDiscountAmount >= 10 && x.ProductDiscountAmount < 15).ToList(); break; case 3: products = products.Where(x => x.ProductDiscountAmount >= 15).ToList(); break; } } if (!string.IsNullOrEmpty(TB_Search.Text)) { products = products.Where(x => x.ProductName.ToUpper().Contains(TB_Search.Text.ToUpper())).ToList(); } ProductList.ItemsSource = products; //AmountOfData.Text = products.Count() + " из " + AllData + " товаров"; } private void SortFilterChanged(object sender, SelectionChangedEventArgs e) { Filter(); } private void SearchChanged(object sender, TextChangedEventArgs e) { Filter(); } private void CartAdd(object sender, RoutedEventArgs e) { MenuItem bt = (MenuItem)sender; string article = bt.Uid.ToString(); Product pr = DB.Product.Where(x => x.ProductArticleNumber == article).First(); AmountofProduct pa = new AmountofProduct(); if (CardOrder.Products.Count != 0 && CardOrder.Products.Contains(pr)) { pa = CardOrder.AmountofProducts.Where(x => x.Article == article).First(); } if (pa.Article != null) { int index = CardOrder.AmountofProducts.IndexOf(pa); CardOrder.AmountofProducts[index].Amount++; } else { pa.Amount = 1; pa.Article = article; CardOrder.Products.Add(pr); CardOrder.AmountofProducts.Add(pa); } GoToCard.Visibility = Visibility.Visible; } private void CartGo(object sender, RoutedEventArgs e) { CardOrder ct = new CardOrder(); if (CardOrder.Products.Count > 0) { FrameClass.MainFrame.Navigate(new CardOrder()); } else { MessageBox.Show("Чтобы перейти в корзину добавьте в неё товар"); } } private void ViewOrders(object sender, RoutedEventArgs e) { FrameClass.MainFrame.Navigate(new Orders(id)); } private void BackToAvt(object sender, RoutedEventArgs e) { FrameClass.MainFrame.Navigate(new Avtorization()); } } }