private void UpdateSearch(bool async) { //search try { string text = null; Dispatcher.Invoke(() => { text = SearchBox.Text; }); Regex searchFor = new Regex(text, RegexOptions.IgnoreCase); var loadTask = Task.Run(() => { try { var results = ((from module in Config.ModelRepository.AsParallel() where searchFor.IsMatch(module.FullName) select new ContentReference(module.FullName, module))).OrderBy(c => c.ToString()).ToArray(); Dispatcher.BeginInvoke(new Action(() => { SearchedItems.Clear(); foreach (var result in results) { SearchedItems.Add(result); } })); } catch (Exception error) { Dispatcher.BeginInvoke(new Action(() => { MessageBox.Show(error.Message); })); } }); if (!async) { loadTask.Wait(); } } catch { } }
public void SelectModuleContent(ModelSystemStructureModel module) { Task.Run(() => { if (module != null) { var type = module.Type; var selectCorrectDocument = Task.Run(() => { UpdateSearch(false); Dispatcher.BeginInvoke(new Action(() => { var foundElement = SearchedItems.FirstOrDefault(element => element.Module == type); if (foundElement != null) { ResultBox.SelectedItem = foundElement; } })); }); OperationProgressing progressing = null; Dispatcher.Invoke(new Action(() => { progressing = new OperationProgressing() { Owner = MainWindow.Us }; })); Dispatcher.BeginInvoke(new Action(() => { progressing.ShowDialog(); })); selectCorrectDocument.Wait(); Dispatcher.BeginInvoke(new Action(() => { progressing.Close(); })); } }); }
public ActionResult SearchItemByCustomer(string search, int?pageNo, string filter) { if (filter == null && TempData["pricefilter"] != null) { filter = TempData["pricefilter"].ToString(); } TempData.Remove("filter"); TempData.Remove("category"); if (TempData["search"] != null) { search = TempData["Search"].ToString(); } int pageNumber; if (TempData["PageNumberSearch"] == null) { Debug.WriteLine("EnteredSearch"); pageNumber = 1; TempData["PageNumberSearch"] = 1; } else { if (pageNo == 1) { pageNumber = Convert.ToInt32(TempData["PageNumberSearch"]) + 1; TempData["PageNumberSearch"] = pageNumber; } else if (pageNo == -1) { pageNumber = Convert.ToInt32(TempData["PageNumberSearch"]) - 1; TempData["PageNumberSearch"] = pageNumber; } else { pageNumber = 1; TempData["PageNumberSearch"] = pageNumber; } } if (pageNumber < 1) { pageNumber = 1; TempData["PageNumberSearch"] = 1; } pageNumber = (pageNumber - 1) * pageSize; IEnumerable <Item> SearchedItems; if (filter != null) { if (filter == "1") { TempData["pricefilter"] = "1"; SearchedItems = _context.Items.Where(c => c.ItemName.Contains(search)).OrderByDescending(item => item.Price).Skip(pageNumber).Take(pageSize).ToList(); } else { TempData["pricefilter"] = "2"; SearchedItems = _context.Items.Where(c => c.ItemName.Contains(search)).OrderBy(item => item.Price).Skip(pageNumber).Take(pageSize).ToList(); } } else { SearchedItems = _context.Items.Where(c => c.ItemName.Contains(search)).OrderBy(item => item.Id).Skip(pageNumber).Take(pageSize).ToList(); } if (SearchedItems.Any() == false) { return(View("ProductSearchEnded")); } TempData["search"] = search; TempData.Keep(); return(View(SearchedItems)); }