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 })); }
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); }