コード例 #1
0
        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);
        }
コード例 #2
0
        public async Task CheckUsersValidityAsync_Should_Run()
        {
            var emailList = new HashSet <string>()
            {
                "*****@*****.**"
            };
            var resultList = await _remoteGraphService.CheckUsersValidityAsync(emailList);

            Assert.NotNull(resultList);
        }