Пример #1
0
 private static void removeOnlineUser(User user)
 {
     lock (onlineUsersLock)
     {
         UsersController.ClearInvitationsFor(user);
         RoomController.LeaveRoom(user);
         onlineUsers.Remove(user.Id);
     }
 }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
        }