public IEncodedString CategoryBreadCrumb(Boolean includelinks, NBrightRazor model, Boolean aslist = true, int tabRedirect = -1, String separator = "", int wordlength = -1, int maxlength = 400) { var strOut = ""; try { var catid = 0; if (model.GetUrlParam("eid") != "") { // looking at detail, so use product categoryid if (model.List.Any()) { var product = (ProductData)model.List.First(); var catgrp = product.GetDefaultCategory(); catid = catgrp != null ? catgrp.categoryid : 0; } } else { var navigationdata = new NavigationData(PortalSettings.Current.PortalId, model.GetSetting("modref")); catid = navigationdata.CategoryId; } if (catid <= 0) // check we have a catid { return(new RawString(""));; } var grpCatCtrl = new GrpCatController(Utils.GetCurrentCulture()); var objCInfo = grpCatCtrl.GetGrpCategory(catid); if (objCInfo != null) { if (includelinks) { if (tabRedirect == 0) { tabRedirect = PortalSettings.Current.ActiveTab.TabID; } if (tabRedirect == -1) { tabRedirect = StoreSettings.Current.ProductListTabId; } strOut = grpCatCtrl.GetBreadCrumbWithLinks(catid, tabRedirect, wordlength, separator, aslist); } else { strOut = grpCatCtrl.GetBreadCrumb(catid, wordlength, separator, aslist); } if ((strOut.Length > maxlength) && (!aslist)) { strOut = strOut.Substring(0, (maxlength - 3)) + "..."; } } } catch (Exception ex) { strOut = ex.ToString(); } return(new RawString(strOut)); }