public ValidationResult Validate(IMaintanState fAO) { foreach (var validation in Validations) { var result = validation.Validate(fAO); if (!result.IsValid) { return(result); } } return(ValidationResult.AsValid()); }
public bool ChangeState(IMaintanState fAO, State newState) { var change = Changes.FirstOrDefault( c => c.InitialState == fAO.State && c.FinalState == newState); if (change == null) { throw new Exception("Cambio de estado no admitido"); } var result = change.Validate(fAO); if (result.IsValid) { return(true); } throw new Exception(result.Message); }