private ConnectionTerminationResult KillConnection(string id, NetworkConnectionTracker connectionTracker) { TrackedNetworkConnection connection = connectionTracker.Get(id); if (connection != null) { if (IsAdminOrSelf(connection.Username())) { connection.Close(); return(new ConnectionTerminationResult(id, connection.Username())); } throw new AuthorizationViolationException(PERMISSION_DENIED); } return(new ConnectionTerminationFailedResult(id)); }