Exemple #1
0
        private void Pegar()
        {
            // Si no hay seleccionada una tabla
            if (TablaParaCopy == null || TablaParaCopy.CurrentCell == null)
            {
                return;
            }
            // Parseamos los datos del portapapeles y definimos las variables.
            List <string[]> portapapeles = Utils.parseClipboard();
            int             columnagrid;
            int             filagrid;
            bool            esnuevo;

            // Si no hay datos, salimos.
            if (portapapeles == null)
            {
                return;
            }
            // Establecemos la columna donde se empieza a pegar.
            columnagrid = TablaParaCopy.Columns.IndexOf(TablaParaCopy.CurrentCell.Column);
            filagrid    = TablaParaCopy.Items.IndexOf(TablaParaCopy.CurrentCell.Item);
            // Creamos un objeto ConvertidorHora y otro ConvertidorItinerario
            Convertidores.ConvertidorHora       cnvHora       = new Convertidores.ConvertidorHora();
            Convertidores.ConvertidorItinerario cnvItinerario = new Convertidores.ConvertidorItinerario();
            // Iteramos por las filas del portapapeles.
            foreach (string[] fila in portapapeles)
            {
                if (TablaSeleccionada == Tablas.Lineas)
                {
                    // Creamos un objeto Linea o reutilizamos el existente.
                    Linea linea;
                    if (filagrid < ListaLineas.Count)
                    {
                        linea   = ListaLineas[filagrid];
                        esnuevo = false;
                    }
                    else
                    {
                        linea   = new Linea();
                        esnuevo = true;
                    }
                    int columna = columnagrid;

                    foreach (string texto in fila)
                    {
                        if (columna >= TablaParaCopy.Columns.Count)
                        {
                            continue;
                        }
                        while (TablaParaCopy.Columns[columna].Visibility == Visibility.Collapsed)
                        {
                            columna++;
                        }
                        switch (columna)
                        {
                        case 0: linea.Nombre = texto; break;                                 // NOMBRE

                        case 1: linea.Descripcion = texto; break;                            //DESCRIPCIÓN
                        }
                        columna++;
                    }
                    if (esnuevo)
                    {
                        ListaLineas.Add(linea);
                    }
                    filagrid++;
                    HayCambios = true;
                }
                if (TablaSeleccionada == Tablas.Itinerarios)
                {
                    // Creamos un objeto Itinerario o reutilizamos el existente.
                    Itinerario itinerario;
                    if (filagrid < LineaSeleccionada.ListaItinerarios.Count)
                    {
                        itinerario = LineaSeleccionada.ListaItinerarios[filagrid];
                        esnuevo    = false;
                    }
                    else
                    {
                        itinerario = new Itinerario();
                        esnuevo    = true;
                    }
                    int columna = columnagrid;

                    foreach (string texto in fila)
                    {
                        if (columna >= TablaParaCopy.Columns.Count)
                        {
                            continue;
                        }
                        while (TablaParaCopy.Columns[columna].Visibility == Visibility.Collapsed)
                        {
                            columna++;
                        }
                        int i;
                        switch (columna)
                        {
                        case 0: itinerario.Nombre = (decimal)cnvItinerario.ConvertBack(texto, null, null, null); break; // NOMBRE

                        case 1: itinerario.Descripcion = texto; break;                                                  //DESCRIPCIÓN

                        case 2: itinerario.TiempoReal = int.TryParse(texto, out i) ? i : 0; break;                      //TIEMPO REAL

                        case 3: itinerario.TiempoPago = int.TryParse(texto, out i) ? i : 0; break;                      //TIEMPO PAGO
                        }
                        columna++;
                    }
                    if (esnuevo)
                    {
                        LineaSeleccionada.ListaItinerarios.Add(itinerario);
                    }
                    filagrid++;
                    HayCambios = true;
                }
                if (TablaSeleccionada == Tablas.Paradas)
                {
                    // Creamos un objeto Parada o reutilizamos el existente.
                    Parada parada;
                    if (filagrid < ItinerarioSeleccionado.ListaParadas.Count)
                    {
                        parada  = ItinerarioSeleccionado.ListaParadas[filagrid];
                        esnuevo = false;
                    }
                    else
                    {
                        parada  = new Parada();
                        esnuevo = true;
                    }
                    int columna = columnagrid;

                    foreach (string texto in fila)
                    {
                        if (columna >= TablaParaCopy.Columns.Count)
                        {
                            continue;
                        }
                        while (TablaParaCopy.Columns[columna].Visibility == Visibility.Collapsed)
                        {
                            columna++;
                        }
                        int i;
                        switch (columna)
                        {
                        case 0: parada.Orden = int.TryParse(texto, out i) ? i : 0; break;                      // ORDEN

                        case 1: parada.Descripcion = texto; break;                                             //DESCRIPCIÓN

                        case 2: parada.Tiempo = (TimeSpan)cnvHora.ConvertBack(texto, null, null, null); break; //TIEMPO
                        }
                        columna++;
                    }
                    if (esnuevo)
                    {
                        ItinerarioSeleccionado.ListaParadas.Add(parada);
                    }
                    filagrid++;
                    HayCambios = true;
                }
            }
        }
