public ActionResult SearchBipItems(BIPPageViewModel model) { SetCulture(model.CurrentPageCulture); var _model = _bipService.BIPPageViewModel(model); return(PartialView("MainPageBipPartial", _model)); }
/// <summary> /// Metoda zwracająca klasę zawierającą elementy wyświetlane na stronie głównej BIP /// </summary> /// <param name="currentUmbracoPageId">id strony umbraco na której się znajdujemy</param> /// <returns>Model zawierający elementy strony głównej BIP</returns> public BIPPageViewModel BIPPageViewModel(int currentUmbracoPageId) { var _model = new BIPPageViewModel() { CurrentUmbracoPageId = currentUmbracoPageId, CurrentPageCulture = Thread.CurrentThread.CurrentCulture }; return(BIPPageViewModel(_model)); }
/// <summary> /// Metoda zwracająca klasę zawierającą elementy wyświetlane na stronie głównej BIP /// </summary> /// <param name="model">model BIPPageViewModel</param> /// <returns>Model zawierający elementy strony głównej BIP</returns> public BIPPageViewModel BIPPageViewModel(BIPPageViewModel model) { var _currentPage = _umbracoHelper.TypedContent(model.CurrentUmbracoPageId); var _bipPage = new BIP(_currentPage); if (!string.IsNullOrEmpty(model.SearchText)) { var _searcher = ExamineManager.Instance.SearchProviderCollection["BipContentSearchSearcher"]; var _searchCriteria = _searcher.CreateSearchCriteria(Examine.SearchCriteria.BooleanOperation.Or); var q_split = model.SearchText.Split(' '); var _fieldsToSearch = new[] { "pageTitle", "articleTitle", "articleText", "pageMainTitle", "pageMainDescription", "nodeName" }; IBooleanOperation _filter = _searchCriteria.GroupedOr(_fieldsToSearch, q_split.First()); foreach (var term in q_split.Skip(1)) { _filter = _filter.Or().GroupedOr(_fieldsToSearch, term); } var _searchResults = _searcher.Search(_filter.Compile()).OrderByDescending(x => x.Score); var _resultBipFormIds = _searchResults.Where(q => q.Fields["nodeTypeAlias"] == DocumentTypeEnum.bIPForm.ToString()).Select(q => q.Id); var _resultBipArticlesIds = _searchResults.Where(q => q.Fields["nodeTypeAlias"] == DocumentTypeEnum.articleBip.ToString()).Select(q => q.Id); model.ItemList.AddRange(_bipPage.Descendants(DocumentTypeEnum.bIPForm.ToString()).Where(q => _resultBipFormIds.Contains(q.Id)).Select(q => new BIpform(q)).Select(q => new BipListItemModel() { CreateDate = q.CreateDate, Url = q.Url, Description = removeHtmlTag(q.PageMainDescription.ToString()), Title = q.PageMainTitle })); model.ItemList.AddRange(_bipPage.Descendants(DocumentTypeEnum.articleBip.ToString()).Where(q => _resultBipArticlesIds.Contains(q.Id)).Select(q => new ArticleBip(q)).Select(q => new BipListItemModel() { CreateDate = q.CreateDate, Url = q.Url, Description = removeHtmlTag(q.ArticleText.ToString()), Title = q.ArticleTitle })); } else { var _bipForms = _bipPage.Descendants(DocumentTypeEnum.bIPForm.ToString()).Select(q => new BIpform(q)); var _bipArticles = _bipPage.Descendants(DocumentTypeEnum.articleBip.ToString()).Select(q => new ArticleBip(q)); model.ItemList.AddRange(_bipForms.Select(q => new BipListItemModel() { CreateDate = q.CreateDate, Url = q.Url, Description = removeHtmlTag(q.PageMainDescription.ToString()), Title = q.PageMainTitle })); model.ItemList.AddRange(_bipArticles.Select(q => new BipListItemModel() { CreateDate = q.CreateDate, Url = q.Url, Description = removeHtmlTag(q.ArticleText.ToString()), Title = q.ArticleTitle })); } return(model); }