public void GuardarConductores() { try { App.Global.CalendariosVM.AñadirConductoresDesconocidos(); HayCambios = false; if (_listaborrados.Count > 0) { BdConductores.BorrarConductores(_listaborrados); _listaborrados.Clear(); } if (_regulacionesborradas.Count > 0) { BdRegulacionConductor.BorrarRegulaciones(_regulacionesborradas); _regulacionesborradas.Clear(); } if (ListaConductores != null && ListaConductores.Count > 0) { BdConductores.GuardarConductores(ListaConductores.Where(c => c.Nuevo || c.Modificado)); } // Si hay conductores con el id cero, avisamos. if (ListaConductores.Count(item => item.Id == 0) > 0) { mensajes.VerMensaje("Hay conductores no válidos que no han sido guardados.", "ATENCIÓN"); } } catch (Exception ex) { mensajes.VerError("ConductoresViewModel.GuardarConductores", ex); HayCambios = true; } }
public void CrearConductorDesconocido(int idConductor) { if (ExisteConductor(idConductor)) { return; } Conductor desconocido = new Conductor { Id = idConductor, Nombre = "Desconocido", Notas = "Conductor insertado automáticamente por el sistema." }; ListaConductores.Add(desconocido); }
// ==================================================================================================== #region MÉTODOS PÚBLICOS // ==================================================================================================== public void CargarConductores() { if (App.Global.CadenaConexion == null) { ListaConductores.Clear(); return; } ListaConductores = new NotifyCollection <Conductor>(BdConductores.GetConductores()); //foreach (Conductor c in ListaConductores) { // c.PropertyChanged += ConductorPropertyChangedHandler; //} PropiedadCambiada(nameof(Detalle)); }
internal async void Nuevo() { try { ConductorDTO c = await _webApiClient.CreateConductor(ConductorSelected); //Si el conductor devuelto !=null es porque se creo y lo añadimos a la collection observable if (c != null) { ListaConductores.Add(c); } else { MessageBox.Show("Conductor existente"); } } catch (WebApiException e) { MessageBox.Show(e.Message); } }
private void DeshacerBorrar() { if (_listaborrados == null) { return; } foreach (Conductor conductor in _listaborrados) { if (conductor.Nuevo) { ListaConductores.Add(conductor); } else { ListaConductores.Add(conductor); conductor.Nuevo = false; } HayCambios = true; App.Global.CalendariosVM.DeshacerBorrarPorConductor(conductor.Id); } _listaborrados.Clear(); }
private void Execute_AgregarCommand() { RegistrarConductorView registrarConductorView = new RegistrarConductorView(); registrarConductorView.ShowDialog(); if (registrarConductorView.isRegistered) { var newConductor = registrarConductorView.GetConductor(); try { //Primero se lo paso a la capa negocio para que lo registre, si lo registra, lo pongo en la capa Presentacion if (TransporteDR.ConductorBO.Registrar(newConductor)) { LoadData(); CurrentConductor = ListaConductores.FirstOrDefault(x => x.Dni == newConductor.Dni); MessageBox.Show($"{newConductor.Dni} Registrado con exito"); } else { MessageBox.Show("Algo ha ocurrido con el proceso de registro, por favor intentar de nuevo o reiniciar el computador.\nSi el problema persiste, contactar con el encargado del Sistema"); } } catch (Exception ex) { MessageBox.Show(ex.Message); if (!(ex.InnerException is null)) { MessageBox.Show(ex.InnerException.Message); } } } }
// Ejecución del comando private void BorrarConductor(object parametro) { DataGrid tabla = parametro as DataGrid; if (tabla == null || tabla.CurrentCell == null) { return; } List <Conductor> lista = new List <Conductor>(); DataGridCellInfo celda = tabla.CurrentCell; if (!(celda.Item is Conductor conductor)) { return; } if (mensajes.VerMensaje($"Vas a borrar al conductor:\n\n{conductor.Id:000}: {conductor.Apellidos}\n\n" + $"Esto hará que se borren todos sus calendarios.\n\n" + $"¿Deseas continuar?", "ATENCIÓN", true) == false) { return; } if (celda.Column.Header.ToString() == "Número" && celda.Item.GetType().Name == "Conductor") { lista.Add(conductor); } foreach (Conductor c in lista) { _listaborrados.Add(c); ListaConductores.Remove(c); HayCambios = true; } lista.Clear(); App.Global.CalendariosVM.BorrarCalendariosPorConductor(conductor.Id); //TODO: Esta última igual se elimina y se deja que sea el propio sistema el que se encargue de eliminar los calendarios. }
public void InsertarRegulacion(RegulacionConductor regulacion) { Conductor conductor = ListaConductores.First(c => c.Id == regulacion.IdConductor); conductor.ListaRegulaciones.Add(regulacion); }
public bool ExisteConductor(int idConductor) { return(ListaConductores.Any(c => c.Id == idConductor)); }
public Conductor GetConductor(int idconductor) { return(ListaConductores.FirstOrDefault(c => c.Id == idconductor)); }
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; } }