public bool Handle(ControlMessage message) { if (message.CommandType == CommandsTypes.ChangeCodeType) { var targetRoom = _roomService.GetRoom(message.RoomId); if (targetRoom != null) { Enum.TryParse(typeof(LanguagesTypes), message.Content, out var languageType); targetRoom.TypeCode = (LanguagesTypes)languageType; if (targetRoom.UsersList != null) foreach (var user in targetRoom.UsersList) { if (user.WebSocket.State == WebSocketState.Open) _webSocketsService.SendMessage(new ControlMessage { Content = message.Content, CommandType = CommandsTypes.ChangeCodeType }, user.WebSocket); } } return true; } return false; }
public bool Handle(ControlMessage message) { if (message.CommandType == CommandsTypes.JoinToRoom) { _roomService.EnterRoom(message.User, message.RoomId); var targetRoom = _roomService.GetRoom(message.RoomId); _webSocketsService.SendMessage(new CodeMessage { Content = targetRoom.EditorContent, LanguageType = targetRoom.TypeCode }, message.User.WebSocket); return(true); } return(false); }
public bool Handle(ControlMessage message) { if (message.CommandType == CommandsTypes.CreateRoom) { var romId = _roomService.CreateRoom(message.User, message.Content); _webSocketsService.SendMessage(new ControlMessage { Content = _messageService.ParseMessage(new UserInfo { RoomId = romId, Rooms = _roomService.GetAllRooms() }), CommandType = CommandsTypes.UpdateInformation, User = null }, message.User.WebSocket); } return(false); }
public bool Handle(ControlMessage message) { if (message.CommandType == CommandsTypes.DeleteRoom) { var targetRoom = _roomService.GetRoom(message.RoomId); foreach (var user in targetRoom.UsersList) { if (user.WebSocket.State == WebSocketState.Open) { _webSocketsService.SendMessage(message, user.WebSocket); } } _roomService.RemoveRoom(message.RoomId); return(true); } return(false); }
public bool Handle(ChatMessage message) { _roomService.SendChatMessage(message?.Content, message?.RoomId); var usersList = _roomService.GetRoom(message?.RoomId)?.UsersList; if (usersList != null) { _roomService.EnterRoom(message.User, message.RoomId); foreach (var user in usersList) { if (user.WebSocket.State == WebSocketState.Open) { _webSocketsService.SendMessage(message, user.WebSocket); } } } return(true); }
public bool Handle(CodeMessage message) { _roomService.UpdateRoomContent(message.Content, message.RoomId); var targetRoom = _roomService.GetRoom(message.RoomId); if (targetRoom?.UsersList != null) { _roomService.EnterRoom(message.User, message.RoomId); foreach (var user in targetRoom.UsersList) { if (user.WebSocket.State == WebSocketState.Open && user.Id != message.User?.Id) { _webSocketsService.SendMessage(message, user.WebSocket); } } } return(true); }
public bool Handle(ErrorMessage message) { _webSocketsService.SendMessage(message, message.User.WebSocket); return(true); }