public static ArticlePartialViewModel CreateArticlePartialViewModel(ArticleItem articleItem, ArticleModule articleModule, ArrayList categoryNamesList, ArrayList attributeNamesList, PortalType portalType, Dictionary<string, string> resources, int clientId, int portalId, string adminURL) { ArticlePartialViewModel articlePartialViewModel = new ArticlePartialViewModel(); DataConfigurationRepository dataConfigurationRepository = new DataConfigurationRepository(HttpContext.Current.Application["KBDataPath"].ToString(), HttpContext.Current.Application["KBInstallPath"].ToString()); articlePartialViewModel.Resources = resources; articlePartialViewModel.ArticleItem = articleItem; articlePartialViewModel.clientId = clientId; articlePartialViewModel.portalId = portalId; if (articleModule != null) { articlePartialViewModel.ArticleConfiguration = articleModule; } else { //---- set defaults ------ } List<BreadcrumbViewModel> categories = new List<BreadcrumbViewModel>(); foreach (List<string> names in categoryNamesList) { BreadcrumbViewModel itemList = new BreadcrumbViewModel(); itemList.NavigationList = new List<SelectListItem>(); foreach (string name in names) { itemList.NavigationList.Add(new SelectListItem() { Text = name, Value = string.Empty, Selected = false }); } categories.Add(itemList); } articlePartialViewModel.Categories = categories; articlePartialViewModel.Attributes = new List<BreadcrumbViewModel>(); List<BreadcrumbViewModel> attr = new List<BreadcrumbViewModel>(); foreach (List<string> names in attributeNamesList) { BreadcrumbViewModel itemList = new BreadcrumbViewModel(); itemList.NavigationList = new List<SelectListItem>(); foreach (string name in names) { itemList.NavigationList.Add(new SelectListItem() { Text = name, Value = string.Empty, Selected = false }); } attr.Add(itemList); } articlePartialViewModel.Attributes = attr; articlePartialViewModel.ImageLinks = new List<ImageLinkViewModel>(); ImageLinkViewModel imageLinkViewModel; //check Favorite is enabled if (articlePartialViewModel.ArticleConfiguration.articleControlsProperties.ArticleFavoriteDisplay) { imageLinkViewModel = new ImageLinkViewModel() { Icon = (articlePartialViewModel.ArticleItem.Favorite == true && (portalType != PortalType.Open && portalType != PortalType.Registration)) ? @Utilities.GetImageUrl(clientId, portalId, "favoriteactive.png") : @Utilities.GetImageUrl(clientId, portalId, "favorite.png"), Link = "/Article/FavoriteArticle/" + clientId + "/" + portalId, Title = Utilities.GetResourceText(resources, "CONTROLS_FAVORITELABEL"), ToggleIcon = (articlePartialViewModel.ArticleItem.Favorite == true || portalType == PortalType.Open || portalType == PortalType.Registration) ? @Utilities.GetImageUrl(clientId, portalId, "favorite.png") : @Utilities.GetImageUrl(clientId, portalId, "favoriteactive.png") }; imageLinkViewModel.Id = "favorites"; articlePartialViewModel.ImageLinks.Add(imageLinkViewModel); } //check Subscription is enabled if (articlePartialViewModel.ArticleConfiguration.articleControlsProperties.ArticleSubscribeDisplay) { imageLinkViewModel = new ImageLinkViewModel() { Icon = @Utilities.GetImageUrl(clientId, portalId, "subscribe.png"), Link = "", Title = Utilities.GetResourceText(resources, "CONTROLS_SUBSCRIBELABEL"), ToggleIcon = @Utilities.GetImageUrl(clientId, portalId, "subscribe_selected.png") }; // imageLinkViewModel = new ImageLinkViewModel() { Icon = (articlesViewModel.ArticlePartialViewModel.ArticleItem.SubscriptionStatus == true && (_portal.PortalType != PortalType.Open && _portal.PortalType != PortalType.Registration)) ? @Utilities.GetImageUrl(clientId, portalId, "subscribe_select.png") : @Utilities.GetImageUrl(clientId, portalId, "subscribe.png"), Link = "/Article/ToggleArticleSubscription/" + clientId + "/" + portalId, Title = Utilities.GetResourceText(resources, "CONTROLS_SUBSCRIBELABEL"), ToggleIcon = (articlesViewModel.ArticlePartialViewModel.ArticleItem.SubscriptionStatus == true || _portal.PortalType == PortalType.Open || _portal.PortalType == PortalType.Registration) ? @Utilities.GetImageUrl(clientId, portalId, "subscribe.png") : @Utilities.GetImageUrl(clientId, portalId, "subscribe.png") }; //imageLinkViewModel = new ImageLinkViewModel() { Icon = @Utilities.GetImageUrl(clientId, portalId, "subscribe.png"), Link = "", Title = Utilities.GetResourceText(resources,"CONTROLS_SUBSCRIBELABEL"), ToggleIcon = @Utilities.GetImageUrl(clientId, portalId, "subscribe.png") }; imageLinkViewModel.Id = "subscribe"; articlePartialViewModel.ImageLinks.Add(imageLinkViewModel); } //Check share is enabled if (articlePartialViewModel.ArticleConfiguration.articleControlsProperties.ArticleShareDisplay) { imageLinkViewModel = new ImageLinkViewModel() { Icon = @Utilities.GetImageUrl(clientId, portalId, "share.png"), Link = "", Title = Utilities.GetResourceText(resources, "CONTROLS_SHARELABEL"), ToggleIcon = @Utilities.GetImageUrl(clientId, portalId, "share_selected.png") }; imageLinkViewModel.Id = "share"; articlePartialViewModel.ImageLinks.Add(imageLinkViewModel); } if (articlePartialViewModel.ArticleConfiguration.articleControlsProperties.ArticleEditDisplay) { imageLinkViewModel = new ImageLinkViewModel() { Icon = @Utilities.GetImageUrl(clientId, portalId, "edit.png"), Link = adminURL + "/index.aspx?aid=", Title = Utilities.GetResourceText(resources, "CONTROLS_EDITLABEL"), ToggleIcon = @Utilities.GetImageUrl(clientId, portalId, "edit.png") }; imageLinkViewModel.Id = "edit"; articlePartialViewModel.ImageLinks.Add(imageLinkViewModel); } articlePartialViewModel.Attachments = articleItem.Attachments; return articlePartialViewModel; }
// // GET: /Articles/ public ActionResult Index(int? id, int? relparticId, string relpname, int catId = 0, Boolean fromwidget = false, int searchid = 0, Boolean isSearch = false) { try { //read portalid and clientid from route data ReadDataFromRouteData(); string searchText = string.Empty; ArticleViewModel articlesViewModel = new ArticleViewModel(); if (HttpContext.Session["SearchText_" + portalId.ToString()] != null && isSearch == true) { searchText = (String)Session["SearchText_" + portalId.ToString()]; } var articleId = 0; if (string.IsNullOrEmpty(Request.QueryString["id"]) == false) { if (Request.QueryString["id"].ToString().Contains("|")) { articleId = Int32.Parse(Request.QueryString["id"].ToString().Replace("|", string.Empty).Trim()); } else articleId = int.Parse(Request.QueryString["id"]); } if (!(id.HasValue) && !(relparticId.HasValue)) { ViewData.Add("ArticleNotFound", "ArticleID is not passed!"); return View(); } if (id.Value.ToString().Contains("|")) { articleId = Int32.Parse(id.Value.ToString().Replace("|", string.Empty).Trim()); } else articleId = id.Value; var articleItem = _articleManager.GetArticleItemById(articleId, HttpContext.Session.SessionID, searchText, searchid); if (articleItem == null) { ViewData.Add("ArticleNotFound", "ArticleID not found!"); return View(); } if (articleItem.Extension == ".html" || articleItem.Extension == ".htm") { if (articleItem.Content.CompleteContent.Contains("articleRedirect.aspx")) articleItem.Content.CompleteContent = Utilities.UpdateArticleURlInArticleContent(articleItem.Content.CompleteContent, "/articleRedirect.aspx?aid=", "/Article/Index/" + clientId + "/" + portalId + "?id="); } //split artilce content Utilities.splitArticleContent(ref articleItem); articlesViewModel.clientId = clientId; articlesViewModel.portalId = portalId; articlesViewModel.showBreadcrumb = this._portal.Configuration.ShowBreadcrumbs; articlesViewModel.SessionTimeOutWarning = Utilities.GetResourceText(CommonResources, "SESSIONTIMEOUTWARNING"); articlesViewModel.SessionTimedOut = Utilities.GetResourceText(CommonResources, "SESSIONTIMEDOUT"); articlesViewModel.FromWidget = fromwidget; //overwrite kb name with XML name string kbname = getKnowledgebaseName(articleItem.KnowledgeBase.Id); if (!string.IsNullOrEmpty(kbname)) { articleItem.KnowledgeBase.Name = kbname; } string adminURL = _articleManager.GetAdminURL(); // get admin URL from DB articlesViewModel.ArticlePartialViewModel = ResponsivePortal.Utilities.CreateArticlePartialViewModel(articleItem, (ArticleModule)_portal.Configuration.ArticlesModule, GetListOfNodeName(articleItem.Categories), GetListOfNodeName(articleItem.Attributes), this._portal.PortalType, this.resources, clientId, portalId, adminURL); articlesViewModel.ArticleId = articleId; //get Module name and create navigation string homeText = Utilities.getModuleText(headerVM, "home"); // Uri xx = Request.UrlReferrer; // id - is Article Id // Create MOCK: remove for real BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); if (this._portal.Configuration.ShowBreadcrumbs) { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); if (!String.IsNullOrEmpty(searchText)) { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = searchText, Value = "Search", Selected = false }); } if (!String.IsNullOrEmpty(relpname)) // Selected related artilce Title { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = relpname, Value = "article", Selected = false }); articlesViewModel.RelativeArtilceParentId = relparticId; // Selected related artilce Id } if (catId != 0) { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = catId.ToString(), Value = "Browse", Selected = false }); } BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = articleItem.Title, Value = "", Selected = true }); } articlesViewModel.BreadcrumbViewModel = BreadcrumbViewModel; articlesViewModel.SearchText = searchText; //this will contain arrayListof Attribute names. eg. "Apple,Iphone 5... articlesViewModel.RelAnsweres = articleItem.RelatedArticles; articlesViewModel.RelLinks = articleItem.RelatedLinks; articlesViewModel.Resources = resources; string shareUrl = Request.Url.Scheme + "://" + Request.Url.Authority; shareUrl = shareUrl + "/Article/Index/" + clientId + "/" + portalId + "/?id=" + articleId; articlesViewModel.ArticlePartialViewModel.ShareItem = Utilities.GetShareViewModel(articleItem.ArticleId, articleItem.Title, shareUrl, this._articleManager.GetEmailArticleContent().Replace("[[articleurl]]", shareUrl), articlesViewModel.ArticlePartialViewModel.ArticleConfiguration.articleShareProperties, resources, clientId, portalId); //GetShareViewModel(articleItem.ArticleId, articleItem.Title, // articlesViewModel.ArticlePartialViewModel.ArticleConfiguration.articleShareProperties); return View(articlesViewModel); } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.ArticleIndex, KBErrorHandler.GetMethodName(), GeneralResources.ArticleIndexError, new KBExceptionData("id", (id.HasValue ? id.Value : 0)), new KBExceptionData("relparticId", (relparticId.HasValue ? relparticId.Value : 0)), new KBExceptionData("relpname", relpname), new KBExceptionData("catId", catId)); throw kbCustExp; } }
public ActionResult GetSearch(string text, string kbid, string catid, string attributeid, string title, string contentTypeId, string format, string searchFrom, int page = 1, bool filterUpdate = false, bool spellCheck = true, bool fromwidget = false,int widgetsearch=0) { text = removeExtraQueryString(text); if (string.IsNullOrEmpty(text)) text = "*"; // Read clientid, portalid from route data ReadDataFromRouteData(); if (widgetsearch==1) RemoveAllFilter(text, clientId, portalId, fromwidget); // Prepare Breadcrumb navigation. // Get Module name and create navigation string homeText = Utilities.getModuleText(headerVM, "home"); BreadcrumbViewModel breadcrumbViewModel = new BreadcrumbViewModel(); breadcrumbViewModel.NavigationList = new List<SelectListItem>(); breadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); // Set searchMainViewModel fields searchMainViewModel.BreadcrumbViewModel = breadcrumbViewModel; searchMainViewModel.clientId = clientId; searchMainViewModel.portalId = portalId; searchMainViewModel.Resources = Resources; searchMainViewModel.SearchImageUrl = Utilities.GetImageUrl(_portal.ClientId, _portal.PortalId, "SearchButton.png"); searchMainViewModel.SessionTimeOutWarning = Utilities.GetResourceText(CommonResources, "SESSIONTIMEOUTWARNING"); searchMainViewModel.SessionTimedOut = Utilities.GetResourceText(CommonResources, "SESSIONTIMEDOUT"); SearchModule searchModule = (SearchModule)_portal.Configuration.SearchModule; searchMainViewModel.SearchResultsPerPage = searchModule.ResultsPerPage; searchMainViewModel.FilterDisplay = InitializeFilterDisplay(searchModule); searchMainViewModel.ResultsDisplay = searchModule.ResultsDisplay; if (fromwidget) { searchMainViewModel.FromWidget = true; // for category and attribute widget } SetSearchManagerValues(spellCheck, searchModule); GetFilterValues(ref kbid, ref catid, ref attributeid, title, ref contentTypeId, ref format, searchFrom); try { int searchid = 0; SearchResult searchResult = SetLastSearchResult(text, kbid, catid, attributeid, contentTypeId, format, searchFrom, filterUpdate, out searchid); searchResult = SortSearchResult(_searchesManager.DefaultSort, searchResult); searchMainViewModel.Searchtext = text; searchMainViewModel.Page = page; searchMainViewModel.SearchResultsViewModel = new List<SearchResultsViewModel>(); searchMainViewModel.KnowledgeBases = new List<SearchResultRefinement>(); searchMainViewModel.ContentTypes = new List<SearchResultContentTypeRefinement>(); searchMainViewModel.Format = new List<SearchResultFormatRefinement>(); searchMainViewModel.SearchId = searchid; Dictionary<int, int> categoryCounts = new Dictionary<int, int>(); Dictionary<int, int> attributeCounts = new Dictionary<int, int>(); Dictionary<int, int> kBCounts = new Dictionary<int, int>(); Dictionary<string, List<string>> contentTypeCounts = new Dictionary<string, List<string>>(); Dictionary<string, string> fileFormatCounts = new Dictionary<string, string>(); Dictionary<int, string> dCatName = new Dictionary<int, string>(); Dictionary<string, string> dContentTypes = new Dictionary<string, string>(); string contentName = string.Empty; string contentSource = string.Empty; if (searchResult != null) { foreach (var results in searchResult.SearchResults) { string attributeNames = GetArticleNames(results); string fileExtn = Utilities.GetFileType(results.FileExtn); string kbName = GetKBName(results); string autoSummEnabled = GetAutoSummarizationEnabled(searchModule, results, text); AddSearchResultsViewModel(attributeNames, autoSummEnabled, results, fileExtn, kbName); GetArticleCounts(categoryCounts, attributeCounts, kBCounts, results); contentName = results.SourceName.ToString(); contentSource = results.SourceType; GetContentTypeCounts(contentTypeCounts, contentName, contentSource); GetFileFormatCounts(fileFormatCounts, results, fileExtn); } SetSearchMainViewModelValues(catid, attributeid, searchResult, categoryCounts, attributeCounts, kBCounts, contentTypeCounts, fileFormatCounts); } Session.Add("SearchText_" + portalId.ToString(), text); return View(searchMainViewModel); } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSearch, KBErrorHandler.GetMethodName(), GeneralResources.GeneralError, new KBExceptionData("text", text), new KBExceptionData("kbid", kbid), new KBExceptionData("catid", catid), new KBExceptionData("attributeid", attributeid), new KBExceptionData("title", title), new KBExceptionData("contentTypeId", contentTypeId)); throw kbCustExp; } }
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public ActionResult Edit(string message, string msgType) { AdminUser user = null; try { ViewBag.Title = "Edit Configuration"; ViewBag.Message = message; ViewBag.Msgtype = msgType; user = (PortalAPI.Models.AdminUser)Session["AdminUserSession"]; if (user != null) { var portId = RouteData.Values["portalId"]; var portalId = Convert.ToInt32(portId); var configOption = 0; Int32.TryParse((string)RouteData.Values["id"], out configOption); // 0 default value if conversion fails var cid = Session["ClientId"]; int clientid = Convert.ToInt32(cid.ToString()); ViewBag.UserName = _adminManager.GetUserName(user.UserId, clientid); string path = Request.RawUrl.ToString(); string CONFIG_PATH = Path.Combine(this.DataConfigPath, clientid + "\\" + portalId + "\\Configuration"); string LANG_PATH = Path.Combine(this.DataConfigPath, clientid + "\\" + portalId + "\\Languages"); string CSS_PATH = Path.Combine(this.DataConfigPath, clientid + "\\" + portalId + "\\Styles"); string JS_PATH = Path.Combine(this.DataConfigPath, clientid + "\\" + portalId + "\\Scripts"); var portalName = _adminManager.GetPortalName(portalId, clientid); var langId = _adminManager.GetPortalLangId(clientid,portalId); var lang= CreateLangDictionary(); var langFile = lang[langId]+".xml"; var css = CreateCSSDictionary(); ConfigModel cnfgmodel = new Models.ConfigModel(); BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = "Portal Administration", Value = "Admin", Selected = false }); if (configOption != 0) { BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = portalName, Value = "Admin/Edit/" + clientid + "/" + portalId, Selected = false }); } switch (configOption) { case 1: BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = "Configuration", Value = "Admin", Selected = true }); cnfgmodel.XmlContent = _adminManager.ReadXMLFile(CONFIG_PATH + "\\portal-config.xml"); break; case 2: BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = "Language", Value = "Admin", Selected = true }); cnfgmodel.XmlContent = _adminManager.ReadXMLFile(LANG_PATH + "\\" + langFile); ViewBag.lang = langFile; break; case 3: int csId = Convert.ToInt32(Request.QueryString["cssId"]); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = "CSS", Value = "Admin", Selected = true }); if(csId !=0) { var cssFile = css[csId]; cnfgmodel.TextContent = _adminManager.ReadTextFile(CSS_PATH + "\\" + cssFile); } break; case 4: BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = "Images", Value = "Admin", Selected = true }); break; case 5: BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = "Script", Value = "Admin", Selected = true }); cnfgmodel.TextContent = _adminManager.ReadTextFile(JS_PATH+ "\\portal.js"); break; default: BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = portalName, Value = "Admin/Edit/" + clientid + "/" + portalId, Selected = true }); break; } cnfgmodel.PortalId = portalId; cnfgmodel.LangId = langId; cnfgmodel.RequestPath = path; cnfgmodel.ConfigType = configOption; cnfgmodel.BreadcrumbViewModel = BreadcrumbViewModel; cnfgmodel.CssFiles = css; cnfgmodel.ModifiedFilesModel = _adminManager.ReadConfigDetail(clientid, portalId, configOption); return View(cnfgmodel); } return RedirectToAction("Index", "Admin"); } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.LoadContent, KBErrorHandler.GetMethodName(), GeneralResources.AdminBreadcrumbEditError, new KBExceptionData("message", message), new KBExceptionData("msgType", msgType), new KBExceptionData("user.UserId", (user != null) ? user.UserId : -1)); throw kbCustExp; } }
// // 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; } }
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); }
public ActionResult GetPreviousSolutionFinderDetailsByIdWithParams(int parentsolutionId, int solutionId, int choiceId, string answer) { string solFinderName = string.Empty; try { //read and update clientid & portalid from routedata ReadDataFromRouteData(); SolutionFinderDetailsViewModel solutionFinderDetailsViewModel = new SolutionFinderDetailsViewModel(); solutionFinderDetailsViewModel.portalId = portalId; solutionFinderDetailsViewModel.clientId = clientId; solutionFinderDetailsViewModel.ChoiceId = parentsolutionId; //if (parentsolutionId != choiceId) //{ solutionFinderDetailsViewModel.ImmediatePId = this._solFinderManager.GetSolutionFinderParentByChoice(parentsolutionId); // Solution Finder Id //} solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(0, parentsolutionId);//0,solutionId); if (solutionFinderDetailsViewModel.SolutionFinder != null) { TempData["question_" + _portal.PortalId.ToString() + "_" + parentsolutionId.ToString()] = solutionFinderDetailsViewModel.SolutionFinder.Question != null ? solutionFinderDetailsViewModel.SolutionFinder.Question : string.Empty; } // UpdateSolutionFinderChoices(solutionFinderDetailsViewModel); solutionFinderDetailsViewModel.History = (List<HistoryViewModel>)Session["SolutionFinderHistory"]; if ((solutionFinderDetailsViewModel.History != null) && (solutionFinderDetailsViewModel.History.Count > 0)) { int count = solutionFinderDetailsViewModel.History.Count; solutionFinderDetailsViewModel.History.RemoveAt(count - 1); } string icon = string.Empty; SolutionFinderTileViewModel solutionFinderTileViewModel = new SolutionFinderTileViewModel(); solFinderName = GetSolutionFinderName(solutionId); if (solutionFinderDetailsViewModel.ImmediatePId == 0) { SolutionFinder objSF = GetSolutionFinder(solutionId); if (null != objSF) { solutionFinderTileViewModel.Id = solutionId; solutionFinderTileViewModel.Title = objSF.Name; solutionFinderTileViewModel.Icon = objSF.ImageUrl; solutionFinderTileViewModel.Content = objSF.Description; solutionFinderTileViewModel.Content = Resources.ContainsKey("SOLUTIONFINDER_" + solutionId.ToString() + "_DESCRIPTION") ? Resources["SOLUTIONFINDER_" + solutionId.ToString() + "_DESCRIPTION"] : string.Empty; } } else { solutionFinderTileViewModel.Id = solutionId; solutionFinderTileViewModel.Title = solFinderName; } solutionFinderTileViewModel.portalId = portalId; solutionFinderTileViewModel.clientId = clientId; solutionFinderDetailsViewModel.SolutionFinderTileViewModel = solutionFinderTileViewModel; //----- Breadcrumbs ------ BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); solutionFinderDetailsViewModel.showBreadcrumb = this._portal.Configuration.ShowBreadcrumbs; BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = SFText, Value = "solutionFinder", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = solFinderName, Value = string.Empty, Selected = true }); solutionFinderDetailsViewModel.BreadcrumbViewModel = BreadcrumbViewModel; solutionFinderDetailsViewModel.Resources = Resources; return View("SolutionFinderDetails", solutionFinderDetailsViewModel); } catch (JsonException ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.JsonError, new KBExceptionData("solutionId", solutionId), new KBExceptionData("solFinderName", solFinderName)); throw kbCustExp; } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.GetSlnFinderDetailsError, new KBExceptionData("solutionId", solutionId), new KBExceptionData("solFinderName", solFinderName)); throw kbCustExp; } }
public ActionResult ManageFavorites() { try { ReadDataFromRouteData(); string homeText = Utilities.getModuleText(headerVM, "home"); FavoritesViewModel favVM = new FavoritesViewModel(); 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 = Utilities.GetResourceText(resources, "MANAGEMYFAVORITES"), Value = "", Selected = true }); favVM.BreadcrumbViewModel = BreadcrumbViewModel; favVM.portalId = portalId; favVM.clientId = clientId; favVM.showBreadcrumb = _portal.Configuration.ShowBreadcrumbs; favVM.Resources = resources; return View("ManageFavs", favVM); //managemyfavorites } catch (Exception ex) { logger.ErrorException("Error:" + " " + ex.Message, ex); throw ex; } }
private ActionResult GetSFViewDetailsWithArticleById(int parentsolutionId, int solutionId, int choiceId, int articleId) { string solFinderName = string.Empty; string description = string.Empty; string icon = string.Empty; try { //read and update clientid & portalid from routedata ReadDataFromRouteData(); SolutionFinderDetailsViewModel solutionFinderDetailsViewModel = new SolutionFinderDetailsViewModel(); SolutionFinderTileViewModel solutionFinderTileViewModel = new SolutionFinderTileViewModel(); solutionFinderDetailsViewModel.portalId = portalId; solutionFinderDetailsViewModel.clientId = clientId; solutionFinderDetailsViewModel.ImmediatePId = parentsolutionId; // Solution Finder Id; solutionFinderDetailsViewModel.ChoiceId = choiceId; solutionFinderTileViewModel.clientId = clientId; solutionFinderTileViewModel.portalId = portalId; solutionFinderTileViewModel.Id = parentsolutionId; solFinderName = GetSolutionFinderName(solutionId); //-------Solution FInder Name if (parentsolutionId == 0) { SolutionFinder objSF = GetSolutionFinder(solutionId); if (null != objSF) { solutionFinderTileViewModel.Id = solutionId; solutionFinderTileViewModel.Icon = objSF.ImageUrl.Replace('^', '\\'); solutionFinderTileViewModel.Title = objSF.Name; solutionFinderTileViewModel.Content = Resources.ContainsKey("SOLUTIONFINDER_" + solutionId.ToString() + "_DESCRIPTION") ? Resources["SOLUTIONFINDER_" + solutionId.ToString() + "_DESCRIPTION"] : string.Empty; } } else { solutionFinderTileViewModel.Id = solutionId; solutionFinderTileViewModel.Title = solFinderName; } solutionFinderDetailsViewModel.SolutionFinderTileViewModel = solutionFinderTileViewModel; if (parentsolutionId==0) { solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(solutionId, 0); } else { solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(solutionId, choiceId); } //UpdateSolutionFinderChoices(solutionFinderDetailsViewModel); solutionFinderDetailsViewModel.History = (List<HistoryViewModel>)Session["SolutionFinderHistory"]; //----- Breadcrumbs ------ BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); solutionFinderDetailsViewModel.showBreadcrumb = this._portal.Configuration.ShowBreadcrumbs; BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = SFText, Value = "solutionFinder", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = solutionFinderTileViewModel.Title, Value = string.Empty, Selected = true }); solutionFinderDetailsViewModel.BreadcrumbViewModel = BreadcrumbViewModel; //read and update clientid & portalid from routedata if (articleId > 0) { var articleItem = (ArticleItem)_articleManager.GetArticleItemById(articleId, HttpContext.Session.SessionID, "", 0); if (articleItem != null) { if (articleItem.Extension == ".html" || articleItem.Extension == ".htm") { articleItem.Content.CompleteContent = Utilities.UpdateArticleURlInArticleContent(articleItem.Content.CompleteContent, "/articleRedirect.aspx?aid=", "/Article/Index/" + clientId + "/" + portalId + "?id="); } } //split artilce content Utilities.splitArticleContent(ref articleItem); //overwrite kb name with XML name string kbname = GetKnowledgebaseName(articleItem.KnowledgeBase.Id); if (!string.IsNullOrEmpty(kbname)) { articleItem.KnowledgeBase.Name = kbname; } string adminURL = _articleManager.GetAdminURL(); // get admin URL from DB Dictionary<string, string> resources = Session.Resource(portalId, clientId, "ARTICLE", _portal.Language.Name); ArticlePartialViewModel articlePartialViewModel = ResponsivePortal.Utilities.CreateArticlePartialViewModel(articleItem, (ArticleModule)_portal.Configuration.ArticlesModule, GetListOfNodeName(articleItem.Categories), GetListOfNodeName(articleItem.Attributes), this._portal.PortalType, resources, clientId, portalId, adminURL); solutionFinderDetailsViewModel.ArticlePartialViewModel = articlePartialViewModel; string shareUrl = Request.Url.Scheme + "://" + Request.Url.Authority; shareUrl = shareUrl + "/Article/Index/" + clientId + "/" + portalId + "/?id=" + articleId; solutionFinderDetailsViewModel.ArticlePartialViewModel.ShareItem = Utilities.GetShareViewModel(articleItem.ArticleId, articleItem.Title, shareUrl, this._articleManager.GetEmailArticleContent().Replace("[[articleurl]]", shareUrl), solutionFinderDetailsViewModel.ArticlePartialViewModel.ArticleConfiguration.articleShareProperties, resources, clientId, portalId); } solutionFinderDetailsViewModel.Resources = Resources; if (articleId > 0) { solutionFinderDetailsViewModel.ArticlePartialViewModel.Resources = Resources; } return View("SolutionFinderDetails", solutionFinderDetailsViewModel); } catch (JsonException ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.JsonError, new KBExceptionData("info", ""), new KBExceptionData("solutionId", solutionId), new KBExceptionData("articleId", articleId), new KBExceptionData("solFinderName", solFinderName)); throw kbCustExp; } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.GetSlnFinderDetailsError, new KBExceptionData("info", ""), new KBExceptionData("solutionId", solutionId), new KBExceptionData("articleId", articleId), new KBExceptionData("solFinderName", solFinderName)); throw kbCustExp; } }
// // GET: /SolutionFinder/ public ActionResult Index(string title) { try { //read and update clientid & portalid from routedata ReadDataFromRouteData(); SolutionFinderModule SFModule = (SolutionFinderModule)_portal.Configuration.SolutionFinderModule; List<SolutionFinder> SFItems = SFModule.Children; // var ids = (from sf in SFItems select sf.Id).ToArray(); //var commaSeparatedSolutionFinderIds = string.Join(",", ids); // var defaultSolutionFinders = _solFinderManager.GetListOfSolutionFindersId(commaSeparatedSolutionFinderIds); var defaultSolutionFinders = new List<SolutionFinder>(); foreach (var item in SFItems) { defaultSolutionFinders.Add(new SolutionFinder(item.SolutionFinderId, item.Name, item.ImageUrl, item.Description)); } TempData["MainLayoutViewModel"] = Session["MainLayoutViewModel"]; Session["SolutionFinderHistory"] = new List<HistoryViewModel>(); SolutionFinderViewModel solutionFinderViewModel = new SolutionFinderViewModel(); solutionFinderViewModel.portalId = portalId; solutionFinderViewModel.clientId = clientId; solutionFinderViewModel.showBreadcrumb = _portal.Configuration.ShowBreadcrumbs; solutionFinderViewModel.SessionTimeOutWarning = Utilities.GetResourceText(CommonResources, "SESSIONTIMEOUTWARNING"); solutionFinderViewModel.SessionTimedOut = Utilities.GetResourceText(CommonResources, "SESSIONTIMEDOUT"); solutionFinderViewModel.SolutionFinderTiles = new List<SolutionFinderTileViewModel>(); // 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 = SFText, Value = "solutionFinder", Selected = true }); solutionFinderViewModel.BreadcrumbViewModel = BreadcrumbViewModel; foreach (var solutionfinder in defaultSolutionFinders) { SolutionFinderTileViewModel solutionFinderTileViewModel = new SolutionFinderTileViewModel() { Title = solutionfinder.Name, Content = Resources.ContainsKey("SOLUTIONFINDER_" + solutionfinder.SolutionFinderId + "_DESCRIPTION") ? Resources["SOLUTIONFINDER_" + solutionfinder.SolutionFinderId + "_DESCRIPTION"] : string.Empty, Id = solutionfinder.SolutionFinderId, Icon = solutionfinder.ImageUrl, portalId = portalId, clientId = clientId }; solutionFinderViewModel.SolutionFinderTiles.Add(solutionFinderTileViewModel); } //setting resource objet to view model. solutionFinderViewModel.Resources = Resources; return View(solutionFinderViewModel); } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.SlnFinderIndex, KBErrorHandler.GetMethodName(), GeneralResources.IndexError, new KBExceptionData("title", title)); throw kbCustExp; } }
public ActionResult GetSolutionFinderDetailsByIdWithParams(int parentsolutionId, int solutionId, int choiceId, bool nav, string answer) { bool navigation = false; int ImmediatePId; string solFinderName = string.Empty; string question = string.Empty; try { if (nav) navigation = true; //read and update clientid & portalid from routedata ReadDataFromRouteData(); SolutionFinderTileViewModel solutionFinderTileViewModel = new SolutionFinderTileViewModel(); SolutionFinderDetailsViewModel solutionFinderDetailsViewModel = new SolutionFinderDetailsViewModel(); solutionFinderTileViewModel.portalId = portalId; solutionFinderTileViewModel.clientId = clientId; solutionFinderDetailsViewModel.portalId = portalId; solutionFinderDetailsViewModel.clientId = clientId; solutionFinderDetailsViewModel.ChoiceId = choiceId; // Choice Id question = TempData["question_" + _portal.PortalId.ToString() + "_" + parentsolutionId.ToString()] != null ? TempData["question_" + _portal.PortalId.ToString() + "_" + parentsolutionId.ToString()].ToString() : string.Empty; ImmediatePId = this._solFinderManager.GetSolutionFinderParentByChoice(choiceId); // Solution Finder Id solutionFinderDetailsViewModel.ImmediatePId = ImmediatePId; if (nav) { if (ImmediatePId > 0) { solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(ImmediatePId, choiceId); } else { solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(parentsolutionId, 0); } } else { solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(ImmediatePId, choiceId); } if (!navigation) { solutionFinderDetailsViewModel.History = (List<HistoryViewModel>)Session["SolutionFinderHistory"]; bool skipAdd = false; if ((solutionFinderDetailsViewModel.History != null) && (solutionFinderDetailsViewModel.History.Count > 0) && (solutionFinderDetailsViewModel.History[solutionFinderDetailsViewModel.History.Count - 1].SolutionFinderId == choiceId) ) { skipAdd = true; } if (!skipAdd) { HistoryViewModel SV = solutionFinderDetailsViewModel.History.FirstOrDefault(Q => Q.ChoiceId == choiceId); if (SV == null) { solutionFinderDetailsViewModel.History.Add(new HistoryViewModel() { SolutionFinderId = solutionId, Question = Utilities.GetHistoryTextForSolutionFinder(question), Answer = answer, ChoiceId = parentsolutionId }); } Session["SolutionFinderHistory"] = solutionFinderDetailsViewModel.History; } } else { solutionFinderDetailsViewModel.History = (List<HistoryViewModel>)Session["SolutionFinderHistory"]; int chIndex = solutionFinderDetailsViewModel.History.FindIndex(x => x.ChoiceId == choiceId); //chIndex = chIndex + 1; solutionFinderDetailsViewModel.History.RemoveRange(chIndex, (solutionFinderDetailsViewModel.History.Count) - chIndex); Session["SolutionFinderHistory"] = solutionFinderDetailsViewModel.History; } //-------store question to tempdata TempData["question_" + _portal.PortalId.ToString() + "_" + choiceId.ToString()] = solutionFinderDetailsViewModel.SolutionFinder != null ? solutionFinderDetailsViewModel.SolutionFinder.Question : string.Empty; //-------Solution FInder Name SolutionFinder objSF = GetSolutionFinder(solutionId); if (null != objSF) { solFinderName = objSF.Name; } //----- Breadcrumbs ------ BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); solutionFinderDetailsViewModel.showBreadcrumb = this._portal.Configuration.ShowBreadcrumbs; BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = SFText, Value = "solutionFinder", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = solFinderName, Value = string.Empty, Selected = true }); solutionFinderDetailsViewModel.BreadcrumbViewModel = BreadcrumbViewModel; solutionFinderDetailsViewModel.SolutionFinderTileViewModel = new SolutionFinderTileViewModel() { Title = solFinderName, Id = solutionId, }; solutionFinderDetailsViewModel.Resources = Resources; return View("SolutionFinderDetails", solutionFinderDetailsViewModel); } catch (JsonException ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.JsonError, new KBExceptionData("solutionId", solutionId), new KBExceptionData("solFinderName", solFinderName)); throw kbCustExp; } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.GetSlnFinderDetailsError, new KBExceptionData("solutionId", solutionId), new KBExceptionData("solFinderName", solFinderName)); throw kbCustExp; } }
public ActionResult GetSolutionFinderDetailsById(string title, int sfid, int sfcid, bool fromwidget = false, int SearchId = 0, Boolean isSearch=false) { string icon = string.Empty; string sftitle = string.Empty; string content = string.Empty; int userid = 0; string searchText = string.Empty; try { //read and update clientid & portalid from routedata ReadDataFromRouteData(); // Questions: id - always 0, I use sfcid as SolutionFinderId if (HttpContext.Session["SearchText_" + portalId.ToString()] != null && isSearch== true) { searchText = (String)Session["SearchText_" + portalId.ToString()]; } SolutionFinderTileViewModel solutionFinderTileViewModel = new SolutionFinderTileViewModel(); solutionFinderTileViewModel.portalId = portalId; solutionFinderTileViewModel.clientId = clientId; SolutionFinderDetailsViewModel solutionFinderDetailsViewModel = new SolutionFinderDetailsViewModel(); solutionFinderDetailsViewModel.portalId = portalId; solutionFinderDetailsViewModel.clientId = clientId; solutionFinderDetailsViewModel.FromWidget = fromwidget; solutionFinderDetailsViewModel.ImmediatePId = this._solFinderManager.GetSolutionFinderParentByChoice(sfcid); // Solution Finder Id solutionFinderDetailsViewModel.ChoiceId = sfcid; Session["SolutionFinderHistory"] = new List<HistoryViewModel>(); solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(sfid, sfcid); solutionFinderDetailsViewModel.SolutionFinder.SolutionFinderId = sfid; // UpdateSolutionFinderChoices(solutionFinderDetailsViewModel); bool skipAdd = false; if ((solutionFinderDetailsViewModel.History != null) && (solutionFinderDetailsViewModel.History.Count > 0) && (solutionFinderDetailsViewModel.History[solutionFinderDetailsViewModel.History.Count - 1].SolutionFinderId == sfid)) { skipAdd = true; } if (!skipAdd) { SolutionFinder objSF = GetSolutionFinder(sfid); if (null != objSF) { icon = objSF.ImageUrl.Replace('^', '\\'); sftitle = objSF.Name; content = Resources.ContainsKey("SOLUTIONFINDER_" + sfid.ToString() + "_DESCRIPTION") ? Resources["SOLUTIONFINDER_" + sfid.ToString() + "_DESCRIPTION"] : string.Empty; } solutionFinderDetailsViewModel.History = new List<HistoryViewModel>(); } //----- Breadcrumbs ------ BreadcrumbViewModel BreadcrumbViewModel = new BreadcrumbViewModel(); if (this._portal.Configuration.ShowBreadcrumbs) { solutionFinderDetailsViewModel.showBreadcrumb = true; BreadcrumbViewModel.NavigationList = new List<SelectListItem>(); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = homeText, Value = "home", Selected = false }); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = searchText, Value = "Search", Selected = false }); //searchResultFor BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = sftitle, Value = string.Empty, Selected = true }); solutionFinderDetailsViewModel.BreadcrumbViewModel = BreadcrumbViewModel; } solutionFinderDetailsViewModel.SolutionFinderTileViewModel = new SolutionFinderTileViewModel() { Title = sftitle, Id = sfid, Content = content, Icon = icon }; solutionFinderDetailsViewModel.Resources = Resources; if (_user != null && _user.UserId > 0) { userid = _user.UserId; } this._solFinderManager.SFVisit(sfid, portalId, clientId, userid, DateTime.Now, HttpContext.Session.SessionID, SearchId); return View("SolutionFinderDetails", solutionFinderDetailsViewModel); } catch (JsonException ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.JsonError, new KBExceptionData("title", title), new KBExceptionData("sfid", sfid), new KBExceptionData("sfcid", sfcid)); throw kbCustExp; } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.GetSlnFinderDetailsError, new KBExceptionData("title", title), new KBExceptionData("sfid", sfid), new KBExceptionData("sfcid", sfcid)); throw kbCustExp; } }
public ActionResult GetSolutionFinderDetails(int solutionId) { int userid = 0; try { //read and update clientid & portalid from routedata ReadDataFromRouteData(); if (_user != null && _user.UserId > 0) { userid = _user.UserId; } this._solFinderManager.SFVisit(solutionId, portalId, clientId, userid, DateTime.Now, HttpContext.Session.SessionID, 0); SolutionFinderDetailsViewModel solutionFinderDetailsViewModel = new SolutionFinderDetailsViewModel(); solutionFinderDetailsViewModel.SessionTimeOutWarning = Utilities.GetResourceText(CommonResources, "SESSIONTIMEOUTWARNING"); solutionFinderDetailsViewModel.SessionTimedOut = Utilities.GetResourceText(CommonResources, "SESSIONTIMEDOUT"); solutionFinderDetailsViewModel.portalId = portalId; solutionFinderDetailsViewModel.clientId = clientId; solutionFinderDetailsViewModel.ImmediatePId = 0; // Parent Id, in this case its 0 (no parent) solutionFinderDetailsViewModel.ChoiceId = solutionId; solutionFinderDetailsViewModel.showBreadcrumb = _portal.Configuration.ShowBreadcrumbs; SolutionFinder objSF = GetSolutionFinder(solutionId); SolutionFinderTileViewModel solutionFinderTileViewModel = new SolutionFinderTileViewModel(); if (null != objSF) { solutionFinderTileViewModel.Id = solutionId; solutionFinderTileViewModel.Icon = objSF.ImageUrl.Replace('^', '\\'); solutionFinderTileViewModel.Title = objSF.Name; solutionFinderTileViewModel.Content = Resources.ContainsKey("SOLUTIONFINDER_" + solutionId.ToString() + "_DESCRIPTION") ? Resources["SOLUTIONFINDER_" + solutionId.ToString() + "_DESCRIPTION"] : string.Empty; } solutionFinderTileViewModel.portalId = portalId; solutionFinderTileViewModel.clientId = clientId; solutionFinderDetailsViewModel.SolutionFinderTileViewModel = solutionFinderTileViewModel; //----- Breadcrumbs ------ 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 = SFText, Value = "solutionFinder", Selected = false }); solutionFinderDetailsViewModel.History = new List<HistoryViewModel>(); Session["SolutionFinderHistory"] = new List<HistoryViewModel>(); //setting resource objet to view model. solutionFinderDetailsViewModel.Resources = Resources; solutionFinderDetailsViewModel.SolutionFinder = (PortalAPI.Models.SolutionFinderChoice)this._solFinderManager.GetSolutionFinderChoiceById(solutionId, 0); BreadcrumbViewModel.NavigationList.Add(new SelectListItem() { Text = solutionFinderTileViewModel.Title, Value = solutionFinderDetailsViewModel.SolutionFinder == null ? solutionFinderTileViewModel.Id.ToString() : solutionFinderDetailsViewModel.SolutionFinder.SolutionFinderId.ToString(), Selected = true }); //---store question into tempdata TempData["question_" + _portal.PortalId.ToString() + "_" + solutionId.ToString()] = solutionFinderDetailsViewModel.SolutionFinder != null ? solutionFinderDetailsViewModel.SolutionFinder.Question : string.Empty; solutionFinderDetailsViewModel.BreadcrumbViewModel = BreadcrumbViewModel; if (solutionFinderDetailsViewModel.SolutionFinder == null) { //set empty model and handle it in UI return View("SolutionFinderDetails", solutionFinderDetailsViewModel); } // UpdateSolutionFinderChoices(solutionFinderDetailsViewModel); return View("SolutionFinderDetails", solutionFinderDetailsViewModel); } catch (JsonException ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.JsonError, new KBExceptionData("solutionId", solutionId)); throw kbCustExp; } catch (Exception ex) { KBCustomException kbCustExp = KBCustomException.ProcessException(ex, KBOp.GetSlnFinderDetails, KBErrorHandler.GetMethodName(), GeneralResources.GetSlnFinderDetailsError, new KBExceptionData("solutionId", solutionId)); throw kbCustExp; } }