public void ReceiveUserList(ClientInfo[] loggedInUsers) { #if LOGCALLS Utils.LogCurrentMethodCall(); #endif OnReceivedUserList(loggedInUsers); }
public UserListItem(ClientInfo clientInfo) { this.ClientInfo = clientInfo; InitializeComponent(); this.UserAvatar.Source = Utils.GetImageFromAvatar(ClientInfo.Avatar).Source; this.UserLoginId.Text = ClientInfo.LoginId; }
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..."); } }
private void OnReceivedUserList(ClientInfo[] loggedInUsers) { if (m_ReceivedUserList != null) m_ReceivedUserList(this, new GenericEventArgs<ClientInfo[]>(loggedInUsers)); }
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; }
private void LoadChatList(ClientInfo[] clients) { lvConnectedUsers.Items.Clear(); foreach (ClientInfo c in clients) { UserListItem uli = new UserListItem(c); lvConnectedUsers.Items.Add(uli); } }