Esempio n. 1
0
        public ValidationResult Validate(IMaintanState fAO)
        {
            foreach (var validation in Validations)
            {
                var result = validation.Validate(fAO);

                if (!result.IsValid)
                {
                    return(result);
                }
            }

            return(ValidationResult.AsValid());
        }
Esempio n. 2
0
        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);
        }