Beispiel #1
0
        // GET: Search
        public ActionResult Index()
        {
            var model = new SearchViewModels.SearchViewModel();

            model.SearchResultList = new List <List <SearchViewModels.SearchResult> >();
            return(View(model));
        }
Beispiel #2
0
        // 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));
        }