JabbR.Services.ChatService.JoinRoom C# (CSharp) Method

JoinRoom() public method

public JoinRoom ( ChatUser user, ChatRoom room, string inviteCode ) : void
user ChatUser
room ChatRoom
inviteCode string
return void
        public void JoinRoom(ChatUser user, ChatRoom room, string inviteCode)
        {
            // Throw if the room is private but the user isn't allowed
            if (room.Private)
            {
                // First, check if the invite code is correct
                if (!String.IsNullOrEmpty(inviteCode) && String.Equals(inviteCode, room.InviteCode, StringComparison.OrdinalIgnoreCase))
                {
                    // It is, add the user to the allowed users so that future joins will work
                    room.AllowedUsers.Add(user);
                }
                if (!IsUserAllowed(room, user))
                {
                    throw new InvalidOperationException(String.Format("Unable to join {0}. This room is locked and you don't have permission to enter. If you have an invite code, make sure to enter it in the /join command", room.Name));
                }
            }

            // Add this user to the room
            _repository.AddUserRoom(user, room);

            // Clear the cache
            _cache.RemoveUserInRoom(user, room);
        }

Usage Example

Ejemplo n.º 1
0
            public void AddsUserToRoom()
            {
                var repository = new InMemoryRepository();
                var user = new ChatUser
                {
                    Name = "foo"
                };
                repository.Add(user);
                var room = new ChatRoom
                {
                    Name = "Room"
                };
                var service = new ChatService(repository);

                service.JoinRoom(user, room);

                Assert.True(user.Rooms.Contains(room));
                Assert.True(room.Users.Contains(user));
            }
All Usage Examples Of JabbR.Services.ChatService::JoinRoom