예제 #1
0
        /// <summary>
        /// Crear una nueva tarea. Envía un query POST para crear la tarea en el backend.
        /// Si la respuesta es favorable, agrega la tarea a la interfaz.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void NuevaTarea(object sender, EventArgs e)
        {
            Job tarea = new Job(Cliente.Id);

            using (var httpClient = new HttpClient())
            {
                httpClient.BaseAddress = new Uri(Form1.DIRECCION_SERVIDOR);
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(Form1.APP_JSON));
                if (Form1.Sesion != null)
                {
                    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Form1.Sesion.access_token);
                }
                HttpResponseMessage response = await httpClient.PostAsJsonAsync(Form1.RUTA_TAREAS, tarea);

                if (response.IsSuccessStatusCode)
                {
                    tarea = await response.Content.ReadAsAsync <Job>(); // Esto se hace para obtener el Id asignado por el servidor.

                    TareaControl control = new TareaControl(tarea);
                    AgregarControlTarea(control);
                    control.EnfocarEnNombre();
                }
                else
                {
                    MessageBox.Show("No fue posible guardar la nueva tarea en la base de datos. Revise si el servidor está disponible.", "Error al comunicarse con el servidor");
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Agrega un controlTarea al tableLayout correspondiente.
        /// Coloca el controlador en una tabla nueva.
        /// </summary>
        /// <param name="tarea"></param>
        public void AgregarControlTarea(TareaControl 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 contacto.
            if (!hayTareas)
            {
                hayTareas = true;
            }
            else
            {
                tableLayoutTareas.RowCount++;
            }

            tableLayoutTareas.Controls.Add(control, 0, tableLayoutTareas.RowCount - 1);
            Form1.controlesTareas.Add(control);
        }