Exemple #1
0
        public static List<Module> GetModelListByUser(string userName)
        {
            return iCache.Get<List<Module>>(String.Format("ModuleBiz.GetModelListByUser:{0}", userName),
                () =>
                {
                    using (Context ctx = new Context())
                    {
                        var loginUser = new User().Find(System.Web.HttpContext.Current.User.Identity.Name);
                        if (loginUser == null)
                        {
                            return null;
                        }
                        if (loginUser.Status == ItemStatus.Supper)
                        {
                            var data = new Module().FindAll();
                            data.ForEach(c =>
                            {
                                if (!String.IsNullOrEmpty(c.Url))
                                {
                                    c.Url = c.Url.ToLower();
                                }
                            });
                            return data;
                        }
                        else
                        {
                            var data = (from c in ctx.Module
                                        join d in ctx.UserModule
                                        on c.ID equals d.ModuleID
                                        where d.UserName == userName
                                        select new { c }).Distinct()
                                    .ToList()
                                    .Select(e =>
                                    {
                                        var module = new Module().Set(e.c);

                                        module.Url = module.Url == null ? "" : module.Url.ToLower();
                                        return module;
                                    })
                                        .ToList();
                            if (data != null && data.Count > 0)
                            {
                                var list = new List<Module>();
                                foreach (var item in data)
                                {
                                    list.Add(item);
                                    if (item.Level == 2)
                                    {
                                        var thirdlist = new Module().FindAll(c => c.ParentID == item.ID);
                                        list.AddRange(thirdlist);
                                    }
                                }

                                return list;
                            }
                            else
                            {
                                return data;
                            }
                        }
                    }
                }, 600);
        }
Exemple #2
0
        public static List<Module> GetModelListByUserForMenu(string userName)
        {
            try
            {
                using (Context ctx = new Context())
                {
                    var loginUser = new User().Find(System.Web.HttpContext.Current.User.Identity.Name);
                    if (loginUser == null)
                    {
                        return null;
                    }
                    if (loginUser.Status == ItemStatus.Supper)
                    {
                        var data = new Module().FindAll(c => c.IsDisplay == true && (c.Level == 1 || c.Level == 2));
                        data.ForEach(c =>
                        {
                            if (!String.IsNullOrEmpty(c.Url))
                            {
                                c.Url = c.Url.ToLower();
                            }
                        });
                        return data;
                    }
                    else
                    {
                        var data = (from c in ctx.Module
                                    join d in ctx.UserModule
                                    on c.ID equals d.ModuleID
                                    where d.UserName == userName && c.IsDisplay == true
                                     && (c.Level == 1 || c.Level == 2)
                                    select new { c }).Distinct()
                                    .ToList()
                                    .Select(e =>
                                    {
                                        var module = new Module().Set(e.c);

                                        module.Url = module.Url == null ? "" : module.Url.ToLower();
                                        return module;
                                    }).ToList();
                        return data;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Write(CommonLogger.Web, ex);
            }
            return null;
        }