private void AddcategoryBrowseResultToSession(CategoryBrowseMainViewModel result, int portaId) { var dictionary = Session.GetcategoryBrowseResult(); if (dictionary != null) { dictionary.DictioinaryOfcategoryArticleViewModel[portalId] = result; Session["DictionaryOfcategoryArticle"] = dictionary; } else { var newDictionary = new DictionaryOfcategoryArticleViewModel(); Dictionary<int, CategoryBrowseMainViewModel> dictioinaryOfcategoryArticleViewModel = new Dictionary<int, CategoryBrowseMainViewModel>(); newDictionary.DictioinaryOfcategoryArticleViewModel = dictioinaryOfcategoryArticleViewModel; newDictionary.DictioinaryOfcategoryArticleViewModel[portalId] = result; Session["DictionaryOfcategoryArticle"] = newDictionary; } }
public ActionResult categoryBrowse(int? catId, string title, string searchText, string pTitle, int page = 1, bool paging = false, bool updateFilter = false, int pcatId = 0, bool search = false) { CategoryBrowseMainViewModel categoryBrowseMainViewModel = new CategoryBrowseMainViewModel(); ReadDataFromRouteData(); categoryBrowseMainViewModel.SessionTimeOutWarning = Utilities.GetResourceText(CommonResources, "SESSIONTIMEOUTWARNING"); categoryBrowseMainViewModel.SessionTimedOut = Utilities.GetResourceText(CommonResources, "SESSIONTIMEDOUT"); SearchModule SModule = (SearchModule)_portal.Configuration.SearchModule; if (!paging) { if (!updateFilter) { if (catId.HasValue && pcatId != 0 && title != null && pTitle !=null) { AddcategoryFiltersToSession (pcatId,pTitle,portalId,true, true); AddcategoryFiltersToSession (catId.Value,title,portalId,false); } else { AddcategoryFiltersToSession(catId.HasValue?catId.Value:pcatId, title, portalId, (pcatId != 0 && catId == null)); } } else { ApplyCategoryFilter(catId.HasValue ? catId.Value : 0, title, clientId, portalId); } if (pcatId != 0 && (catId == null || catId.Value ==0)) { categoryBrowseMainViewModel.ParentcategorySelected = pcatId; catId = pcatId; } else { categoryBrowseMainViewModel.ParentcategorySelected = pcatId; } categoryBrowseMainViewModel.portalId = portalId; categoryBrowseMainViewModel.clientId = clientId; categoryBrowseMainViewModel.showBreadcrumb = _portal.Configuration.ShowBreadcrumbs; categoryBrowseMainViewModel.Resources = resources; categoryBrowseMainViewModel.Page = page; categoryBrowseMainViewModel.ResultsPerPage = SModule.ResultsPerPage; categoryBrowseMainViewModel.ResultsDisplay = SModule.ResultsDisplay; AddcategoryBrowseResultToSession(categoryBrowseMainViewModel, portalId); categoryBrowseMainViewModel.SearchImageUrl = Utilities.GetImageUrl(_portal.ClientId, _portal.PortalId, "SearchButton.png"); categoryBrowseMainViewModel.AppliedCategories = Session.GetListOfcategoryApplied().CategoriesApplied[portalId]; categoryBrowseMainViewModel.LastcategoryIdSelected = Session.GetListOfcategoryApplied().CategoriesApplied[portalId].LastOrDefault().Id; List<CategoryBrowseViewModel> categoryBrowseViewModel = new List<CategoryBrowseViewModel>(); categoryArticleViewModel categoryArticleViewModel = new categoryArticleViewModel(); categoryBrowseMainViewModel.CategoryBrowseViewModel = categoryBrowseViewModel; categoryBrowseMainViewModel.CategoryBrowseArticleViewModel = categoryArticleViewModel; List<CategoryBrowseViewModel> appliedCategories = new List<CategoryBrowseViewModel>(); CategoryBrowseHeaderViewModel categoryBrowseHeader = new CategoryBrowseHeaderViewModel(); categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel = categoryBrowseHeader; BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = browseText, Value = "browse", Selected = false }); var parentCat = Session.GetListOfcategoryApplied().CategoriesApplied[portalId].FirstOrDefault(); if (!string.IsNullOrEmpty(searchText)) { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = parentCat.Title, Value = "category", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = Utilities.GetResourceText(resources, "SEARCHRESULTFOR") + searchText, Value = "searchFor", Selected = true }); } else { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = parentCat.Title, Value = "category", Selected = true }); } categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel.BreadcrumbViewModel = BreadcrumbViewModel; try { //read and update clientid & portalid from routedata //for (int i = 0; i < 5; i++) //{ // categoryBrowseMainViewModel.AppliedCategories.Add(new CategoryBrowseViewModel // { // Id = i, // Title = "Category" + i, // ChildrenCount = i // }); //} categoryBrowseMainViewModel.SearchText = ""; if (searchText != null && searchText.Length > 0) { categoryBrowseMainViewModel.CategoryBrowseArticleViewModel.CatArticleItem = new List<CatArticleItem>(); _searchesManager.SolutionFinders = ""; if (SModule != null) { //Set numberic Search enabled _searchesManager.EnhancedNumericSearchEnabled = SModule.EnhancedNumericSearchEnabled; //set search type _searchesManager.searchType = SModule.SearchType; //Maximum results _searchesManager.MaxResults = SModule.MaxResults; //Spell check enabled _searchesManager.SpellCheckEnabled = SModule.SpellCheckEnabled; //suggested Search enabled _searchesManager.SuggestedSearchesEnabled = SModule.SuggestedSearchesEnabled; //Synonyms Enabled _searchesManager.SynonymsEnabled = SModule.SynonymsEnabled; //SolutionFinder Ids for search _searchesManager.SolutionFinders = string.IsNullOrEmpty(SModule.SolutionFinders) ? "" : SModule.SolutionFinders; //Auto Summarization _searchesManager.AutoSummarization = SModule.AutoSummarization; //Sort // Sort Key from Search Sort List<KeyValuePair<int, string>> SearchSorted = SModule.DefaultSort.ToList(); SearchSorted.Sort((FirstValue, SecondValue) => { return FirstValue.Key.CompareTo(SecondValue.Key); } ); _searchesManager.DefaultSort = SearchSorted.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); // } else { _searchesManager.EnhancedNumericSearchEnabled = false; //set search type _searchesManager.searchType = SearchType.AllWords; //Maximum results _searchesManager.MaxResults = 200; //Spell check enabled _searchesManager.SpellCheckEnabled = false; //suggested Search enabled _searchesManager.SuggestedSearchesEnabled = false; //Synonyms Enabled _searchesManager.SynonymsEnabled = false; //SolutionFinder Ids for search _searchesManager.SolutionFinders = ""; } _searchesManager.SpellCheckEnabled = false; SearchResult result = new SearchResult(); result = _searchesManager.Search(searchText, null, catId.ToString(), null); _searchesManager.SetLastSearchInfo(searchText, 1, null, HttpContext.Session.SessionID, null, 0, false, false, "Browse", "fulltext", result.SearchResults.Count); if(search) { categoryBrowseMainViewModel.SearchText = searchText; } Dictionary<int, int> categoryCounts; categoryCounts = new Dictionary<int, int>(); //get content TYpe string kbName = string.Empty; string FileExtn = string.Empty; string summary = string.Empty; foreach (var results in result.SearchResults) { summary = string.Empty; FileExtn = Utilities.GetFileType(results.FileExtn); // file extension //get knowledgebase KnowledgeBase KB = _portal.Knowledgebases.FirstOrDefault(Q => Q.Id == results.KbId); if (KB != null) { kbName = KB.Name; } if(SModule.AutoSummarizationEnabled) { summary = results.Summary; } CatArticleItem CatArticleItem = new CatArticleItem() { Id = results.Id, //Artilce Id Title = results.Title, ModifiedDate = results.ModifiedDate, KBName = kbName, Attributes = _searchesManager.GetAttributes(results.ArtAttributeIds.ToString()), Extension = FileExtn, Summary = summary }; categoryBrowseMainViewModel.CategoryBrowseArticleViewModel.CatArticleItem.Add(CatArticleItem); // Get article categories string[] articleCats = null; if (!string.IsNullOrEmpty(results.ArtCategoryIds)) { articleCats = results.ArtCategoryIds.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (articleCats.Length == 0) { if (categoryCounts.ContainsKey(0)) categoryCounts[0]++; else categoryCounts[0] = 1; } for (int j = 0; j < articleCats.Length; j++) { if (categoryCounts.ContainsKey(Convert.ToInt32(articleCats[j]))) categoryCounts[Convert.ToInt32(articleCats[j])]++; else categoryCounts[Convert.ToInt32(articleCats[j])] = 1; } } } string scategoryname = string.Join(",", categoryCounts.Select(x => x.Key).ToArray()); string sarticlecount = string.Join(",", categoryCounts.Select(x => x.Value).ToArray()); if (scategoryname.Length > 0) { List<SearchResultRefinement> searchresultrefinment = new List<SearchResultRefinement>(); searchresultrefinment = _searchesManager.GetSearchCategories(scategoryname, sarticlecount, Convert.ToInt32(catId)); foreach (var cats in searchresultrefinment) { categoryBrowseMainViewModel.CategoryBrowseViewModel.Add(new CategoryBrowseViewModel { Id = cats.FilterId, Title = cats.Title, ChildrenCount = cats.ArticleCount }); } } } else { List<CategoryBrowse> CatList = _categoryManager.GetCategoriesByCategory(Convert.ToInt32(catId)); // _categoryManager.GetCategoriesByCategory(item.Id, strGroupids); //Moke Data to be removed. foreach (CategoryBrowse item in CatList) { categoryBrowseMainViewModel.CategoryBrowseViewModel.Add(new CategoryBrowseViewModel { Id = item.Id, Title = item.Title, ChildrenCount = item.ChildrenCount }); } List<CatArticleItem> CatArticlesList = _categoryManager.GetArticlesByCategory(Convert.ToInt32(catId)); categoryBrowseMainViewModel.CategoryBrowseArticleViewModel.CatArticleItem = CatArticlesList; } List<CategoryViewModel> categories = new List<CategoryViewModel>(); categoryBrowseHeader.Categories = categories; foreach (var categoryItem in catModule.Children) { Category category = new Category() { Name = categoryItem.Name, Id = categoryItem.Id, ImageUrl = categoryItem.ImageUrl, ImageSelectedUrl = categoryItem.ImageSelectedUrl }; CategoryViewModel categoryViewModel = new CategoryViewModel(); categoryViewModel.Category = category; categoryBrowseHeader.Categories.Add(categoryViewModel); } } catch (Exception ex) { logger.ErrorException("Error:" + " " + ex.Message, ex); throw ex; } } else { try { categoryBrowseMainViewModel = Session.GetcategoryBrowseResult().DictioinaryOfcategoryArticleViewModel[portalId]; categoryBrowseMainViewModel.Page = page; } catch (Exception ex) { logger.ErrorException("Error:" + " " + ex.Message, ex); throw ex; } } return View(categoryBrowseMainViewModel); }
// // GET: /Articles/ public ActionResult Index(string title) { try { ReadDataFromRouteData(); CategoryBrowseMainViewModel categoryBrowseMainViewModel = new CategoryBrowseMainViewModel(); List<CategoryBrowseViewModel> categoryBrowseViewModel = new List<CategoryBrowseViewModel>(); categoryArticleViewModel categoryArticleViewModel = new categoryArticleViewModel(); categoryBrowseMainViewModel.CategoryBrowseViewModel = categoryBrowseViewModel; categoryBrowseMainViewModel.CategoryBrowseArticleViewModel = categoryArticleViewModel; List<CategoryBrowseViewModel> appliedCategories = new List<CategoryBrowseViewModel>(); categoryBrowseMainViewModel.AppliedCategories = appliedCategories; CategoryBrowseHeaderViewModel categoryBrowseHeader = new CategoryBrowseHeaderViewModel(); categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel = categoryBrowseHeader; categoryBrowseMainViewModel.portalId = portalId; categoryBrowseMainViewModel.clientId = clientId; categoryBrowseMainViewModel.Resources = resources; categoryBrowseMainViewModel.showBreadcrumb = _portal.Configuration.ShowBreadcrumbs; if (catModule != null) { List<ListItem> catItemList = catModule.Children; TempData["MainLayoutViewModel"] = Session["MainLayoutViewModel"]; categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel.Categories = new List<CategoryViewModel>(); // TODO : change MOCK for real BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = browseText, Value = "browse", Selected = true }); categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel.BreadcrumbViewModel = BreadcrumbViewModel; foreach (var categoryItem in catItemList) { Category category = new Category() { Name = categoryItem.Name, Id = categoryItem.Id, ImageUrl = categoryItem.ImageUrl }; CategoryViewModel categoryViewModel = new CategoryViewModel(); List<CategoryBrowse> CatList = _categoryManager.GetCategoriesByCategory(Convert.ToInt32(categoryItem.Id)); // _categoryManager.GetCategoriesByCategory(item.Id, strGroupids); //Moke Data to be removed. List<Category> children = new List<Category>(); categoryViewModel.Category = category; categoryViewModel.Category.Children = children; foreach (CategoryBrowse item in CatList) { categoryViewModel.Category.Children.Add(new Category { Id = item.Id, Name = item.Title }); } categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel.Categories.Add(categoryViewModel); } categoryBrowseMainViewModel.CategoryBrowseHeaderViewModel.showBreadcrumb = _portal.Configuration.ShowBreadcrumbs; //todo categoryBrowseMainViewModel.SessionTimeOutWarning = Utilities.GetResourceText(CommonResources, "SESSIONTIMEOUTWARNING"); categoryBrowseMainViewModel.SessionTimedOut = Utilities.GetResourceText(CommonResources, "SESSIONTIMEDOUT"); return View(categoryBrowseMainViewModel); } return null; } catch (Exception ex) { logger.ErrorException("Error:" + " " + ex.Message, ex); throw ex; } }