public async Task SendMessageToAllOutsideRoom(ChatPayloadDTO payload) { foreach (var user in _userService.GetUsersOutRooms()) { await SendMessage(user.Id, payload.Message); } }
public async Task SendMessageToAllUsers(ChatPayloadDTO payload) { foreach (var user in _userService.GetAllUsers()) { await SendMessage(user.Id, payload.Message); } }
public async Task SendPrivateMessage(ChatPayloadDTO payload) { if (_userService.IsUserInRoom(payload.TargetUserId, payload.RoomId.Value)) { await SendMessage(payload.UserId, payload.Message); await SendMessage(payload.TargetUserId, payload.Message); } else { await SendMessage(payload.UserId, payload.Message); } }
public async Task SendRoomMessageToAll(ChatPayloadDTO payload) { if (payload.RoomId.HasValue) { foreach (var user in _userService.GetUsersInRoom(payload.RoomId.Value)) { if (user.Id.Equals(payload.UserId)) { if (AllowSendToOrignUser(payload.Event)) { await SendMessage(user.Id, payload.Message); } } else { await SendMessage(user.Id, payload.Message); } } } }
public async Task HandleResponse(ChatPayloadDTO payload) { switch (payload.Event) { case EventEnum.RegisterUser: await SendMessage(payload.UserId, payload.Message); break; case EventEnum.Messaging: if (payload.IsPrivate.HasValue && payload.IsPrivate.Value == true && !String.IsNullOrWhiteSpace(payload.TargetUserId)) { await SendPrivateMessage(payload); } else { await SendRoomMessageToAll(payload); } break; case EventEnum.EnterRoom: await SendMessage(payload.UserId, payload.Message); break; case EventEnum.ExitRoom: await SendMessage(payload.UserId, payload.Message); break; case EventEnum.CreateRoom: await SendMessageToAllOutsideRoom(payload); break; case EventEnum.UpdateUserList: await SendRoomMessageToAll(payload); break; case EventEnum.UpdateRoomList: await SendMessageToAllOutsideRoom(payload); break; case EventEnum.WelcomeMessage: await SendMessage(payload.UserId, payload.Message); break; case EventEnum.GoodbyeMessage: await SendMessage(payload.UserId, payload.Message); break; case EventEnum.SocketDisconnect: break; case EventEnum.UpdateUsersRooms: await SendMessageToAllOutsideRoom(payload); break; case EventEnum.Error: await SendMessage(payload.UserId, payload.Message); break; default: break; } }