public async Task <TResponse> Handle(
            TRequest aRequest,
            CancellationToken aCancellationToken,
            RequestHandlerDelegate <TResponse> aNext)
        {
            Logger.LogDebug($"{GetType().Name}: Start");
            Logger.LogDebug($"{GetType().Name}: Call next");
            TResponse response = await aNext();

            Logger.LogDebug($"{GetType().Name}: Start Post Processing");
            try
            {
                if (!(aRequest is IReduxRequest) && ReduxDevToolsInterop.IsEnabled)
                {
                    ReduxDevToolsInterop.Dispatch(aRequest, Store.GetSerializableState());
                }
                Logger.LogDebug($"{GetType().Name}: End");
                return(response);
            }
            catch (Exception e)
            {
                Logger.LogDebug($"{GetType().Name}: Error: {e.Message}");
                Logger.LogDebug($"{GetType().Name}: InnerException: {e.InnerException?.Message}");
                Logger.LogDebug($"{GetType().Name}: StackTrace: {e.StackTrace}");
                throw;
            }
        }
 //TODO: This won't run as a PostProcessor for some reason MediatR never creates it.
 public Task Process(TRequest aRequest, TResponse aResponse)
 {
     try
     {
         Logger.LogDebug($"{GetType().Name}: Start Post Processing");
         if (!(aRequest is IReduxRequest))
         {
             ReduxDevToolsInterop.Dispatch(aRequest, Store.GetSerializableState());
         }
         Logger.LogDebug($"{GetType().Name}: End");
     }
     catch (Exception e)
     {
         Logger.LogDebug($"{GetType().Name}: Error: {e.Message}");
         Logger.LogDebug($"{GetType().Name}: InnerException: {e.InnerException?.Message}");
         Logger.LogDebug($"{GetType().Name}: StackTrace: {e.StackTrace}");
         throw;
     }
     return(Task.CompletedTask);
 }