public async Task <IActionResult> OnPostJoinExisting(string roomName) { if (string.IsNullOrEmpty(roomName)) { ModelState.AddModelError(string.Empty, "A room name is required."); return(Page()); } var room = await _roomsService.GetRoomAsync(roomName); if (room != null) { return(RedirectToAction("JoinChatRoom", "Chatting", routeValues: new { roomName = roomName })); } ModelState.AddModelError(string.Empty, "Such room doesn't exist :/"); return(Page()); }
public async Task JoinRoom(string roomName) { try { var currentConnection = await _chatConnectionsService.GetChatConnectionAsync(Context.ConnectionId); await _chatConnectionsService.UpdateChatConnectionAsync(new ChatConnectionsDTO { ConnectionId = Context.ConnectionId, RoomName = roomName, UserId = currentConnection.UserId, UserAgent = currentConnection.UserAgent, User = currentConnection.User, RoomNameNavigation = currentConnection.RoomNameNavigation }); var rooms = await _roomsService.GetRoomAsync(roomName); await Groups.AddToGroupAsync(Context.ConnectionId, roomName); } catch (Exception e) { await _loggerService.LogAsync(new LogDTO { Date = DateTime.Now, Message = e.Message, StackTrace = e.StackTrace }); } }
public async Task <IActionResult> Get(string id) { var room = await _roomsService.GetRoomAsync(id); return(Ok(room)); }