当尝试并行传递用户 ADUserID 时,将其未设置的值放入 IsAzureInviteRedeemed 的属性之一)列表..意味着不会更新属性值..
private GraphServiceClient GetGraphClient()
{
return new GraphServiceClient(new AzureAuthenticationProvider(_configurationSettings));
}
public async Task<List<UserSitesViewDto>> GetUsers(List<UserSitesViewDto> lstAllUsers)
{
List<UserSitesViewDto> userList = new List<UserSitesViewDto>();
StringBuilder query = new StringBuilder();
string filter = string.Empty;
object sync = new Object();
Parallel.ForEach(lstAllUsers, async user =>
{
var requestClient = GetGraphClient().Users.Request();
var users = (await requestClient.Select("displayName,givenName,surName,UserPrincipalName,Id,externalUserstate")
.Filter($"(id eq '{user.ADUserID}')")
.Top(1).GetAsync()).FirstOrDefault();
lock (sync)
{
string externalIUserState = users.AdditionalData.FirstOrDefault().ToString();
user.IsAzureInviteRedeemed = externalIUserState == "Accepted" ? true : false;
}
});return lstAllUsers;
}
请在尝试调试时也不要提供帮助,否则它不会被击中它的出局方法