/// <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("关联角色到用户成功!");
        }