public void ReceivedCommandPayload(StatsCommandInfo statsCommandInfo) {
     CaptureState(statsCommandInfo, ConnectionStatus.ReceivedCommandPayload);
 }
 private void CaptureState(StatsCommandInfo info, ConnectionStatus status) {
     var id = info.Args[1];
     lock(Connections) {
         var connection = Connections[info.ClientId];
         connection.Status = status;
         connection.Id = id;
     }
 }
 public void ProcessedCommand(StatsCommandInfo statsCommandInfo) {
     CaptureState(statsCommandInfo, ConnectionStatus.ProcessedCommand);
 }
 public void CommandCompleted(StatsCommandInfo info) {
     CaptureState(info, ConnectionStatus.CommandCompleted);
     Interlocked.Increment(ref Requests);
     Interlocked.Add(ref RequestTicks, info.Elapsed.Ticks);
 }
 public virtual void ReceivedCommandPayload(StatsCommandInfo statsCommandInfo) { }
 public virtual void ProcessedCommand(StatsCommandInfo statsCommandInfo) { }
 public virtual void CommandCompleted(StatsCommandInfo info) { }