/// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="eventHandler"></param>
        /// <param name="myEvent"></param>
        public static async Task DivorceFrom <T>(this IWantToSubscribeThisEvent <T> eventHandler, Type myEvent)
            where T : IDomainEvent
        {
            if (myEvent == null || eventHandler == null)
            {
                return;
            }

            var type1 = eventHandler.GetType();

            var key = typeof(T);

            ChakadContainer.UnRegister(type1, key);
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="eventHandler"></param>
        /// <param name="myEvent"></param>
        public static async Task InterestedIn <T>(this IWantToSubscribeThisEvent <T> eventHandler, Type type)
            where T : IDomainEvent
        {
            if (type == null || eventHandler == null)
            {
                return;
            }

            var type1 = eventHandler.GetType();

            var key = typeof(T);

            ChakadContainer.Register(type1, key);
        }
        public async Task UnSubscribe <T>(IWantToSubscribeThisEvent <T> eventHandler, Type myEvent) where T : IDomainEvent
        {
            if (myEvent == null || eventHandler == null)
            {
                return;
            }

            var type1 = eventHandler.GetType();

            Logger.LogInformation(EventIdConstants.UnSubscribeFromEvent,
                                  $"Start UnSubscribing {type1.FullName} to {myEvent.FullName} .");

            var key = typeof(T);

            ChakadContainer.UnRegister(type1, key);
        }
        public async Task Subscribe <T>(IWantToSubscribeThisEvent <T> eventHandler, Type type)
            where T : IDomainEvent
        {
            if (type == null || eventHandler == null)
            {
                return;
            }

            Logger.LogInformation(EventIdConstants.SubscribeToEvent,
                                  $"Start Subscribing {eventHandler.GetType().FullName} to {type.FullName} .");

            var type1 = eventHandler.GetType();

            var key = typeof(T);

            ChakadContainer.Register(type1, key);
        }