Beispiel #1
0
        public void GetTest()
        {
            Barrel.Current.Add(_cacheKey, _dataToSave, TimeSpan.FromDays(_expireDays));
            var actual = DataCaching <string> .Get(_cacheKey);

            Assert.AreEqual(_dataToSave, actual);
        }
        /// <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);
        }
Beispiel #3
0
        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(""));
        }