public int Compare( object x, object y )
{
if ( x == null && y == null )
return 0;
else if ( x == null )
return -1;
else if ( y == null )
return 1;
NetState a = x as NetState;
NetState b = y as NetState;
if ( a == null || b == null )
throw new ArgumentException();
Mobile aMob = a.Mobile;
Mobile bMob = b.Mobile;
if ( aMob == null && bMob == null )
return 0;
else if ( aMob == null )
return 1;
else if ( bMob == null )
return -1;
if ( aMob.AccessLevel > bMob.AccessLevel )
return -1;
else if ( aMob.AccessLevel < bMob.AccessLevel )
return 1;
else
return Insensitive.Compare( aMob.Name, bMob.Name );
}
}