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; } } } }