Exemple #2
0
        private void PegarConductores(object parametro)
        {
            // Convertimos el parámetro pasado.
            DataGrid grid = parametro as DataGrid;

            if (grid == null || grid.CurrentCell == null)
            {
                return;
            }
            // Parseamos los datos del portapapeles y definimos las variables.
            List <string[]> portapapeles = Utils.parseClipboard();
            int             columnagrid;
            int             filagrid;
            bool            esnuevo;

            // Si no hay datos, salimos.
            if (portapapeles == null)
            {
                return;
            }
            // Establecemos la columna donde se empieza a pegar.
            columnagrid = grid.Columns.IndexOf(grid.CurrentCell.Column);
            filagrid    = grid.Items.IndexOf(grid.CurrentCell.Item);
            // Creamos un objeto ConvertidorHora
            Convertidores.ConvertidorHora cnvHora = new Convertidores.ConvertidorHora();
            // Iteramos por las filas del portapapeles.
            foreach (string[] fila in portapapeles)
            {
                // Creamos un objeto Conductor o reutilizamos el existente.
                Conductor conductor;
                if (filagrid < ListaConductores.Count)
                {
                    conductor = ListaConductores[filagrid];
                    esnuevo   = false;
                }
                else
                {
                    conductor = new Conductor();
                    esnuevo   = true;
                }
                int columna = columnagrid;

                foreach (string texto in fila)
                {
                    while (grid.Columns[columna].Visibility == Visibility.Collapsed)
                    {
                        columna++;
                    }
                    int i;
                    switch (columna)
                    {
                    case 0:                             // Numero.
                        conductor.Id = int.TryParse(texto, out i) ? i : 0;
                        break;

                    case 1:                             // Nombre.
                        conductor.Nombre = texto;
                        break;

                    case 2:                             // Apellidos.
                        conductor.Apellidos = texto;
                        break;

                    case 3:                             // Telefono.
                        conductor.Telefono = texto;
                        break;

                    case 4:                             // Email.
                        conductor.Email = texto;
                        break;

                    case 5:                             // Fijo.
                        conductor.Indefinido = false;
                        if (int.TryParse(texto, out i))
                        {
                            conductor.Indefinido = (i != 0);
                        }
                        else if (texto.ToLower() != "false")
                        {
                            conductor.Indefinido = true;
                        }
                        break;

                    case 6:                             // Horas.
                        conductor.Acumuladas = (TimeSpan)cnvHora.ConvertBack(texto, null, null, null);
                        break;

                    case 7:                             // Descansos.
                        conductor.Descansos = int.TryParse(texto, out i) ? i : 0;
                        break;

                    case 8:                             // Descansos No Disfrutados.
                        conductor.DescansosNoDisfrutados = int.TryParse(texto, out i) ? i : 0;
                        break;
                    }
                    columna++;
                }
                if (esnuevo)
                {
                    ListaConductores.Add(conductor);
                }
                filagrid++;
                HayCambios = true;
            }
        }