// GET: Search public ActionResult Index() { var model = new SearchViewModels.SearchViewModel(); model.SearchResultList = new List <List <SearchViewModels.SearchResult> >(); return(View(model)); }
// GET: Organisation public ActionResult Search(string searchText, string origin) { var model = new SearchViewModels.SearchViewModel(); var trimmedSearchText = searchText.Trim(); try { switch (origin) { case "cases": model.SearchResultList = SearchCases(trimmedSearchText, origin); //Om endats en träff, hämta datat direkt var hits = CheckNumberOfHits(model.SearchResultList); if (hits == 1) { return(RedirectToAction("GetOrganisationsCases", "Organisation", new { selectedOrganisationId = model.SearchResultList[0][0].Id })); } //Om inga träffar, tillbaka till söksidan else if (hits == 0) { return(RedirectToAction("GetCases", "Organisation", new { origin = origin })); } break; case "contacts": model.SearchResultList = SearchContacts(trimmedSearchText, origin); //Om endats en träff, hämta datat direkt if (model.SearchResultList.Count == 1 && model.SearchResultList[0].Count == 1) { return(RedirectToAction("GetOrganisationsContacts", "Organisation", new { selectedOrganisationId = model.SearchResultList[0][0].Id })); } //Om inga träffar, tillbaka till söksidan else if (model.SearchResultList.Count == 0 || (model.SearchResultList.Count == 0 && model.SearchResultList[0].Count == 0)) { return(RedirectToAction("GetContacts", "Organisation", new { origin = origin })); } break; default: var errorModel = new CustomErrorPageModel { Information = "Felaktig avsändare till sökfunktionen.", ContactEmail = ConfigurationManager.AppSettings["ContactEmail"] }; return(View("CustomError", errorModel)); } } catch (Exception e) { Console.WriteLine(e); ErrorManager.WriteToErrorLog("SearchController", "Search", e.ToString(), e.HResult, User.Identity.Name); var errorModel = new CustomErrorPageModel { Information = "Ett fel inträffade vid sökning.", ContactEmail = ConfigurationManager.AppSettings["ContactEmail"], }; if (e.Message == "Sequence contains no elements") { errorModel.Information = "Ingen sökträff."; } return(View("CustomError", errorModel)); } return(View("Index", model)); }