/// <summary> /// Handle change of connection status /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _connectionReceive_StatusChanged(object sender, StatusEventArgs e) { if (e.IsOnline) { if (Settings.Instance.ShowSystemPopups) { AppTray.Message(System.Windows.Forms.ToolTipIcon.Warning, "Connection established."); } foreach (var contact in Contacts) { contact.IsConnectionLost = false; } } else { if (Settings.Instance.ShowSystemPopups) { AppTray.Message(System.Windows.Forms.ToolTipIcon.Warning, "Connection lost."); } foreach (var contact in Contacts) { contact.IsOnline = false; contact.IsConnectionLost = true; } } StatusChanged?.Invoke(sender, e); }
private void ProcessMessage(MessageEventArgs e) { if (!e.Message.IsNotification) { var window = GetWindow(e.Message.Address, true, true, false); if (window != null) { // Отобразим сообщение в окне чата ((ChatViewModel)window.DataContext).DisplayMessage(e.Message); if (!window.IsActive && e.Activate) { // Мигание окна window.FlashWindow(false); // Сообщение в трее AppTray.Message(ToolTipIcon.None, e.Message.Text, window.Title, tag: e.Message.Address); } } } else { var window = GetWindow(e.Message.To, false, false, false); if (window != null) { // Отобразим подтверждение о получении в окне чата ((ChatViewModel)window.DataContext).DisplayMessage(e.Message); } } }