public void Direct(string XML)  // this method trigger events
        {
            switch (iXMLParser.GetEventType(XML))
            {
            case EventType.NewMessageAdded:
                OnNewMessageAdded(iXMLParser.GetMessage(XML));
                break;

            case EventType.FullUserInfoReceived:
                OnFullUserInfoReceived(iXMLParser.GetUser(XML));
                break;

            case EventType.CurrentUserUpdated:
                OnCurrentUserUpdated(iXMLParser.GetUser(XML));
                break;

            case EventType.UserConnected:
                OnUserConnected(iXMLParser.GetUser(XML));
                break;

            case EventType.ShortUserInfoUpdated:
                OnShortUserInfoUpdated(iXMLParser.GetShortUserData(XML));
                break;

            case EventType.NewChatRoomAdded:
                OnNewChatRoomAdded(iXMLParser.GetChatRoom(XML));
                break;

            case EventType.NewUserInChatEntered:
                OnNewUserInChatEntered(iXMLParser.GetChatRoom(XML));
                break;

            case EventType.AlreadyExistUserExceptionDetected:
                throw new Exception("User already exist");
                break;

            default:
                throw new Exception("OTHER CASE");
                break;
            }
        }