public static bool SameLocateKey(this IClientConnectionLocate locate, IClientConnectionLocate locate2) { if (locate == null || locate2 == null) { return(false); } return(locate.ScopeId.MyEquals(locate2.ScopeId) && locate.ClientId.MyEquals(locate2.ClientId) && locate.ConnectionId.MyEquals(locate2.ConnectionId)); }
public static T Locate <T>(this IEnumerable <T> locates, IClientConnectionLocate locate) where T : IClientConnectionLocate { if (locates == null || locate == null) { return(default(T)); } if (!string.IsNullOrWhiteSpace(locate.ConnectionId)) { return(locates.SingleOrDefault(x => locate.ConnectionId.MyEquals(x.ConnectionId))); } return(locates.FirstOrDefault(x => locate.ScopeId.MyEquals(x.ScopeId) && locate.ClientId.MyEquals(x.ClientId))); }