예제 #1
0
        private void HandleCreate(ChatUser user, string[] parts)
        {
            if (parts.Length > 2)
            {
                throw new InvalidOperationException("Room name cannot contain spaces.");
            }

            if (parts.Length == 1)
            {
                throw new InvalidOperationException("No room specified.");
            }

            string roomName = parts[1];

            if (String.IsNullOrWhiteSpace(roomName))
            {
                throw new InvalidOperationException("No room specified.");
            }

            ChatRoom room = _repository.GetRoomByName(roomName);

            if (room != null)
            {
                throw new InvalidOperationException(String.Format("The room '{0}' already exists", roomName));
            }

            // Create the room, then join it
            room = _chatService.AddRoom(user, roomName);

            JoinRoom(user, room, null);

            _repository.CommitChanges();
        }