/// <summary> /// 关联角色到用户 /// </summary> public async void RelateRolesToUsers() { this.Busy(); await Task.Run(() => { IUserContract userContract = this._userContract.Channel; IAuthorizationContract authorizationContract = this._authorizationContract.Channel; UserRelatedRole[] relatedRoles = ExcelReader.ReadFile <UserRelatedRole>(ExcelPath, "用户相关角色"); RoleInfo[] roleInfos = authorizationContract.GetRoles(null, null, null).ToArray(); IEnumerable <IGrouping <string, UserRelatedRole> > relatedRoleGroups = relatedRoles.GroupBy(x => x.用户名); foreach (IGrouping <string, UserRelatedRole> relatedRoleGroup in relatedRoleGroups) { IList <RoleInfo> relatedRoleInfos = new List <RoleInfo>(); foreach (UserRelatedRole userRelatedRole in relatedRoleGroup) { RoleInfo roleInfo = roleInfos.Single(x => x.InfoSystemNo == userRelatedRole.信息系统编号 && x.Name == userRelatedRole.角色名称); relatedRoleInfos.Add(roleInfo); } IEnumerable <Guid> roleIds = relatedRoleInfos.Select(x => x.Id); userContract.RelateRolesToUser(relatedRoleGroup.Key, roleIds); } }); this.Idle(); this.ToastSuccess("关联角色到用户成功!"); }