public void RemoveFriend(UserIdentifier userIdentifier, FriendCacheItem friend) { var user = GetCacheItemOrNull(userIdentifier); if (user == null) { return; } lock (_syncObj) { if (user.Friends.ContainsFriend(friend)) { user.Friends.Remove(friend); } } }
public void UpdateFriend(UserIdentifier userIdentifier, FriendCacheItem friend) { var user = GetCacheItemOrNull(userIdentifier); if (user == null) { return; } lock (_syncObj) { var existingFriendIndex = user.Friends.FindIndex( f => f.FriendUserId == friend.FriendUserId && f.FriendTenantId == friend.FriendTenantId ); if (existingFriendIndex >= 0) { user.Friends[existingFriendIndex] = friend; } } }
public static bool ContainsFriend(this List <FriendCacheItem> items, FriendCacheItem item) { return(items.Any(f => f.FriendTenantId == item.FriendTenantId && f.FriendUserId == item.FriendUserId)); }