Example #1
0
 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);
     }
 }
Example #2
0
        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();
        }