/// <summary>
        /// Processa o resultado da execução.
        /// </summary>
        /// <param name="executeResult"></param>
        public PersistenceExecuteResultProcessResult Process(PersistenceExecuteResult executeResult)
        {
            var dynamicResult = executeResult as DynamicPersistenceExecuteResult;

            if (dynamicResult == null)
            {
                return(new PersistenceExecuteResultProcessResult(true, null));
            }
            var actions = dynamicResult.Actions;
            var result  = dynamicResult.ActionsResult;

            if (actions != null && actions.Length > 0 && result != null && result.Length > 0)
            {
                var actionsFixed = Colosoft.Data.Schema.PersistenceActionResultProcessor.FixActionsResults(actions, result).ToArray();
                var cacheResult  = _cacheExecuter.Execute(actionsFixed, dynamicResult.ExcutionType);
                if (!cacheResult.Success)
                {
                    var failAction     = cacheResult.ActionsResult.FirstOrDefault(f => f != null && !f.Success);
                    var failureMessage = failAction != null?failAction.GetRecursiveFailureMessage().GetFormatter() : MessageFormattable.Empty;

                    return(new PersistenceExecuteResultProcessResult(false, failureMessage));
                }
                actionsFixed = Colosoft.Data.Schema.PersistenceActionResultProcessor.FixActionsResults(actionsFixed, cacheResult.ActionsResult).ToArray();
                _actionResultProcessor.Process(actionsFixed);
            }
            return(new PersistenceExecuteResultProcessResult(true, null));
        }
Exemple #2
0
        /// <summary>
        /// Processa o resultado da execução.
        /// </summary>
        /// <param name="executeResult"></param>
        /// <returns></returns>
        public PersistenceExecuteResultProcessResult Process(PersistenceExecuteResult executeResult)
        {
            PersistenceExecuteResultProcessResult processResult = null;

            if (_persistenceExecuter is IPersistenceExecuteResultProcessor)
            {
                processResult = ((IPersistenceExecuteResultProcessor)_persistenceExecuter).Process(executeResult);
            }
            var wrapperResult = executeResult as PersistenceExecuteResultWrapper;
            var actions       = wrapperResult.Actions;
            var result        = wrapperResult.ActionsResult;

            if (actions != null && actions.Length > 0 && result != null && result.Length > 0)
            {
                var actionsFixed = Colosoft.Data.Schema.PersistenceActionResultProcessor.FixActionsResults(actions, result).ToArray();
                _actionResultProcessor.Process(actionsFixed);
            }
            if (processResult == null)
            {
                return(new PersistenceExecuteResultProcessResult(true, null));
            }
            return(processResult);
        }
Exemple #3
0
 /// <summary>
 /// Construtor padrãi.
 /// </summary>
 /// <param name="actions"></param>
 /// <param name="executionType"></param>
 /// <param name="executeResult"></param>
 public DynamicPersistenceExecuteResult(PersistenceAction[] actions, ExecutionType executionType, PersistenceExecuteResult executeResult)
 {
     _actions       = actions;
     _excutionType  = executionType;
     _executeResult = executeResult;
 }