public virtual Func<IHub, bool, Task> BuildDisconnect(Func<IHub, bool, Task> disconnect)
{
return (hub, stopCalled) =>
{
if (OnBeforeDisconnect(hub, stopCalled))
{
return disconnect(hub, stopCalled).OrEmpty().Then((h, s) => OnAfterDisconnect(h, s), hub, stopCalled);
}
return TaskAsyncHelper.Empty;
};
}