/// <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)); }
/// <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); }
/// <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; }