public async Task <TResponse> Handle( TRequest aRequest, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next) { try { Logger.LogDebug($"{GetType().Name}: Start"); Logger.LogDebug($"{GetType().Name}: Call next"); TResponse response = await next(); Logger.LogDebug($"{GetType().Name}: Start Post Processing"); 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; } }
public ReduxDevToolsBehavior( ILogger <ReduxDevToolsBehavior <TRequest, TResponse> > aLogger, ReduxDevToolsInterop aReduxDevToolsInterop, IStore aStore) { Logger = aLogger; Logger.LogDebug($"{GetType().Name} constructor"); Store = aStore; ReduxDevToolsInterop = aReduxDevToolsInterop; }
//TODO: This won't run as a PostProcessor for some reason MediatR never creates it. public Task Process(TRequest aRequest, TResponse response) { 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); }