public void SavePermission(string userId, List <string> permissions) { _basePermissionUserRepository.Delete(userId); var roleIdList = _baseUserRoleMapRepository.Get().Where(x => x.UserId == userId).Select(x => x.RoleId).ToList(); var existsPermissions = _basePermissionRoleRepository.Get() .Where(x => roleIdList.Contains(x.RoleId) && permissions.Contains(x.PermissionValue)) .GroupBy(x => x.PermissionValue) .Select(x => x.Key) .ToList(); permissions.RemoveAll(x => existsPermissions.Contains(x)); List <Base_PermissionUser> insertList = new List <Base_PermissionUser>(); permissions.ForEach(newPermission => { insertList.Add(new Base_PermissionUser { Id = Guid.NewGuid().ToSequentialGuid(), UserId = userId, PermissionValue = newPermission }); }); _basePermissionUserRepository.AddRange(insertList); }
public UserRoleCache(IBaseUserRoleMapRepository baseUserRoleMapRepository) : base("UserRoleCache", userId => { var list = baseUserRoleMapRepository.Get() .Where(x => x.UserId == userId) .Select(x => x.RoleId) .ToList(); return(list); }) { }
public UserRoleCache() : base("UserRoleCache", userId => { IBaseUserRoleMapRepository baseUserRoleMapRepository = Ioc.DefaultContainer.GetService <IBaseUserRoleMapRepository>(); var list = baseUserRoleMapRepository.Get() .Where(x => x.UserId == userId) .Select(x => x.RoleId) .ToList(); return(list); }) { }