private void LoadChildFunctions(List<FunctionInfo> lstFunctions, FunctionInfo curFunc) { int level = curFunc.GetLevel() + 1; var lstChilds = FunctionRepository.GetChild(curFunc.FunctionID); foreach (FunctionInfo func in lstChilds) { func.SetLevel(level); func.Name = MiscUtility.StringIndent(level) + func.Name; lstFunctions.Add(func); LoadChildFunctions(lstFunctions, func); } }
public string GetMenuItem(FunctionInfo func) { var currentUrl = System.Web.HttpContext.Current.Request.Url.AbsolutePath; if (func.GetLevel() == 4 || !func.IncludeMenu) return string.Empty; var userInfo = UserContext.GetCurrentUser(); var branchId = UserContext.GetDefaultBranch(); var curUserId = userInfo.UserID; var retVal = new StringBuilder(); var lstChilds = userInfo.IsSuperAdmin ? FunctionRepository.GetChild(func.FunctionID) : FunctionRepository.GetByUser(curUserId, branchId, func.FunctionID); var menuAClass = string.Empty; string iconClass;// if (lstChilds != null && lstChilds.Count > 0) { menuAClass = "dropdown-toggle"; iconClass = string.Format("<i class='{0}'></i>", string.IsNullOrEmpty(func.Icon) ? "icon-double-angle-right" : func.Icon); } else { iconClass = string.IsNullOrEmpty(func.Icon) ? string.Empty : string.Format("<i class='{0}'></i>", func.Icon); } retVal.AppendFormat(currentUrl == func.Path ? "<li class='{0}'><a href='{1}' class='{2}'>{3}<span class='menu-text menu-active'>{4}</span>" : "<li class='{0}'><a href='{1}' class='{2}'>{3}<span class='menu-text'>{4}</span>", "open", func.Path, menuAClass, iconClass, func.Name); if (lstChilds != null && lstChilds.Count > 0) { retVal.Append("<b class='arrow icon-angle-down'></b>"); } retVal.Append("</a>"); if (lstChilds != null && lstChilds.Count > 0) { retVal.Append("<ul class='submenu' id='" + func.FunctionID + "' style='display:none;'>"); foreach (var child in lstChilds) { child.SetLevel(func.GetLevel() + 1); var menuItem = GetMenuItem(child); retVal.Append(menuItem); if (menuItem.Contains("menu-active")) retVal = retVal.Replace("id='" + func.FunctionID + "' style='display:none;'>", "id='" + func.FunctionID + "' style='display:block;'>"); } retVal.Append("</ul>"); } retVal.Append("</li>"); return retVal.ToString(); }