Exemple #1
0
        /// <summary>
        /// Adds user to user list in right area of the window.
        /// </summary>
        /// <param name="userInfo">New user informations</param>
        private void AddUserToListInternal(UserInfo userInfo)
        {
            //Do not add the current user (that is using the application) to user list
            if (userInfo.Nick == CurrentUserInfo.Nick)
            {
                return;
            }

            //Do not add user to list if it is already exists.
            if (FindUserInList(userInfo.Nick) != null)
            {
                return;
            }

            //Find correct order (by name) to insert the user
            var orderedIndex = 0;

            foreach (UserCardControl userCardControl in spUsers.Children)
            {
                if (userInfo.Nick.CompareTo(userCardControl.UserNick) < 0)
                {
                    break;
                }
                orderedIndex++;
            }

            //Create user control
            var userCard = new UserCardControl
            {
                UserNick    = userInfo.Nick,
                UserStatus  = userInfo.Status,
                AvatarBytes = userInfo.AvatarBytes,
                Height      = 60
            };

            userCard.MouseDoubleClick += UserCard_MouseDoubleClick;

            //Insert user to user list
            spUsers.Children.Insert(
                orderedIndex,
                userCard
                );

            //Enable private messaging window if any open with that user
            if (_privateChatWindows.ContainsKey(userInfo.Nick))
            {
                _privateChatWindows[userInfo.Nick].UserLoggedIn();
                _privateChatWindows[userInfo.Nick].RemoteUserStatus = userInfo.Status;
                _privateChatWindows[userInfo.Nick].RemoteUserAvatar = userCard.AvatarImageSource;
            }
        }
Exemple #2
0
        /// <summary>
        /// Creates a new PrivateChatWindow from a user card.
        /// </summary>
        /// <param name="userCard">User card to use while creating window</param>
        /// <returns>Created window</returns>
        private PrivateChatWindow CreatePrivateChatWindow(UserCardControl userCard)
        {
            var window = new PrivateChatWindow(_controller)
            {
                CurrentUserNick   = txtNick.Text,
                CurrentUserStatus = GetCurrentUserStatus(),
                CurrentUserAvatar = imgCurrentUserAvatar.Source,
                RemoteUserNick    = userCard.UserNick,
                RemoteUserStatus  = userCard.UserStatus,
                RemoteUserAvatar  = userCard.AvatarImageSource
            };

            window.Closed += PrivateChatWindow_Closed;
            window.Show();
            return(window);
        }