/// <summary> /// Agrega el Control Contacto pasado como parámetro al layout del fondo. /// Lo introduce en una nueva fila. /// </summary> /// <param name="control"></param> void AgregarContactoControl(ContactoControl control) { // La sentencia if es para que no se cree una nueva fila si exiten filas vacías // disponibles donde se puede poner el nuevo cliente. if (vacio) { vacio = false; } else { tableLayoutClientes.RowCount++; } tableLayoutClientes.Controls.Add(control, 0, tableLayoutClientes.RowCount - 1); controlesContactos.Add(control); }
// ------------------------------------------------------------------ // Métodos // ------------------------------------------------------------------ /// <summary> /// Añade un nuevo contacto en el tablelayout de contactos. /// Un contacto por fila. /// </summary> /// <param name="contacto"></param> public void AgregarControlContacto(Contact contacto) { TableLayoutPanel tablaFondo = tableLayoutContactos; // La sentencia if es para que no se cree una nueva fila si exiten filas vacías // disponibles donde se puede poner el nuevo contacto. if (!hayContactos) { hayContactos = true; } else { tablaFondo.RowCount++; } var control = new ContactoControl(contacto); tablaFondo.Controls.Add(control, 0, tablaFondo.RowCount - 1); Form1.controlesContactos.Add(control); }
/// <summary> /// Obtiene todos los contactos asociados con el usuario. Utiliza un query GET. /// </summary> private async void CargarContactos(string ruta) { LimpiarListas(); cargando = true; toolStripLabelMensaje.Text = CARGANDO; using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(DIRECCION_SERVIDOR); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(APP_JSON)); if (Sesion != null) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Sesion.access_token); } HttpResponseMessage response = await httpClient.GetAsync(ruta); if (response.IsSuccessStatusCode) { Contact[] contactos = await response.Content.ReadAsAsync <Contact[]>(); foreach (var contacto in contactos) { var control = new ContactoControl(contacto); AgregarContactoControl(control); } } else { toolStripLabelMensaje.Text = "Respuesta negativa del servidor"; } cargando = false; MinimizarControles(); toolStripLabelMensaje.Text = "Conectado como: " + Sesion.userName; } }