public Task NotifyRoomChanged(RoomChangedMessage roomChangedMessage, IList <string> userIds) { foreach (string userId in userIds) { Task.Run(async() => { try { await notificationService.Notify(userId, NotificationType.EntityChanged, JsonConvert.SerializeObject(new EntityChangedNotificationData(nameof(RoomInfo), JsonConvert.SerializeObject(roomChangedMessage)))); } catch (Exception e) { logger.LogError(e, "Error on send notification to user."); } }); } return(Task.CompletedTask); }
private Task OnRoomChanged(string key, RoomChangedMessage roomChangedMessage) { List <string> userIds = roomChangedMessage.RoomInfo.RoomUserInfoByUserIdDictionary.Keys.ToList(); foreach (string userId in userIds) { Task.Run(async() => { try { await notificationService.Notify(userId, NotificationType.EntityChanged, JsonConvert.SerializeObject(new EntityChangedNotificationData(nameof(RoomInfo), JsonConvert.SerializeObject(roomChangedMessage)))); } catch (Exception e) { logger.LogError(e, "Error on send notification to user."); } }); } return(Task.CompletedTask); }
private async Task OnRoomChanged(string key, RoomChangedMessage roomChangedMessage) { if (roomChangedMessage.OperationType == OperationType.Delete) { IList <string> userIds = await waitingService.GetWaitingUserForRoom(roomChangedMessage.RoomInfo.Id); await waitingService.RemoveRoom(roomChangedMessage.RoomInfo.Id); await waitingNotificationService.NotifyRoomChanged(roomChangedMessage, userIds); return; } if (roomChangedMessage.OperationType == OperationType.Save) { IList <string> userIds = await waitingService.GetUserIdsWithLessRoomWaitingList( WaitingActionConstants.MaxShowWaitingRoomNum, WaitingActionConstants.NewRoomNotificationUserMaxNum); await waitingService.AddRoomUserInfo(roomChangedMessage.RoomInfo.Id, userIds); await waitingNotificationService.NotifyRoomChanged(roomChangedMessage, userIds); } }
private async Task SendEntityChangedMessage(RoomChangedMessage roomChangedMessage) { await messageService.Publish(RoomChangedMessageTopic.Topic, null, roomChangedMessage); }