public void Subscribe <TModel, THandler>()
            where THandler : IEventBusHandler <TModel>
            where TModel : EventModel
        {
            if (_subscribeBus != null)
            {
                throw new Exception("Subscription not terminated");
            }

            var handler   = (IEventBusHandler <TModel>)Activator.CreateInstance <THandler>();
            var queueName = typeof(TModel).Name;

            _subscribeBus = MassTransitFactory.Create(_options, (cfg, host) => {
                cfg.ReceiveEndpoint(host, queueName, e => {
                    e.Consumer(() => new MassTransitConsumerAdapter <TModel>(handler));
                });
            });

            _subscribeBus.Start();
        }
        public void Publish <TModel>(TModel eventModel) where TModel : EventModel
        {
            var busControl = MassTransitFactory.Create(_options);

            busControl.Publish(eventModel).Wait();
        }