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; } }