/// <summary>
 ///		Elimina un contacto
 /// </summary>
 private void RemoveContact(JabberConnection objConnection, JabberContact objContact)
 {
     if (objConnection != null)
         { if (objContact != null)
                 { if (Bau.Controls.Forms.Helper.ShowQuestion(ParentForm, $"¿Realmente desea eliminar al contacto {objContact.FullName}?"))
                         objConnection.DeleteContact(objContact);
                 }
             else if (Bau.Controls.Forms.Helper.ShowQuestion(ParentForm, $"¿Realmente desea eliminar la conexión {objConnection.Host.Address} - usuario {objConnection.User.Login}"))
                 { // Desconecta la conexión
                         objConnection.Disconnect();
                     // Elimina la conexión
                         Manager.Connections.Remove(objConnection);
                     // Actualiza el árbol
                         LoadContacts(Manager);
                 }
         }
 }
 /// <summary>
 ///		Comprueba si dos contactos son iguales
 /// </summary>
 public bool EqualsTo(JabberContact objUser)
 {
     return Host.EqualsIgnoreCase(objUser.Host) && Login.EqualsIgnoreCase(objUser.Login);
 }
        /// <summary>
        ///		Abre el formulario de modificación de contacto
        /// </summary>
        private void OpenFormUpdateContact(JabberContact objContact)
        {
            JabberConnection objConnection = GetSelectedConnection();

                if (objConnection == null)
                    Bau.Controls.Forms.Helper.ShowMessage(ParentForm, "Seleccione una conexión");
                else
                    { frmContact frmNewContact = new frmContact();

                            // Asigna las propiedades
                                frmNewContact.Jid = objContact?.Jid;
                                frmNewContact.ContactName = objContact?.Name;
                            // Abre el formulario
                                frmNewContact.ShowDialog();
                            // Si todo es correcto ...
                                if (frmNewContact.DialogResult == DialogResult.OK)
                                    objConnection.AddContact(frmNewContact.Jid, frmNewContact.ContactName);
                    }
        }
示例#4
0
 /// <summary>
 ///		Log de datos de contacto
 /// </summary>
 private void LogContact(JabberContact objContact)
 {
     LogText($"[{DateTime.Now}] {objContact.FullName}:");
 }
示例#5
0
 /// <summary>
 ///		Inicializa el control
 /// </summary>
 public void InitControl(JabberConnection objConnection, JabberContact objContact)
 {
     Connection = objConnection;
     Contact = objContact;
 }
示例#6
0
        /// <summary>
        ///		Prepara el formulario para enviar un mensaje de chat
        /// </summary>
        private UC.Chat PrepareChat(JabberConnection objConnection, JabberContact objContact)
        {
            UC.Chat udtChat = null;

                // Añade u obtiene el control de chat adecuado
                    if (objConnection != null && objContact != null)
                        { int intIndex = GetChatTabIndex(objConnection, objContact);

                                if (intIndex >= 0)
                                    { // Selecciona el tab de chat
                                            tabChat.SelectedIndex = intIndex;
                                        // Obtiene el control
                                            foreach (Control ctlControl in tabChat.TabPages[intIndex].Controls)
                                                if (ctlControl is UC.Chat)
                                                    udtChat = ctlControl as UC.Chat;
                                    }
                                else
                                    { string strKey = GetChatKey(objConnection, objContact);

                                            // Crea un nuevo control de chat
                                                udtChat = new UC.Chat();
                                            // Inicaliza el control
                                                udtChat.InitControl(objConnection, objContact);
                                                udtChat.CloseRequest += (objSender, objEventArgs) =>
                                                                                                            { CloseChat(strKey);
                                                                                                            };
                                            // Lo añade a la ficha
                                                tabChat.TabPages.Add(objContact.Login);
                                                tabChat.TabPages[tabChat.TabPages.Count - 1].Controls.Add(udtChat);
                                                tabChat.TabPages[tabChat.TabPages.Count - 1].Tag = strKey;
                                                tabChat.SelectedIndex = tabChat.TabPages.Count - 1;
                                            // y por último ocupa toda la ficha
                                                udtChat.Dock = DockStyle.Fill;
                                    }
                        }
                // Devuelve el control
                    return udtChat;
        }
示例#7
0
 /// <summary>
 ///		Obtiene el índice de la ficha con el chat de un contacto
 /// </summary>
 private int GetChatTabIndex(JabberConnection objConnection, JabberContact objContact)
 {
     return GetChatTabIndex(GetChatKey(objConnection, objContact));
 }
示例#8
0
 /// <summary>
 ///		Obtiene la clave de una ficha de chat
 /// </summary>
 private string GetChatKey(JabberConnection objConnection, JabberContact objContact)
 {
     return $"{objConnection.Host.Address}_{objContact.FullJid}";
 }