Exemple #1
0
        /// <summary>
        /// Realiza a validaçao da sessão informada.
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public PersistenceSessionValidateResult Validate(PersistenceSession session)
        {
            var state  = new ValidationState(this);
            var result = new PersistenceSessionValidateResult();

            foreach (var action in session)
            {
                NavigatePersistenceAction(action, state, result);
            }
            return(result);
        }
Exemple #2
0
 /// <summary>
 /// Navega pelas as ações.
 /// </summary>
 /// <param name="action">Instancia da ação.</param>
 /// <param name="state">Estado que está sendo usado na validação.</param>
 /// <param name="result">Resultado da validação.</param>
 private void NavigatePersistenceAction(PersistenceAction action, ValidationState state, PersistenceSessionValidateResult result)
 {
     if (action.Type == PersistenceActionType.Insert)
     {
         int virtualId = 0;
         PersistenceAction   duplicateAction = null;
         IMessageFormattable message         = null;
         if (!state.ValidateInsertionAction(action, out virtualId, out duplicateAction, out message))
         {
             result.AddError(action, message);
         }
     }
     foreach (var i in action.BeforeActions)
     {
         NavigatePersistenceAction(i, state, result);
     }
     foreach (var i in action.AfterActions)
     {
         NavigatePersistenceAction(i, state, result);
     }
 }