/// <summary> /// Cambia los estados de los menús /// </summary> private void ShowMenuStatus(JabberContactStatus.Availability intStatus) { // Deselecciona los menús mnuAway.Checked = false; mnuChat.Checked = false; mnuDnd.Checked = false; mnuOnline.Checked = false; mnuXa.Checked = false; // Selecciona el menú adecuado switch (intStatus) { case JabberContactStatus.Availability.Away: mnuAway.Checked = true; break; case JabberContactStatus.Availability.Chat: mnuChat.Checked = true; break; case JabberContactStatus.Availability.Dnd: mnuDnd.Checked = true; break; case JabberContactStatus.Availability.Online: mnuOnline.Checked = true; break; case JabberContactStatus.Availability.Xa: mnuXa.Checked = true; break; } }
/// <summary> /// Obtiene la clave de imagen asociada a un estado /// </summary> private ImageKey GetImage(JabberContactStatus objStatus) { switch (objStatus.Status) { case JabberContactStatus.Availability.Away: return ImageKey.ContactOffline; case JabberContactStatus.Availability.Chat: return ImageKey.ContactChat; case JabberContactStatus.Availability.Dnd: return ImageKey.Contact; case JabberContactStatus.Availability.Offline: return ImageKey.ContactOffline; case JabberContactStatus.Availability.Online: return ImageKey.ContactOnline; case JabberContactStatus.Availability.Xa: return ImageKey.Contact; default: return ImageKey.Contact; } }
/// <summary> /// Lanza el evento de cambio de estado /// </summary> private void RaiseEventSetStatus(JabberContactStatus.Availability intStatus) { JabberConnection objConnection = GetSelectedConnection(); if (objConnection != null) { SetStatus?.Invoke(this, new SetStatusEventArgs(objConnection, intStatus)); ShowMenuStatus(intStatus); Focus(); } }
/// <summary> /// Modifica el estado del usuario /// </summary> private void SetUserStatus(JabberConnection objConnection, JabberContactStatus.Availability intNewStatus, string strText) { if (objConnection != null) try { // Envía el nuevo estado if (objConnection.User.Status.Status != intNewStatus) { // Si no está conectado, conecta if (!objConnection.IsConnected) objConnection.Connect(); // Envía el estado objConnection.SetStatus(intNewStatus, strText); // Actualiza el árbol de contactos LoadListContacts(); // Muestra el mensaje LogContact(objConnection.User); LogMessage($">> Cambio de estado del usuario {objConnection.User.FullName} --> {intNewStatus} [{strText}]"); LogEnd(); } } catch (Exception objException) { LogContact(objConnection.User); LogMessage($">> Error en la conexión {objException.Message}"); LogEnd(); Bau.Controls.Forms.Helper.ShowMessage(this, $"Error en la conexión {objException.Message}"); } }