JAPWT / Services / SearchAndSort.cs
SearchAndSort.cs
Raw
using MyApp.ExampleDataSetTableAdapters;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Controls;

namespace MyApp.Services
{
    public static class SearchAndSort
   {
        public static string[] FullSortBy = new string[] { "По алфавиту", "По стоимости" };
        public static string[] NotFullSortBy = new string[] { "По алфавиту"};
        public static void Search(in object tableAdapter, DataGrid DG, string WordForSearch)
        {
            if (tableAdapter is OrderTableAdapter)
            {
                OrderTableAdapter LocalOTA = new OrderTableAdapter();
                var DataForSearch = LocalOTA.GetData();
                var DataForLocalDT = LocalOTA.GetData();

                DataTable dataTable = DataForLocalDT;
                dataTable.Clear();

                bool HaveRow = false;
                for (global::System.Int32 i = 0; i < DataForSearch.Columns.Count; i++)
                {
                    foreach (DataRow row in DataForSearch.Rows)
                    {
                        if (row[i].ToString().Contains(WordForSearch))
                        {
                            try
                            {
                                dataTable.ImportRow(row);
                                HaveRow = true;
                            }
                            catch (Exception)
                            {
                                continue;
                            }
                        }
                    }
                }
                if (HaveRow == true)
                {
                    DG.ItemsSource = dataTable.DefaultView;
                }
                if (HaveRow == false) { DG.ItemsSource = null; return; }
            }

            if (tableAdapter is ProductTableAdapter)
            {
                ProductTableAdapter LocalOTA = new ProductTableAdapter();
                var DataForSearch = LocalOTA.GetData();
                var DataForLocalDT = LocalOTA.GetData();

                DataTable dataTable = DataForLocalDT;
                dataTable.Clear();

                bool HaveRow = false;
                for (global::System.Int32 i = 0; i < DataForSearch.Columns.Count; i++)
                {
                    foreach (DataRow row in DataForSearch.Rows)
                    {
                        if (row[i].ToString().Contains(WordForSearch))
                        {
                            try
                            {
                                dataTable.ImportRow(row);
                                HaveRow = true;
                            }
                            catch (Exception)
                            {
                                continue;
                            }
                        }
                    }
                }
                if (HaveRow == true)
                {
                    DG.ItemsSource = dataTable.DefaultView;
                }
                if (HaveRow == false) { DG.ItemsSource = null; return; }
            }

            if (tableAdapter is UsersTableAdapter)
            {
                UsersTableAdapter LocalOTA = new UsersTableAdapter();
                var DataForSearch = LocalOTA.GetData();
                var DataForLocalDT = LocalOTA.GetData();

                DataTable dataTable = DataForLocalDT;
                dataTable.Clear();

                bool HaveRow = false;
                for (global::System.Int32 i = 0; i < DataForSearch.Columns.Count; i++)
                {
                    foreach (DataRow row in DataForSearch.Rows)
                    {
                        if (row[i].ToString().Contains(WordForSearch))
                        {
                            try
                            {
                                dataTable.ImportRow(row);
                                HaveRow = true;
                            }
                            catch (Exception)
                            {
                                continue;
                            }
                        }
                    }
                }
                if (HaveRow == true)
                {
                    DG.ItemsSource = dataTable.DefaultView;
                }
                if (HaveRow == false) { DG.ItemsSource = null; return; }
            }

            if (tableAdapter is RoleTableAdapter)
            {
                RoleTableAdapter LocalOTA = new RoleTableAdapter();
                var DataForSearch = LocalOTA.GetData();
                var DataForLocalDT = LocalOTA.GetData();

                DataTable dataTable = DataForLocalDT;
                dataTable.Clear();

                bool HaveRow = false;
                for (global::System.Int32 i = 0; i < DataForSearch.Columns.Count; i++)
                {
                    foreach (DataRow row in DataForSearch.Rows)
                    {
                        if (row[i].ToString().Contains(WordForSearch))
                        {
                            try
                            {
                                dataTable.ImportRow(row);
                                HaveRow = true;
                            }
                            catch (Exception)
                            {
                                continue;
                            }
                        }
                    }
                }
                if (HaveRow == true)
                {
                    DG.ItemsSource = dataTable.DefaultView;
                }
                if (HaveRow == false) { DG.ItemsSource = null; return; }
            }
        }
        
        public static void SortByAlphabet(object tableadapter, DataGrid DG)
        {
            if (tableadapter is UsersTableAdapter)
            {
                UsersTableAdapter usersTableAdapter = new UsersTableAdapter();
                var data = usersTableAdapter.GetData();
                DataTable LocalDT = data;

                var sortedRows = LocalDT.AsEnumerable().OrderBy(row => row.Field<string>("NameUser"));
                DataTable SortedLocalDT = sortedRows.CopyToDataTable();

                DG.ItemsSource = SortedLocalDT.DefaultView;
            }
            if (tableadapter is RoleTableAdapter)
            {
                RoleTableAdapter roleTableAdapter = new RoleTableAdapter();
                var data = roleTableAdapter.GetData();
                DataTable LocalDT = data;

                var sortedRows = LocalDT.AsEnumerable().OrderBy(row => row.Field<string>("TitleRole"));
                DataTable SortedLocalDT = sortedRows.CopyToDataTable();

                DG.ItemsSource = SortedLocalDT.DefaultView;
            }
            if (tableadapter is OrderTableAdapter)
            {
                OrderTableAdapter orderTableAdapter = new OrderTableAdapter();
                var data = orderTableAdapter.GetData();
                DataTable LocalDT = data;

                var sortedRows = LocalDT.AsEnumerable().OrderBy(row => row.Field<string>("Address"));
                DataTable SortedLocalDT = sortedRows.CopyToDataTable();

                DG.ItemsSource = SortedLocalDT.DefaultView;
            }
            if (tableadapter is ProductTableAdapter)
            {
                ProductTableAdapter productTableAdapter = new ProductTableAdapter();
                var data = productTableAdapter.GetData();
                DataTable LocalDT = data;

                var sortedRows = LocalDT.AsEnumerable().OrderBy(row => row.Field<string>("TitleProduct"));
                DataTable SortedLocalDT = sortedRows.CopyToDataTable();

                DG.ItemsSource = SortedLocalDT.DefaultView;
            }
        }
        
        public static void SortByCost(object tableadapter, DataGrid DG)
        {
            if (tableadapter is OrderTableAdapter)
            {
                OrderTableAdapter orderTableAdapter = new OrderTableAdapter();
                var data = orderTableAdapter.GetData();
                DataTable LocalDT = data;

                var sortedRows = LocalDT.AsEnumerable().OrderBy(row => row.Field<double>("TotalCost"));
                DataTable SortedLocalDT = sortedRows.CopyToDataTable();

                DG.ItemsSource = SortedLocalDT.DefaultView;
            }
            if (tableadapter is ProductTableAdapter)
            {
                ProductTableAdapter productTableAdapter = new ProductTableAdapter();
                var data = productTableAdapter.GetData();
                DataTable LocalDT = data;

                var sortedRows = LocalDT.AsEnumerable().OrderBy(row => row.Field<double>("Cost"));
                DataTable SortedLocalDT = sortedRows.CopyToDataTable();

                DG.ItemsSource = SortedLocalDT.DefaultView;
            }
        }
    }
}