JAPWT / View / ManagerPages / ManagerOrders.xaml.cs
ManagerOrders.xaml.cs
Raw
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; }
            }
        }
    }
}