private async Task LifetimeExecute()

in src/Microsoft.Azure.SignalR.AspNet/Transports/AzureTransport.cs [115:163]


    private async Task LifetimeExecute()
    {
        try
        {

            try
            {
                var connected = Connected;
                if (connected != null)
                {
                    Log.ExecutingConnected(_logger, ConnectionId);
                    await connected();
                    Log.ExecuteConnected(_logger, ConnectionId);
                }

                _connectedTcs.TrySetResult(null);
            }
            catch (Exception e)
            {
                Log.ErrorExecuteConnected(_logger, ConnectionId, e);
                _connectedTcs.TrySetException(e);
                throw;
            }

            await _disconnectTcs.Task;

            var disconnected = Disconnected;
            if (disconnected != null)
            {
                try
                {
                    Log.ExecutingDisconnected(_logger, ConnectionId);
                    await disconnected(true);
                    Log.ExecuteDisconnected(_logger, ConnectionId);
                }
                catch (Exception e)
                {
                    Log.ErrorExecuteDisconnected(_logger, ConnectionId, e);
                    throw;
                }
            }

            _lifetimeTcs.TrySetResult(null);
        }
        catch (Exception e)
        {
            _lifetimeTcs.TrySetException(e);
        }
    }