public Event[] GetTopLevelEvents()
        {
            ListTopLevelEventsResponse response = _proxy.ListTopLevelEvents(new ListTopLevelEventsRequest());

            if (response.ReturnStatus.Code != 0)
            {
                throw new Exception(response.ReturnStatus.Description);
            }


            Event[] topLvlEvents = EventConverter.ConvertEventClassifierTypeCollection(response.EventClassifiers);
            return(topLvlEvents);
        }
        public Event GetEventSubTreeNoSelections(long eventId)
        {
            GetEventSubTreeNoSelectionsRequest request = new GetEventSubTreeNoSelectionsRequest();

            request.EventClassifierIds = new long[] { eventId };


            GetEventSubTreeNoSelectionsResponse response = _proxy.GetEventSubTreeNoSelections(request);

            if (response.ReturnStatus.Code != 0)
            {
                throw new Exception(response.ReturnStatus.Description);
            }


            // Since only receive one eventId as param then can assume will always be just one event returned.
            Event[] eventsTreeToReturn = EventConverter.ConvertEventClassifierTypeCollection(response.EventClassifiers);
            return(eventsTreeToReturn[0]);
        }