Example #1
0
        private void DeshacerBorrar()
        {
            if (ItinerarioSeleccionado != null)
            {
                foreach (Parada p in ItinerarioSeleccionado.ParadasBorradas)
                {
                    if (p.Nuevo)
                    {
                        ItinerarioSeleccionado.ListaParadas.Add(p);
                    }
                    else
                    {
                        ItinerarioSeleccionado.ListaParadas.Add(p);
                        p.Nuevo = false;
                    }
                }
                ItinerarioSeleccionado.ParadasBorradas.Clear();
            }

            if (LineaSeleccionada != null)
            {
                foreach (Itinerario i in LineaSeleccionada.ItinerariosBorrados)
                {
                    if (i.Nuevo)
                    {
                        LineaSeleccionada.ListaItinerarios.Add(i);
                    }
                    else
                    {
                        LineaSeleccionada.ListaItinerarios.Add(i);
                        i.Nuevo = false;
                    }
                }
                LineaSeleccionada.ItinerariosBorrados.Clear();
            }

            if (_listalineasborradas != null)
            {
                foreach (Linea l in _listalineasborradas)
                {
                    if (l.Nuevo)
                    {
                        ListaLineas.Add(l);
                    }
                    else
                    {
                        ListaLineas.Add(l);
                        l.Nuevo = false;
                    }
                }
                _listalineasborradas.Clear();
            }

            HayCambios = true;
        }
Example #2
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;
                }
            }
        }