void actualizarPropiedadLista(string propiedad, IValorEstado valor) { this.estadoValido = true; this.estadoEditado = false; if (hayReglasQueValidar()) // Si hay reglas que validar { Incumplimientos incumplimientos = this.reglas.Validar(propiedad, valor); // validarlas if (incumplimientos != null && incumplimientos.Conteo > 0) // si hubo incumplimientos { if (incumplimientos.Conteo > 0) { invalidarEstado(); // establecer estado como no-válido agregarIncumplimientosPropiedad(propiedad, incumplimientos); // agregar a Incumplimientos de Propiedad lanzarExcepcionValorInvalido(valor, incumplimientos); // lanzar excepción } else // si no hubo incumplimientos { this.incumplimientos.Eliminar(propiedad); // eliminar Propiedad de la lista } } } if (this.estadoValido) { actualizarLista(propiedad, valor); this.estadoEditado = true; // establecer estado como editado } }
public void Agregar(string propiedad, Incumplimientos incumplimientos) { if (this.entradas.ContainsKey(propiedad)) { Eliminar(propiedad); } this.entradas.Add(propiedad, incumplimientos); }
public Incumplimientos Validar(string propiedad, IValorEstado valor) { Incumplimientos incumplimientos = null; if (this.entradas.ContainsKey(propiedad)) { incumplimientos = new Incumplimientos(); bool valido = true; foreach (MetodoValidacion Regla in this.entradas[propiedad].Reglas) { valido &= Regla(valor, incumplimientos); } } return(incumplimientos); }
public ValorInvalido(string message, IValorEstado valor, Incumplimientos incumplimientos) : base(message) { this.valor = valor; this.incumplimientos = incumplimientos; }
void lanzarExcepcionValorInvalido(IValorEstado valor, Incumplimientos incumplimientos) { throw new ValorInvalido("Valor inválido", valor, incumplimientos); }
void agregarIncumplimientosPropiedad(string propiedad, Incumplimientos incumplimientos) { this.incumplimientos.Agregar(propiedad, incumplimientos); }