public ActionResult Search(SearchUserViewModel model) { if (!ModelState.IsValid || String.IsNullOrEmpty(model.SearchText)) { return RedirectToAction("Search", "Membership"); } return RedirectToAction("Search", "Membership", new { filter = model.SearchCriteria.ToString(), searchText = model.SearchText }); }
public ActionResult Search(string filter, string searchText, int? Page) { int page = Page ?? 1; SearchUserViewModel model = new SearchUserViewModel(); try { // TODO : Better to move paging to the Manager project. // Otherwise, cache the IEnumerable<ApplicationUser> so that // the entire collection does not have to be re-queried when changing page. Result<IEnumerable<ApplicationUser>> result = new Result<IEnumerable<ApplicationUser>>(); if (String.IsNullOrEmpty(searchText) || !Enum.GetNames(typeof(SearchUserEnum)).Contains(filter)) { // Show all accounts model.SearchHeading = "Showing all accounts"; result = userService.GetAllUsers(); } else { // Filter accounts model.SearchCriteria = (SearchUserEnum)Enum.Parse(typeof(SearchUserEnum), filter); model.SearchText = searchText; model.SearchHeading = "Showing accounts with " + filter + " containing \"" + searchText + "\""; result = userService.GetUsersByFilter(model.SearchCriteria, searchText); } switch (result.Status) { case ResultEnum.Success: IEnumerable<ApplicationUser> pagedList = result.Data.ToPagedList<ApplicationUser>(page, 10); model.PagedList = pagedList; model.PagedUsers = GetPagedUsers(pagedList); return View(model); case ResultEnum.Fail: break; default: break; } } catch { ModelState.AddModelError("ErrorMessage", "Fail"); return View(model); } ModelState.AddModelError("ErrorMessage", "Fail"); return View(model); }