using System; using System.Collections.Generic; using System.Data.SqlClient; 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; using UP_Venediktov.ModelBase; using UP_Venediktov.Classes; namespace UP_Venediktov.Pages { /// /// Логика взаимодействия для Orders.xaml /// public partial class Orders : Page { Entities DB = new Entities(); int id; public Orders(int id) { InitializeComponent(); OrderList.ItemsSource = DB.Order.ToList(); SortOrders.ItemsSource = new List() { "Без сортировки", "Сначала дешёвые", "Сначала дорогие" }; FilterOrders.ItemsSource = new List() { "Без фильтрации", "Скидка 0%-10%", "Скидка 10%-15%", "Скидка более 15%" }; SortOrders.SelectedIndex = 0; FilterOrders.SelectedIndex = 0; this.id = id; } private void WhatInOrder(object sender, RoutedEventArgs e) { TextBlock tb = (TextBlock)sender; int id = Convert.ToInt32(tb.Uid); string WhatIn = ""; foreach (OrderProduct op in DB.OrderProduct) { if (op.OrderID == id) { WhatIn += DB.Product.Where(x => x.ProductArticleNumber == op.ProductArticleNumber).Select(x => x.ProductName).FirstOrDefault() + " "; WhatIn += op.ProductCont + " " + DB.Product.Where(x => x.ProductArticleNumber == op.ProductArticleNumber).Select(x => x.ProductMeasurement.NameMeasurement).FirstOrDefault() + "\n"; } } tb.Text = WhatIn; } private void OrderCost(object sender, RoutedEventArgs e) { TextBlock tb = (TextBlock)sender; int id = Convert.ToInt32(tb.Uid); decimal? TotalCost = 0; foreach (OrderProduct op in DB.OrderProduct) { if (op.OrderID == id) { TotalCost += DB.Product.Where(x => x.ProductArticleNumber == op.ProductArticleNumber).Select(x => x.ProductCost).FirstOrDefault() * op.ProductCont; } } tb.Text = "Стоимость заказа: " + string.Format("{0:C2}", TotalCost); } private void TotalPromo(object sender, RoutedEventArgs e) { TextBlock tb = (TextBlock)sender; int id = Convert.ToInt32(tb.Uid); int? Promo = 0; foreach (OrderProduct op in DB.OrderProduct) { if (op.OrderID == id) { Promo += DB.Product.Where(x => x.ProductArticleNumber == op.ProductArticleNumber).Select(x => x.ProductDiscountAmount).FirstOrDefault(); } } tb.Text = "Общая скидка: " + Promo.ToString() + "%"; } private void BgrLoad(object sender, RoutedEventArgs e) { Border br = (Border)sender; int id = Convert.ToInt32(br.Uid); Product pr = DB.OrderProduct.Where(x => x.OrderID == id).Select(x => x.Product).FirstOrDefault(); if (pr.ProductQuantityInStock > 3) { br.Background = (SolidColorBrush)new BrushConverter().ConvertFrom("#20b2aa"); } if (pr.ProductQuantityInStock == 0) { br.Background = (SolidColorBrush)new BrushConverter().ConvertFrom("#ff8c00"); } } public void Filter() { List UpdateOrders = DB.Order.ToList(); if (SortOrders.SelectedIndex != 0) { decimal? TotalCost = 0; foreach (Order or in UpdateOrders) { TotalCost = 0; foreach (OrderProduct op in DB.OrderProduct) { if (op.OrderID == or.OrderID) { TotalCost += DB.Product.Where(x => x.ProductArticleNumber == op.ProductArticleNumber).Select(x => x.ProductCost).FirstOrDefault() * op.ProductCont; } } or.OrderCode = Convert.ToInt32(TotalCost); } switch (SortOrders.SelectedIndex) { case 1: UpdateOrders = UpdateOrders.OrderBy(x => x.OrderCode).ToList(); break; case 2: UpdateOrders = UpdateOrders.OrderByDescending(x => x.OrderCode).ToList(); break; default: break; } } if (FilterOrders.SelectedIndex != 0) { int? TotalPromo = 0; foreach (Order or in UpdateOrders) { TotalPromo = 0; foreach (OrderProduct op in DB.OrderProduct) { if (op.OrderID == or.OrderID) { TotalPromo += DB.Product.Where(x => x.ProductArticleNumber == op.ProductArticleNumber).Select(x => x.ProductDiscountAmount).FirstOrDefault(); } } or.OrderPickupPoint = Convert.ToInt32(TotalPromo); } switch (FilterOrders.SelectedIndex) { case 1: UpdateOrders = UpdateOrders.Where(x => x.OrderPickupPoint >= 0 && x.OrderPickupPoint < 10).ToList(); break; case 2: UpdateOrders = UpdateOrders.Where(x => x.OrderPickupPoint >= 10 && x.OrderPickupPoint < 15).ToList(); break; case 3: UpdateOrders = UpdateOrders.Where(x => x.OrderPickupPoint >= 15).ToList(); break; default: break; } } OrderList.ItemsSource = UpdateOrders; } private void SortOrFilter(object sender, SelectionChangedEventArgs e) { Filter(); } private void BackToProduct(object sender, RoutedEventArgs e) { FrameClass.MainFrame.Navigate(new ProductListUser(id)); } } }