private Task ProcessResponse(StateChangeTracker tracker, object result, HubRequest request, Exception error)
{
var exception = error.Unwrap();
string stackTrace = (exception != null && _isDebuggingEnabled) ? exception.StackTrace : null;
string errorMessage = exception != null ? exception.Message : null;
if (exception != null)
{
_counters.ErrorsHubInvocationTotal.Increment();
_counters.ErrorsHubInvocationPerSec.Increment();
_counters.ErrorsAllTotal.Increment();
_counters.ErrorsAllPerSec.Increment();
}
var hubResult = new HubResponse
{
State = tracker.GetChanges(),
Result = result,
Id = request.Id,
Error = errorMessage,
StackTrace = stackTrace
};
return(Transport.Send(hubResult));
}