Esempio n. 1
0
        public List <Permission> GetUserPermissions(string userid)
        {
            if (PermissionCache.PermissionData == null)
            {
                PermissionCache.ResetPermissionCache(context.Permissions.Where(a => a.IsDeleted != 1).ToList(),
                                                     context.UserRoles.ToList(),
                                                     context.RolePermissions.ToList());
            }
            else
            {
                if (PermissionCache.time == null || PermissionCache.time.AddHours(PermissionCache.addtime) < DateTime.Now)
                {
                    PermissionCache.time = DateTime.Now;
                    PermissionCache.ResetPermissionCache(context.Permissions.Where(a => a.IsDeleted != 1).ToList(),
                                                         context.UserRoles.ToList(),
                                                         context.RolePermissions.ToList());
                }
            }

            return((from x in PermissionCache.PermissionData.Permissions
                    join y in PermissionCache.PermissionData.RolePermissions on x.Id equals y.PermissionId
                    join z in PermissionCache.PermissionData.UserRoles on y.RoleId equals z.RoleId
                    join u in context.Roles on z.RoleId equals u.Id
                    where z.UserId.Equals(userid, StringComparison.OrdinalIgnoreCase) &&
                    x.IsDeleted != 1 && u.IsDeleted != 1
                    select x).Distinct().ToList());
        }