using MyApp.ExampleDataSetTableAdapters; using System.Data; using System; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using System.Windows.Navigation; using MyApp.Services; namespace MyApp.AdminPages { public partial class AdminProducts : Page { ProductTableAdapter productTableAdapter = new ProductTableAdapter(); public AdminProducts() { InitializeComponent(); Product_DG.ItemsSource = productTableAdapter.GetData(); SortCB.ItemsSource = SearchAndSort.FullSortBy; } //Поиск и сортировка private void StartSearchButton_Click(object sender, RoutedEventArgs e) { if (SearchTB.Text != "Поиск..." & SearchTB.Text != "") { SearchAndSort.Search(productTableAdapter, Product_DG, SearchTB.Text); } else { Product_DG.ItemsSource = productTableAdapter.GetData(); } } private void CB_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SortCB.SelectedItem != null) { ForSortCB.Visibility = Visibility.Collapsed; } if (SortCB.SelectedItem.ToString() == "По алфавиту") { SearchAndSort.SortByAlphabet(productTableAdapter, Product_DG); } if (SortCB.SelectedItem.ToString() == "По стоимости") { SearchAndSort.SortByCost(productTableAdapter, Product_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 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 NameTB_MouseEnter(object sender, MouseEventArgs e) { if (NameTB.Text == "Название") { NameTB.Text = ""; NameTB.Foreground = Brushes.White; } } private void NameTB_MouseLeave(object sender, MouseEventArgs e) { if (NameTB.Text == "") { NameTB.Text = "Название"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); NameTB.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 DescriptionTB_MouseEnter(object sender, MouseEventArgs e) { if (DescriptionTB.Text == "Описание") { DescriptionTB.Text = ""; DescriptionTB.Foreground = Brushes.White; } } private void DescriptionTB_MouseLeave(object sender, MouseEventArgs e) { if (DescriptionTB.Text == "") { DescriptionTB.Text = "Описание"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); DescriptionTB.Foreground = sb; } } private void DataPicker_MouseEnter(object sender, MouseEventArgs e) { if (DataPicker.Text == "Дата просрочки") { DataPicker.Text = ""; DataPicker.Foreground = Brushes.White; } } private void DataPicker_MouseLeave(object sender, MouseEventArgs e) { if (DataPicker.Text == "") { DataPicker.Text = "Дата просрочки"; SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6BFFFFFF")); DataPicker.Foreground = sb; } } private void OpenCalendar_Click(object sender, RoutedEventArgs e) { if (Calendar.Visibility == Visibility.Collapsed) { Calendar.Visibility = Visibility.Visible; AddButton.Visibility = Visibility.Hidden; DelButton.Visibility = Visibility.Hidden; ChangeButton.Visibility = Visibility.Hidden; return; } else { Calendar.Visibility = Visibility.Collapsed; AddButton.Visibility = Visibility.Visible; DelButton.Visibility = Visibility.Visible; ChangeButton.Visibility = Visibility.Visible; } } private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) { if (Calendar.SelectedDate != null) { DataPicker.Text = Calendar.SelectedDate.ToString(); SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFFFFF")); DataPicker.Foreground = sb; DataPicker.IsReadOnly = true; } } //навигация private void ItemsPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminProducts()); } private void OrdersPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminOrders()); } private void RolesPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminRoles()); } private void UsersPageButton_Click(object sender, RoutedEventArgs e) { NavigationService.Navigate(new AdminUsers()); } //CRUD private void Product_DG_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (Product_DG.SelectedItem != null) { SolidColorBrush sb = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFFFFF")); var name = (Product_DG.SelectedItem as DataRowView).Row[1]; NameTB.Text = name.ToString(); NameTB.Foreground = sb; var price = (Product_DG.SelectedItem as DataRowView).Row[3]; PriceTB.Text = price.ToString(); PriceTB.Foreground = sb; var kolvo = (Product_DG.SelectedItem as DataRowView).Row[4]; KolvoTB.Text = kolvo.ToString(); KolvoTB.Foreground = sb; var description = (Product_DG.SelectedItem as DataRowView).Row[2]; DescriptionTB.Text = description.ToString(); DescriptionTB.Foreground = sb; var data = (Product_DG.SelectedItem as DataRowView).Row[5]; DataPicker.Text = data.ToString(); DataPicker.Foreground = sb; DataPicker.IsReadOnly = true; } } private void AddButton_Click(object sender, RoutedEventArgs e) { if (NameTB.Text != "" & PriceTB.Text != "" & KolvoTB.Text != "" & DataPicker.Text != "" & DescriptionTB.Text != "" & NameTB.Text != null & PriceTB.Text != null & KolvoTB.Text != null & DataPicker.Text != null & DescriptionTB.Text != null) { if (NameTB.Text != "Название" & PriceTB.Text != "Цена" & KolvoTB.Text != "Кол-во" & DataPicker.Text != "Дата просрочки" & DescriptionTB.Text != "Описание" ) { bool HaveSameProductName = false; foreach (var item in Product_DG.Items) { var row = Product_DG.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (row != null) { var cellcontent = Product_DG.Columns[1].GetCellContent(row); if (cellcontent is TextBlock textblock) { if (textblock.Text == NameTB.Text) { HaveSameProductName = true; MessageBox.Show("Продукт с таким названием уже существует!"); break; } } } } if (HaveSameProductName == false) { int KolvoElementov = Product_DG.Items.Count; var GetLastIndex = (Product_DG.Items.GetItemAt(KolvoElementov - 1) as DataRowView).Row[0]; int.TryParse(KolvoTB.Text, out int Kolvo); float.TryParse(PriceTB.Text, out float Price); DateTime.TryParse(DataPicker.Text, out DateTime date); productTableAdapter.Insert((int)GetLastIndex + 1, NameTB.Text, DescriptionTB.Text, Price, Kolvo, date); Product_DG.ItemsSource = productTableAdapter.GetData(); } } } } private void DelButton_Click(object sender, RoutedEventArgs e) { if (NameTB.Text != "" & PriceTB.Text != "" & KolvoTB.Text != "" & DataPicker.Text != "" & DescriptionTB.Text != "" & NameTB.Text != null & PriceTB.Text != null & KolvoTB.Text != null & DataPicker.Text != null & DescriptionTB.Text != null) { try { var index = (Product_DG.SelectedItem as DataRowView).Row[0]; var price = (Product_DG.SelectedItem as DataRowView).Row[3]; var kolvo = (Product_DG.SelectedItem as DataRowView).Row[4]; var data = (Product_DG.SelectedItem as DataRowView).Row[5]; productTableAdapter.Delete((int)index,NameTB.Text, DescriptionTB.Text, (double)price, (int)kolvo, (DateTime)data); Product_DG.ItemsSource = productTableAdapter.GetData(); } catch (Exception) { return; } } } private void ChangeButton_Click(object sender, RoutedEventArgs e) { if (NameTB.Text != "" & PriceTB.Text != "" & KolvoTB.Text != "" & DataPicker.Text != "" & DescriptionTB.Text != "" & NameTB.Text != null & PriceTB.Text != null & KolvoTB.Text != null & DataPicker.Text != null & DescriptionTB.Text != null) { try { var index = (Product_DG.SelectedItem as DataRowView).Row[0]; var OriginalName = (Product_DG.SelectedItem as DataRowView).Row[1]; var OriginalDescription = (Product_DG.SelectedItem as DataRowView).Row[2]; var OriginalPrice = (Product_DG.SelectedItem as DataRowView).Row[3]; double.TryParse(PriceTB.Text, out double price); var OriginalKolvo = (Product_DG.SelectedItem as DataRowView).Row[4]; int.TryParse(KolvoTB.Text, out int kolvo); var OriginalIDATE = (Product_DG.SelectedItem as DataRowView).Row[5]; DateTime.TryParse(DataPicker.Text, out DateTime date); bool HaveSameProduct = false; if (OriginalName.ToString() != NameTB.Text) { foreach (var item in Product_DG.Items) { var row = Product_DG.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; if (row != null) { var cellcontent = Product_DG.Columns[1].GetCellContent(row); if (cellcontent is TextBlock textblock) { if (textblock.Text == NameTB.Text) { HaveSameProduct = true; } } } } } if (OriginalName.ToString() != NameTB.Text | OriginalDescription.ToString() != DescriptionTB.Text | (double)OriginalPrice != price | (int)OriginalKolvo != kolvo | (DateTime)OriginalIDATE != date) { if (OriginalName.ToString() != NameTB.Text) { if (HaveSameProduct == true) { MessageBox.Show("Продукт с таким именем существует!"); return; } } productTableAdapter.Update(NameTB.Text, DescriptionTB.Text, price, kolvo, date, (int)index, OriginalName.ToString(), OriginalDescription.ToString(), (double)OriginalPrice, (int)OriginalKolvo, (DateTime)OriginalIDATE); Product_DG.ItemsSource = productTableAdapter.GetData(); } } catch (Exception) { return; } } } } }