Example #1
0
        public void ReceiveUserList(ClientInfo[] loggedInUsers)
        {
#if LOGCALLS
            Utils.LogCurrentMethodCall();
#endif
            OnReceivedUserList(loggedInUsers);
        }
Example #2
0
        public UserListItem(ClientInfo clientInfo)
        {
            this.ClientInfo = clientInfo;

            InitializeComponent();

            this.UserAvatar.Source = Utils.GetImageFromAvatar(ClientInfo.Avatar).Source;
            this.UserLoginId.Text = ClientInfo.LoginId;
        }
Example #3
0
        public static ClientInfo[] Login(string loginId, string avatar)
        {
#if LOGCALLS
            Utils.LogCurrentMethodCall();
#endif

            try
            {
                Console.WriteLine("Entering lock...");
                lock (m_Locker)
                {
                    if (!m_Clients.ContainsKey(loginId))
                    {
                        ClientInfo newClientInfo = new ClientInfo
                            {
                                LoginId = loginId,
                                Callback = OperationContext.Current.GetCallbackChannel<IChatClientCallback>(),
                                Avatar = Avatars.Get(avatar)
                            };

                        //When client connection check fails, logoff client
                        newClientInfo.ConnectionCheckFailed = delegate(ClientInfo cliInfo)
                        {
                            Logoff(cliInfo.LoginId);
                            Console.WriteLine("Connection with client {0} was lost.", cliInfo.LoginId);
                        };

                        m_Clients.Add(
                            loginId,
                            newClientInfo
                            );

                        NotifyOthersOfMe(loginId);
                    }

                    return m_Clients.Select(p => p.Value).ToArray();
                }
            }
            finally
            {
                Console.WriteLine("Exiting lock...");
            }
        }
Example #4
0
 private void OnReceivedUserList(ClientInfo[] loggedInUsers)
 {
     if (m_ReceivedUserList != null)
         m_ReceivedUserList(this, new GenericEventArgs<ClientInfo[]>(loggedInUsers));
 }
Example #5
0
        private ChatControl CreateChatControl(ClientInfo cli)
        {
            ChatControl cc = new ChatControl();
            cc.IdToTalkTo = cli.LoginId;
            cc.SendMessage += new EventHandler<WPFChat.Library.GenericEventArgs<string>>(cc_SendMessage);
            TabItem ti = new TabItem();

            StackPanel pnlHeader = new StackPanel();
            pnlHeader.Orientation = Orientation.Horizontal;

            ChatTabHeader tabHeader = new ChatTabHeader();

            tabHeader.txtLoginId.Text = cli.LoginId;
            tabHeader.btnCloseChat.Click += delegate(object sender, RoutedEventArgs e)
            {
                tabChatWindows.Items.Remove(ti);
            };
         
            tabHeader.Tag = cli;
            tabHeader.imgAvatar.Source = Utils.GetImageFromAvatar(cli.Avatar).Source;

            ti.Header = tabHeader;
            ti.Content = cc;
            tabChatWindows.Items.Add(ti);
            tabChatWindows.SelectedItem = ti;

            return cc;
        }
Example #6
0
        private void LoadChatList(ClientInfo[] clients)
        {
            lvConnectedUsers.Items.Clear();
            foreach (ClientInfo c in clients)
            {
                UserListItem uli = new UserListItem(c);
                lvConnectedUsers.Items.Add(uli);
            }


        }