public async Task <IEnumerable <AdUserDto> > CheckUsersValidityAsync(ISet <string> adUserEmailSet) { Guard.ContainsValidEmails(adUserEmailSet); var adUsersToCheck = new HashSet <string>(); var checkedUsers = new List <AdUserDto>(); foreach (var userEmail in adUserEmailSet) { // if invalid ones exists, put them in a separate list (in case that only invalid are asked) if (_cache.Exists(userEmail)) { var invalidUserFromCache = new AdUserDto(null, userEmail, false); checkedUsers.Add(invalidUserFromCache); continue; } adUsersToCheck.Add(userEmail); } if (adUsersToCheck.Any()) { var usersFromGraph = await _remoteGraphService.CheckUsersValidityAsync(adUsersToCheck); WriteInvalidUsersToCache(usersFromGraph); checkedUsers.AddRange(usersFromGraph); } return(checkedUsers); }
public async Task CheckUsersValidityAsync_Should_Run() { var emailList = new HashSet <string>() { "*****@*****.**" }; var resultList = await _remoteGraphService.CheckUsersValidityAsync(emailList); Assert.NotNull(resultList); }