private static void removeOnlineUser(User user) { lock (onlineUsersLock) { UsersController.ClearInvitationsFor(user); RoomController.LeaveRoom(user); onlineUsers.Remove(user.Id); } }
private static User getOnlineUser(int lookup) { lock (onlineUsersLock) { if (!onlineUsers.TryGetValue(lookup, out var onlineUser)) { return(null); } if (onlineUser.LogoutTime <= DateTime.Now) { RoomController.LeaveRoom(onlineUser); onlineUsers.Remove(lookup); return(null); } return(onlineUser); } }
public ActionResult <Room> AcceptInvitation([FromForm] string invitationID) { if (!invitations.ContainsKey(invitationID) || invitations[invitationID].Receiver.Id != LoggedUser.Id) { return(BadRequest()); } var accepted = invitations[invitationID]; if (LoggedUser.Room != null) { RoomController.LeaveRoom(LoggedUser); } if (!RoomController.JoinRoom(LoggedUser, accepted.Room)) { return(Conflict()); } invitations.Remove(invitationID); return(LoggedUser.Room); }