/// <summary>
        /// Gestiona el evento selectionChanged del cbTecnicos, de forma que al seleccionar un técnico
        /// carga la ventana <see cref="VentanaAsignarTecnico"/> para confirmar que se desea asignar el ticket
        /// a dicho técnico, en caso afirmativo, se actualiza la base de datos con los valores.
        /// <example>
        /// El combobox de técnicos tiene el siguiente formato:
        /// 1.-Alberto Moreno Fernández
        /// 2.-Dario Hernández Robledo.
        /// Por lo que por medio de manipulación de cadenas, podemos obtener el idTecnico, que es lo que va antes de .-
        /// </example>
        /// el formato del list<string> del combobox puede verse en <see cref="TicketsPendientes"/> que es donde se forma
        /// la clase auxiliar con los campos que necesitamos para visualizar en formato amigable el datagrid resumen de esta ventana.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CbTecnicos_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            limpiarBarra();
            try
            {
                //Obtenemos el idUsuario
                string nombreTecnico = ((ComboBox)sender).SelectedItem.ToString();
                int    idUsuario     = int.Parse(nombreTecnico.Split('.')[0]);

                // a partir del idUsuario podemos obtener el idTecnico
                int idTecnico = (int)Negocio.ObtenerTecnico(idUsuario).IdTecnico;

                // obtenemos el nombre del técnico.
                string tecnico = nombreTecnico.Split('-')[1];

                ticketActual = (TicketsPendientes)dgTickesPendientes.SelectedItem;
                VentanaAsignarTecnico modal = new VentanaAsignarTecnico(idTecnico, (int)ticketActual.Id, tecnico);
                modal.ShowDialog();
                if (modal.DialogResult == true)
                {
                    List <TicketsPendientes> listaAuxiliar = listaPendientes.Where(x => x.Id != ticketActual.Id).ToList();
                    listaPendientes.Clear();
                    foreach (TicketsPendientes tick in listaAuxiliar)
                    {
                        listaPendientes.Add(tick);
                    }
                    pieChart.DataContext = Negocio.obtenerTicketsAsignados();
                }
            }
            catch (IOException error)
            {
                statusBar.Background     = Brushes.IndianRed;
                tbStatusInformation.Text = error.Message;
            }
        }
        //--------------------------------------------------------------------------------FUNCIONES ASOCIADAS A EVENTOS---------------------------------------------------------------------------

        /// <summary>
        /// Cada vez que se carga una fila en el datagrid verífica si el ticket lleva más de 4 horas abierto
        /// y en caso de estarlo, lo representa con un color rojo.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void DgTickesPendientes_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            DataGridRow       tick   = e.Row;
            TicketsPendientes tiquet = (TicketsPendientes)tick.DataContext;

            if (tiquet.FechaEntrada <= DateTime.Now.AddHours(-TIEMPO_SLA))
            {
                e.Row.Background = rojoTenue;
            }
        }