public ActionResult Results(string q) { if (string.IsNullOrWhiteSpace(q)) { return(RedirectToAction("Index")); } if (Regex.IsMatch(q.Trim().ToUpper(), "^[A-Z,0-9]{4,4}-[A-Z,0-9]{6,7}$")) { if (Repository.OfType <Order>().Queryable.Any(a => a.RequestNumber == q.Trim().ToUpper())) { return(this.RedirectToAction <OrderController>(a => a.Lookup(q.Trim().ToUpper()))); } } var orderIds = _accessQueryService.GetOrderAccess(_userIdentity.Current) .Select(x => x.OrderId) .Distinct() .ToArray(); SearchResultModel model; try { model = new SearchResultModel { Query = q, Orders = _searchService.SearchOrders(q, orderIds), LineItems = _searchService.SearchLineItems(q, orderIds), Comments = _searchService.SearchComments(q, orderIds), CustomFields = _searchService.SearchCustomFieldAnswers(q, orderIds) }; } catch (Exception ex) //If the search fails, return no results { Log.Error(ex, "Error searching for {query}", q); model = new SearchResultModel { Query = q }; } return(View(model)); }
public ActionResult Results(string q) { if (string.IsNullOrWhiteSpace(q)) { return RedirectToAction("Index"); } if (Regex.IsMatch(q.Trim().ToUpper(), "^[A-Z,0-9]{4,4}-[A-Z,0-9]{6,7}$")) { if (Repository.OfType<Order>().Queryable.Any(a => a.RequestNumber == q.Trim().ToUpper())) { return this.RedirectToAction<OrderController>(a => a.Lookup(q.Trim().ToUpper())); } } var orderIds = _accessQueryService.GetOrderAccess(_userIdentity.Current) .Select(x=>x.OrderId) .Distinct() .ToArray(); SearchResultModel model; try { model = new SearchResultModel { Query = q, Orders = _searchService.SearchOrders(q, orderIds), LineItems = _searchService.SearchLineItems(q, orderIds), Comments = _searchService.SearchComments(q, orderIds), CustomFields = _searchService.SearchCustomFieldAnswers(q, orderIds) }; } catch(Exception ex) //If the search fails, return no results { Log.Error(ex, "Error searching for {query}", q); model = new SearchResultModel {Query = q}; } return View(model); }