public ITreeNode MapFrom(EventGroupBuilderDTO eventGroupBuilder)
        {
            var node     = mapFrom(eventGroupBuilder);
            var children = eventGroupBuilder.EventGroups.MapAllUsing(this);

            children.Each(node.AddChild);

            eventGroupBuilder.Applications.Each(app => node.AddChild(MapFrom(app)));

            mapAll(eventGroupBuilder.Events).Each(node.AddChild);
            mapAll(eventGroupBuilder.ChildContainer).Each(node.AddChild);

            if (eventGroupBuilder.IsAnImplementationOf <ApplicationBuilderDTO>())
            {
                var inputApplication = eventGroupBuilder.DowncastTo <ApplicationBuilderDTO>();
                mapAll(inputApplication.Transports).Each(node.AddChild);
            }
            return(node);
        }