private void GivenAUser(string userId, string previousUsername, string currentUsername)
        {
            _inputPockyUsers.Add(new PockyUser
            {
                UserId   = userId,
                Username = previousUsername
            });

            _personHandler.GetPersonAsync(userId).Returns(Task.FromResult(new Person
            {
                UserId   = userId,
                Username = currentUsername
            }));
        }
Example #2
0
        public async Task <List <PockyUser> > UpdateUsernames(List <PockyUser> users)
        {
            var usersDetails = await Task.WhenAll(users.Select(x => _personHandler.GetPersonAsync(x.UserId)));

            var dbUpdates = new List <Task>();

            var updatedUsers = users.Select(u =>
            {
                var userDetails = usersDetails.FirstOrDefault(x => x.UserId == u.UserId);
                if (userDetails?.Username != u.Username)
                {
                    u.Username = userDetails?.Username;
                    dbUpdates.Add(_pockyUserRepository.UpdateUsernameAsync(u.UserId, u.Username));
                }

                return(u);
            }).ToList();

            await Task.WhenAll(dbUpdates).ConfigureAwait(false);

            return(updatedUsers);
        }