public FormacionAttr(Formacion formacion, Repositorio repositorio) { InitializeComponent(); pFormacion = formacion; validables.Add(new Validator <Formacion>(pFormacion, ReglaConcreta <Formacion> .dePresencia(unaFormacion => unaFormacion.Nombre), errorNombreLbl, bindingSourceFormacion)); validables.Add(new Validator <Formacion>(pFormacion, ReglaConcreta <Formacion> .dePositivo(unaFormacion => unaFormacion.KilometrosMantenimiento), errorDistanciaLbl, bindingSourceFormacion)); validables.Add(new Validator <Formacion>(pFormacion, ReglaConcreta <Formacion> .dePositivo(unaFormacion => unaFormacion.DuracionMantenimiento), errorTiempoManteLbl, bindingSourceFormacion)); validables.Add(new Validator <Formacion>(pFormacion, new ReglaConcreta <Formacion>(unaFormacion => unaFormacion.TiposCoche.Keys.Count > 0, "Debe tener por lo menos un tipo de coche"), errorCochesLbl)); cochesListados = AgrupacionCoche.From(formacion.TiposCoche); var modelos = repositorio.Listar <Coche>(); modeloCbo.Items.AddRange(modelos.ToArray()); validablesParaLista.Add(new Validator <AgrupacionCoche>(pCocheEditando, ReglaConcreta <AgrupacionCoche> .dePositivo(unaAgrupacionCoche => unaAgrupacionCoche.Cantidad), errorCantidadLbl)); validablesParaLista.Add(new Validator <AgrupacionCoche>(pCocheEditando, new ReglaCompuesta <AgrupacionCoche>(new List <Regla <AgrupacionCoche> > { new ReglaConcreta <AgrupacionCoche>(unaAgrupacion => unaAgrupacion.Coche != null, "Este campo es requerido"), new ReglaConcreta <AgrupacionCoche>(unaAgrupacion => cochesListados.TrueForAll(otraAgrupacion => !unaAgrupacion.Coche.Equals(otraAgrupacion.Coche)), "No se puede usar el mismo tipo\n de coche dos veces") }), errorModeloLbl)); bindingSourceFormacion.DataSource = pFormacion; bindingSourceCocheEditando.DataSource = pCocheEditando; this.dibujarListado(); distanciaManteField.IsNumeric = true; tiempoEnManteField.IsNumeric = true; cantidadCocheField.IsNumeric = true; }
public RenglonDeAgrupacionCoche(AgrupacionCoche agrupacion, DelAgrupacion handleRemove) { InitializeComponent(); this.Agrupacion = agrupacion; this.modeloLbl.Text = agrupacion.Coche.Modelo; this.cantidadLbl.Text = agrupacion.Cantidad.ToString(); this.handleRemove = handleRemove; }
public bool applyTo(Formacion formacion) { this.pFormacion.TiposCoche = AgrupacionCoche.ToDictionary(cochesListados); validables.ForEach(validable => validable.mostrarError()); return(validables.TrueForAll(validable => validable.esValido())); }
private void onCocheRemove(AgrupacionCoche agrupacion) { this.cochesListados.Remove(agrupacion); this.dibujarListado(); }
private Control renglonDe(AgrupacionCoche agrupacionCoche) { return(new RenglonDeAgrupacionCoche(agrupacionCoche, this.onCocheRemove)); }