/// <summary> /// Gets the product detail by category. /// </summary> /// <param name="category">The category.</param> /// <returns></returns> public List <ProductDetail> GetProductDetailByCategory(string category) { // Build a cacheKey string cacheKey = "GetProductDetailByCategory-" + category; // Try and retrieve the data from the cache List <ProductDetail> productDetails = DataCaching.Get <List <ProductDetail> >(cacheKey); if (productDetails == null) { // Retrieve from the database ProductData productData = new ProductData(); productDetails = productData.GetProductDetailByCategory(category); // Add into cache DataCaching.Add(productDetails, cacheKey); } return(productDetails); }
public static HtmlString BindMenus(this HtmlHelper html) { if (MySession.Current.RoleID.IsNotBlank() && MySession.Current.UserId.IsNotBlank()) { string cacheKey = "cacheMenuList"; var menuHtml = DataCaching.Get <HtmlString>(cacheKey); if (menuHtml.IsBlank()) { using (var db = new PCVEntities()) { StringBuilder sb = new StringBuilder(); // HelperMenuModel var rawMenus = db.UserMenus.Where(aa => aa.UserId == MySession.Current.UserId).ToList().Select(m => new HelperMenuModel() { MenuId = m.MenuId, MenuName = m.Menu.MenuName, ParentId = m.Menu.ParentId, Url = m.Menu.Url, Tooltip = m.Menu.Tooltip, // Description = m.Menu.Description, UserId = m.UserId, RoleId = "", InActive = m.InActive, Priority = m.Menu.Priority }).Union(db.MenuInRole.Where(bb => bb.RoleId == MySession.Current.RoleID).ToList().Select(m => new HelperMenuModel() { MenuId = m.MenuId, MenuName = m.Menu.MenuName, ParentId = m.Menu.ParentId, Url = m.Menu.Url, Tooltip = m.Menu.Tooltip, // Description = m.Menu.Description, UserId = "", RoleId = m.RoleId, InActive = m.InActive, Priority = m.Menu.Priority })).GroupBy(ss => ss.MenuId, (key, group) => group.First()).ToList(); if (rawMenus.IsNotBlank()) { var data = rawMenus.Select(m => new HelperMenuModel() { MenuId = m.MenuId, MenuName = m.MenuName, ParentId = m.ParentId, Url = m.Url, Tooltip = m.Tooltip, Description = m.Description, UserId = "", RoleId = m.RoleId, InActive = m.InActive, Priority = m.Priority, ChildMenus = rawMenus.Where(c => c.ParentId == m.MenuId).ToList(), }).OrderBy(zz => zz.Priority).Where(x => x.ParentId == 0).ToList(); sb.Append("<div class='nav-collapse collapse navbar-collapse navbar-responsive-collapse header-nav-links'>"); sb.Append("<ul class='nav navbar-nav'>"); foreach (var item in data) { if (item.ChildMenus.Count == 0) {//parent withot child var menuIconClass = "icon-layers"; if (item.MenuName.ToLower().Contains("dashboard")) { menuIconClass = "icon-home"; } sb.Append(" <li class=''>"); sb.Append("<a href ='" + item.Url + "' class='text-uppercase'>"); sb.Append("<i class='" + menuIconClass + "'></i> " + item.MenuName + "</a>"); sb.Append("</li>"); } else { //parent with child sb.Append(" <li class='dropdown more-dropdown'>"); sb.Append("<a href ='javascript:;' class='text-uppercase'>"); sb.Append("<i class='icon-layers'></i> " + item.MenuName + "</a>"); sb.Append("<ul class='dropdown-menu'>"); foreach (var inMenu in item.ChildMenus) { var menuIconClass = "icon-briefcase"; if (inMenu.MenuName.ToLower().Contains("user")) { menuIconClass = "icon-users"; } sb.Append("<li >"); sb.Append("<a href ='" + inMenu.Url + "' class='text-uppercase'>"); sb.Append("<i class='" + menuIconClass + "'></i> " + inMenu.MenuName + "</a>"); sb.Append("</li>"); } sb.Append("</ul>"); sb.Append("</li>"); } } sb.Append("</ul>"); sb.Append("</div>"); HtmlString result = new HtmlString(sb.ToString()); DataCaching.Add(result, cacheKey, DataCaching.EnumCacheTimeFrame.AddMinutes, AppConfiguration.CacheTimeInMins); return(result); } } } else { return(menuHtml); } } return(new HtmlString("")); }