public void UserClickCommand(NetworkViewModel that, UserOrTeam user)
        {
            DemoMode.SetValue(false);
            UnselectAll();

            bool selected = false;
            // If already selected then toggle
            if (user == null || that.SelectedUserId.GetValue() == user.Id.ToString())
            {
                that.SelectedUserId.SetValue(null);
            }
            else
            {
                that.SelectedUserId.SetValue(user.Id.ToString());
                selected = true;
            }

            if (selected)
            {

                foreach (string partyid in user.Parties.Keys)
                {
                    EntityReference party = user.Parties[partyid];

                    // If overflow - add that instead
                    string key = GetIdIndexKeyEntityRef(party);

                    if (idIndex.ContainsKey(key) && idIndex[key].ReplacedByOverflow != null)
                    {

                        Entity overflow = (Entity)idIndex[GetIdIndexKeyEntityRef(party)].ReplacedByOverflow.SourceData;

                        HighlightedEntities.Push(new EntityReference(new Guid(overflow.Id), overflow.LogicalName, null));
                    }
                    else
                    {
                        HighlightedEntities.Push(party);
                    }

                }

            }
            if (OnSelectedNodesAdded != null)
                OnSelectedNodesAdded(this, null);
            if (OnSelectedLinksAdded != null)
                OnSelectedLinksAdded(this, null);
        }
        public UserOrTeam GetUserOrTeamReference(EntityReference userOrTeamId)
        {
            UserOrTeam user;
            // Add to the list of users if not already
            if (!userOrTeamIds.ContainsKey(userOrTeamId.Id.ToString()))
            {

                user = new UserOrTeam();
                user.Id = userOrTeamId.Id.ToString();
                user.IsTeam = (userOrTeamId.LogicalName == "team");
                user.LogicalName = user.IsTeam ? "team" : "systemuser";
                user.FullName = null;
                user.Parties = new Dictionary<string, EntityReference>();
                userOrTeamIds[user.Id] = user;

            }
            else
            {
                user = userOrTeamIds[userOrTeamId.Id.ToString()];
            }
            return user;
        }