using MyApp.ExampleDataSetTableAdapters; using MyApp.Services; using System; using System.Data; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using System.Windows.Navigation; namespace MyApp.ManagerPages { public partial class ManagerOrders : Page { OrderTableAdapter orderTableAdapter = new OrderTableAdapter(); UsersTableAdapter usersTableAdapter = new UsersTableAdapter(); ProductTableAdapter productTableAdapter = new ProductTableAdapter(); public ManagerOrders() { InitializeComponent(); Order_DG.ItemsSource = orderTableAdapter.GetData(); UserCB.ItemsSource = usersTableAdapter.GetData(); UserCB.DisplayMemberPath = "LoginUser"; ProductCB.ItemsSource = productTableAdapter.GetData(); ProductCB.DisplayMemberPath = "TitleProduct"; SortCB.ItemsSource = SearchAndSort.FullSortBy; } //Поиск и сортировка private void StartSearchButton_Click(object sender, RoutedEventArgs e) { if (SearchTB.Text != "Поиск..." & SearchTB.Text != "") { SearchAndSort.Search(orderTableAdapter, Order_DG, SearchTB.Text); } else { Order_DG.ItemsSource = orderTableAdapter.GetData(); } } private void CB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SortCB.SelectedItem != null) { ForSortCB.Visibility = Visibility.Collapsed; } if (SortCB.SelectedItem.ToString() == "По алфавиту") { SearchAndSort.SortByAlphabet(orderTableAdapter, Order_DG); } if (SortCB.SelectedItem.ToString() == "По стоимости") { SearchAndSort.SortByCost(orderTableAdapter, Order_DG); } } private void Button_Click(object sender, RoutedEventArgs e) { Window ownerWindow = Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.Title == "MainWindow"); ownerWindow.Close(); } private void Button_Click_1(object sender, RoutedEventArgs e) { Window ownerWindow = Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.Title == "MainWindow"); ownerWindow.WindowState = WindowState.Minimized; } private void SearchTB_MouseEnter(object sender, MouseEventArgs e) { if (SearchTB.Text == "Поиск...") { SearchTB.Text = ""; SearchTB.Foreground = Brushes.White; } } private void SearchTB_MouseLeave(object sender, MouseEventArgs e) { if (SearchTB.Text == "") { SearchTB.Text = "Поиск..."; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); SearchTB.Foreground = sb; } } private void NomerTB_MouseEnter(object sender, MouseEventArgs e) { if (NomerTB.Text == "Номер") { NomerTB.Text = ""; NomerTB.Foreground = Brushes.White; } } private void NomerTB_MouseLeave(object sender, MouseEventArgs e) { if (NomerTB.Text == "") { NomerTB.Text = "Номер"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); NomerTB.Foreground = sb; } } private void PriceTB_MouseEnter(object sender, MouseEventArgs e) { if (PriceTB.Text == "Цена") { PriceTB.Text = ""; PriceTB.Foreground = Brushes.White; } } private void PriceTB_MouseLeave(object sender, MouseEventArgs e) { if (PriceTB.Text == "") { PriceTB.Text = "Цена"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); PriceTB.Foreground = sb; } } private void AdresTB_MouseEnter(object sender, MouseEventArgs e) { if (AdresTB.Text == "Адрес") { AdresTB.Text = ""; AdresTB.Foreground = Brushes.White; } } private void AdresTB_MouseLeave(object sender, MouseEventArgs e) { if (AdresTB.Text == "") { AdresTB.Text = "Адрес"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); AdresTB.Foreground = sb; } } private void KolvoTB_MouseEnter(object sender, MouseEventArgs e) { if (KolvoTB.Text == "Кол-во") { KolvoTB.Text = ""; KolvoTB.Foreground = Brushes.White; } } private void KolvoTB_MouseLeave(object sender, MouseEventArgs e) { if (KolvoTB.Text == "") { KolvoTB.Text = "Кол-во"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); KolvoTB.Foreground = sb; } } private void UserCB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (UserCB.SelectedItem != null) { TBForUserCB.Visibility = Visibility.Collapsed; } } private void ProductCB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ProductCB.SelectedItem != null) { TBForProductCB.Visibility = Visibility.Collapsed; } } private void Order_DG_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (Order_DG.SelectedItem != null) { SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFFFFF")); var nomer = (Order_DG.SelectedItem as DataRowView).Row[1]; NomerTB.Text = nomer.ToString(); NomerTB.Foreground = sb; var kolvo = (Order_DG.SelectedItem as DataRowView).Row[4]; KolvoTB.Text = kolvo.ToString(); KolvoTB.Foreground = sb; var price = (Order_DG.SelectedItem as DataRowView).Row[6]; PriceTB.Text = price.ToString(); PriceTB.Foreground = sb; var address = (Order_DG.SelectedItem as DataRowView).Row[5]; AdresTB.Text = address.ToString(); AdresTB.Foreground = sb; } } //навигация private void ItemsPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new ManagerProducts()); } private void OrdersPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new ManagerOrders()); } //CRUD private void AddButton_Click(object sender, RoutedEventArgs e) { if (NomerTB.Text != "" & PriceTB.Text != "" & KolvoTB.Text != "" & AdresTB.Text != "" & UserCB.SelectedItem != null & ProductCB.SelectedItem != null & NomerTB.Text != null & PriceTB.Text != null & KolvoTB.Text != null & AdresTB.Text != null) { if (NomerTB.Text != "Номер" & PriceTB.Text != "Цена" & KolvoTB.Text != "Кол-во" & AdresTB.Text != "Адрес") { bool HaveSameNomer = false; foreach (var item in Order_DG.Items) { var row = Order_DG.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (row != null) { var cellcontent = Order_DG.Columns[1].GetCellContent(row); if (cellcontent is TextBlock textblock) { if (textblock.Text == NomerTB.Text) { HaveSameNomer = true; MessageBox.Show("Заказ с таким номером уже существует!"); break; } } } } if (HaveSameNomer == false) { int KolvoElementov = Order_DG.Items.Count; var GetLastIndex = (Order_DG.Items.GetItemAt(KolvoElementov - 1) as DataRowView).Row[0]; var IDUSER = (UserCB.SelectedItem as DataRowView).Row[0]; var IDPRODUCT = (ProductCB.SelectedItem as DataRowView).Row[0]; int.TryParse(NomerTB.Text, out int ordernumber); int.TryParse(KolvoTB.Text, out int kolvoposition); double.TryParse(PriceTB.Text, out double price); orderTableAdapter.Insert((int)GetLastIndex + 1, ordernumber, (int)IDUSER, (int)IDPRODUCT, kolvoposition, AdresTB.Text, price); Order_DG.ItemsSource = orderTableAdapter.GetData(); } } } } private void DelButton_Click(object sender, RoutedEventArgs e) { if (NomerTB.Text != "" & PriceTB.Text != "" & KolvoTB.Text != "" & AdresTB.Text != "" & NomerTB.Text != null & PriceTB.Text != null & KolvoTB.Text != null & AdresTB.Text != null) { try { var index = (Order_DG.SelectedItem as DataRowView).Row[0]; var iduser = (Order_DG.SelectedItem as DataRowView).Row[2]; var idproduct = (Order_DG.SelectedItem as DataRowView).Row[3]; int.TryParse(NomerTB.Text, out int ordernumber); int.TryParse(KolvoTB.Text, out int kolvoposition); double.TryParse(PriceTB.Text, out double price); orderTableAdapter.Delete((int)index, ordernumber, (int)iduser, (int)idproduct, kolvoposition, AdresTB.Text, price); Order_DG.ItemsSource = orderTableAdapter.GetData(); } catch (Exception) { return; } } } private void ChangeButton_Click(object sender, RoutedEventArgs e) { if (UserCB.SelectedItem == null) { MessageBox.Show("Выберите пользователя!"); } if (ProductCB.SelectedItem == null) { MessageBox.Show("Выберите продукт!"); } if (NomerTB.Text != "" & PriceTB.Text != "" & KolvoTB.Text != "" & AdresTB.Text != "" & UserCB.SelectedItem != null & ProductCB.SelectedItem != null & NomerTB.Text != null & PriceTB.Text != null & KolvoTB.Text != null & AdresTB.Text != null) { try { var OrderID = (Order_DG.SelectedItem as DataRowView).Row[0]; var OriginalNumberOrder = (Order_DG.SelectedItem as DataRowView).Row[1]; var OriginalIDUser = (Order_DG.SelectedItem as DataRowView).Row[2]; var OriginalIDProduct = (Order_DG.SelectedItem as DataRowView).Row[3]; var OriginalKolvo = (Order_DG.SelectedItem as DataRowView).Row[4]; var OriginalAdres = (Order_DG.SelectedItem as DataRowView).Row[5]; var OriginalPrice = (Order_DG.SelectedItem as DataRowView).Row[6]; var IDUserFromCB = (UserCB.SelectedItem as DataRowView).Row[0]; var IDProductFromCB = (ProductCB.SelectedItem as DataRowView).Row[0]; bool HaveSameNumber = false; if (OriginalNumberOrder.ToString() != NomerTB.Text) { foreach (var item in Order_DG.Items) { var row = Order_DG.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (row != null) { var cellcontent = Order_DG.Columns[1].GetCellContent(row); if (cellcontent is TextBlock textblock) { if (textblock.Text == NomerTB.Text) { HaveSameNumber = true; } } } } } if (OriginalNumberOrder.ToString() != NomerTB.Text | OriginalAdres.ToString() != AdresTB.Text | OriginalKolvo.ToString() != KolvoTB.Text | OriginalPrice.ToString() != PriceTB.Text | (int)OriginalIDUser != (int)IDUserFromCB | (int)OriginalIDProduct != (int)IDProductFromCB) { if (OriginalNumberOrder.ToString() != NomerTB.Text) { if (HaveSameNumber == true) { MessageBox.Show("Заказ с таким номером существует!"); return; } } int.TryParse(NomerTB.Text, out int OrderNumber); int.TryParse(KolvoTB.Text, out int kolvo); double.TryParse(PriceTB.Text, out double price); orderTableAdapter.Update(OrderNumber, (int)IDUserFromCB, (int)IDProductFromCB, kolvo, AdresTB.Text, price, (int)OrderID, (int)OriginalNumberOrder, (int)OriginalIDUser, (int)OriginalIDProduct, (int)OriginalKolvo, OriginalAdres.ToString(), (double)OriginalPrice); Order_DG.ItemsSource = orderTableAdapter.GetData(); } } catch (Exception) { return; } } } } }