// Метод вызова события NewMessagesEvent protected virtual void OnMessageEvent(CallbackEventArgs e) { if (NewMessagesEvent != null) { NewMessagesEvent(this, e); } }
// Метод вызова события UsersEven protected virtual void OnUsersEvent(CallbackEventArgs e) { if (UsersEven != null) { UsersEven(this, e); } }
// Обработчик события MessageEvent объекта обратного вызова void callback_MessageEvent(object sender, CallbackEventArgs e) { foreach (var item in e.Messages) { List <string> str = new List <string>(); lstChat.Dispatcher.BeginInvoke((Action)(() => { string info = item.User + " <" + item.Date + ">:" + item.Message; lstChat.Items.Add(info); })); } }
// Обработчик события UsersEven объекта обратного вызова void callback_UsersEven(object sender, CallbackEventArgs e) { lstUsers.Dispatcher.BeginInvoke(new Action(delegate() { lstUsers.Items.Clear(); })); foreach (var item in e.Users) { lstUsers.Dispatcher.BeginInvoke(new Action(delegate() { string info = item.UserName; lstUsers.Items.Add(info); })); } }
//передача информации о пользователях public void SendAllUsers(ChatUser[] users) { CallbackEventArgs args = new CallbackEventArgs(users); OnUsersEvent(args); }
//передача новых сообщений public void SendNewMessages(ChatMessage[] messages) { CallbackEventArgs args = new CallbackEventArgs(messages); OnMessageEvent(args); }