protected virtual List <ContentSearchTabViewModel> GetSuggestedTabs(GetContentSearchParameter param, List <IContentTab> contentTabs) { List <ContentSearchTabViewModel> vm = null; if (param.ProductsTabActive && param.IsCorrectedSearchQuery) { vm = new List <ContentSearchTabViewModel>(); foreach (var tab in contentTabs) { var searchQuery = param.SearchQuery; var searchRequest = GetSearchRequestForContentTab(param, tab, searchQuery); var result = WebsiteSearchFacade.Search(searchRequest); if (result.ResultsFound > 0) { vm.Add(new ContentSearchTabViewModel { Title = tab.Title, UrlTitle = tab.UrlTitle, TabUrl = GetTabUrl(param, tab, searchQuery), Total = result.ResultsFound }); } } } return(vm); }
public virtual ContentSearchViewModel GetContentSearchViewModel(GetContentSearchParameter param) { using (var conn = new DataConnection(param.Culture)) { var contentTabs = DataFacade.GetData <IContentTab>().Where(c => !string.IsNullOrEmpty(c.DataTypes)).OrderBy(t => t.Order).ToList(); if (contentTabs == null || contentTabs.Count == 0) { return(null); } var vm = new ContentSearchViewModel(); foreach (var tab in contentTabs) { var isActive = param.PathInfo == tab.UrlTitle; var searchQuery = GetSearchQuery(param); var searchRequest = GetSearchRequestForContentTab(param, tab, searchQuery); var result = WebsiteSearchFacade.Search(searchRequest); vm.Tabs.Add(new ContentSearchTabViewModel { Title = tab.Title, UrlTitle = tab.UrlTitle, TabUrl = GetTabUrl(param, tab, searchQuery), PagesCount = (int)Math.Ceiling((decimal)result.ResultsFound / param.PageSize), Total = result.ResultsFound, IsActive = isActive, SearchResults = result.Entries.Select(x => GetSearchResultsEntryViewModel(x)).ToList(), DataTypes = tab.DataTypes }); if (isActive) { vm.SelectedFacets = GetSelectedFacets(param, result); vm.Facets = GetFacets(param, result); } } var sortBys = DataFacade.GetData <ISortOption>().OrderBy(t => t.Order).ToList(); vm.AvailableSortBys = sortBys; vm.SelectedSortBy = sortBys.Find(o => o.FieldName == param.SortBy && (o.IsReverted && param.SortDirection == "desc" || !o.IsReverted && param.SortDirection == "asc")) ?? sortBys.First(); vm.SuggestedTabs = GetSuggestedTabs(param, contentTabs); return(vm); } }
public virtual ContentSearchViewModel GetContentSearchViewModel(GetContentSearchParameter param) { var contentTabs = DataFacade.GetData <IContentTab>().Where(c => !string.IsNullOrEmpty(c.DataTypes)).OrderBy(t => t.Order).ToList(); if (contentTabs == null || contentTabs.Count == 0) { return(null); } var vm = new ContentSearchViewModel(); foreach (var tab in contentTabs) { var isActive = param.PathInfo == tab.UrlTitle; var searchQuery = GetSearchQuery(param); var searchRequest = GetSearchRequestForContentTab(param, tab, searchQuery); var result = WebsiteSearchFacade.Search(searchRequest); vm.Tabs.Add(new ContentSearchTabViewModel { Title = tab.Title, UrlTitle = tab.UrlTitle, TabUrl = GetTabUrl(param, tab, searchQuery), SearchResults = result, PagesCount = (int)Math.Ceiling((decimal)result.ResultsFound / param.PageSize), Total = result.ResultsFound, IsActive = isActive }); } vm.SuggestedTabs = GetSuggestedTabs(param, contentTabs); if (vm.ActiveTab != null) { vm.SelectedFacets = GetSelectedFacets(param, vm.ActiveTab); vm.Facets = GetFacets(param, vm.ActiveTab); } return(vm); }