public SearchIndexResultViewModel GetSearchIndexResultViewModel(SearchFilter filter, int UserId, string BrowserLanguage) { SearchIndexResultViewModel model = new SearchIndexResultViewModel(); try { int maxCount = 999999; string term = filter.Pattern ?? ""; bool isAdmin = false; User loggedUser = null; if (UserId > 0) { loggedUser = _userRepo.Get(UserId); if (loggedUser != null) { isAdmin = _userRolesService.IsInRole(UserId, UserRoles.Admin); } } int searchId = -1; if (!isAdmin) { searchId = InsertSearchResultItem(term, UserId, 0, false); } string urlPrefix = ""; if ((loggedUser != null && loggedUser.LanguageId == Languages.French) || (loggedUser == null && BrowserLanguage.ToLower().StartsWith("fr"))) { urlPrefix = "/fr"; } if (filter.ShowUsers) { model.Users = new SearchIndexResultTypeViewModel(fixSearchItemsList(GetSearchUsers(term, loggedUser, maxCount), maxCount, searchId, urlPrefix), "[[[Users]]]", "user"); } if (filter.ShowPages) { model.Pages = new SearchIndexResultTypeViewModel(fixSearchItemsList(GetSearchPages(term, maxCount, loggedUser, isAdmin), maxCount, searchId, urlPrefix), "[[[Pages]]]", "globe"); } model.SearchResultsGeneralCount = model.Pages.Items.Count + model.Users.Items.Count; SearchResult searchItem = _searchResultRepo.Get(searchId); if (searchItem != null) { searchItem.SearchResultsCount = model.SearchResultsGeneralCount; _searchResultRepo.Edit(searchItem); _searchResultRepo.Save(); } } catch (Exception e) { Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "term = " + filter.Pattern); } return(model); }
public ActionResult _IndexSearchResult(SearchFilter filter) { try { SearchIndexResultViewModel model = new SearchIndexResultViewModel(); int LoggedUserId = 0; if (User != null && User.Identity.IsAuthenticated) { LoggedUserId = UserSession.UserId; } model = _searchService.GetSearchIndexResultViewModel(filter, LoggedUserId); return(PartialView(model)); } catch (Exception e) { Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "pattern = " + filter.Pattern); } return(Content(PartialViewResults.UnknownError)); }