public async Task Run([QueueTrigger(QueueNames.UserRenamed, Connection = "AzureWebJobsStorage")] UserRenamedMessage userRenamedMessage, ILogger log) { var user = await this.userRepository.GetUserAsync(userRenamedMessage.UserId); foreach (var friendUserInfo in user.Friends) { var friendUser = await this.userRepository.GetUserAsync(friendUserInfo.UserId); var foundFriend = friendUser.Friends.FirstOrDefault(f => f.UserId == userRenamedMessage.UserId); if (foundFriend != null) { foundFriend.UserName = userRenamedMessage.NewUserName; await this.userRepository.UpdateUserAsync(friendUser.ToEntity()); } } }
public async Task <Unit> Handle(CreateOrUpdateUserCommand request, CancellationToken cancellationToken) { var result = await this.userRepository.CreateOrUpdateUserAsync(request); if (result.IsNewUser) { await this.drinkRepository.CreateDefaultDrinksForUserAsync(request.UserId); if (!string.IsNullOrEmpty(request.ProfileImageUrl)) { var httpClient = this.httpClientFactory.CreateClient(); using (var profileImageStream = await httpClient.GetStreamAsync(request.ProfileImageUrl)) { await storageAccessService.SaveFileInBlobStorage(ContainerNames.ProfileImages, request.UserId, profileImageStream); } } var activity = Activity.Domain.Activity.CreateRegistrationActivity(request.UserId, request.Name); await activityRepository.AddActivityAsync(activity.ToEntity()); await activityRepository.AddToPersonalizedFeedAsync(request.UserId, activity.ToEntity()); await activityRepository.AddToActivityAddedTopicAsync(activity.Id); } if (result.NameHasChanged) { var activity = Activity.Domain.Activity.CreateRenameActivity(request.UserId, request.Name, result.OriginalUserName); await activityRepository.AddActivityAsync(activity.ToEntity()); var renameMessage = new UserRenamedMessage(request.UserId, result.OriginalUserName, request.Name); await storageAccessService.AddQueueMessage(QueueNames.UserRenamed, renameMessage); } return(Unit.Value); }