private GeneratorResult GenerateInternal() { var generatorResults = new GeneratorResult(); var actions = arguments.TemplateInformation.Actions.ToList(); var taskCounter = 0; foreach (var action in actions) { var allowContinue = true; var actionClass = GetActionFromTypeName(action.ActionType); progress((int)((100 / (double)actions.Count) * taskCounter), "Executing action: " + actionClass.ActionName); GeneratorActionResult actionResults = null; try { actionResults = actionClass.ExecuteAction(arguments, arguments.InputValues, action.Parameters); } catch (Exception ex) { allowContinue = false; progress(-1, string.Format("Action '{0}' failed with message: {1}", actionClass.ActionName, ex.Message)); } taskCounter++; if (allowContinue && (actionResults == null || actionResults.OperationSuccesfull)) { if (!continueAllowed.Invoke()) { generatorResults.LastAction = actionClass; generatorResults.OperationSuccesfull = false; Rollback(actions, actionClass); return generatorResults; } continue; } if (actionClass.AllowContinueAfterError) progress(-1, string.Format("Action '{0}' failed, but is allowed to continue.", actionClass.ActionName)); else { generatorResults.LastAction = actionClass; generatorResults.OperationSuccesfull = false; Rollback(actions, actionClass); return generatorResults; } } // Complete report progress(100, ""); generatorResults.OperationSuccesfull = true; return generatorResults; }
private GeneratorResult GenerateInternal() { var generatorResults = new GeneratorResult(); var actions = arguments.TemplateInformation.Actions.ToList(); var taskCounter = 0; foreach (var action in actions) { var allowContinue = true; var actionClass = GetActionFromTypeName(action.ActionType); progress((int)((100 / (double)actions.Count) * taskCounter), "Executing action: " + actionClass.ActionName); GeneratorActionResult actionResults = null; try { actionResults = actionClass.ExecuteAction(arguments, arguments.InputValues, action.Parameters); } catch (Exception ex) { allowContinue = false; progress(-1, string.Format("Action '{0}' failed with message: {1}", actionClass.ActionName, ex.Message)); } taskCounter++; if (allowContinue && (actionResults == null || actionResults.OperationSuccesfull)) { if (!continueAllowed.Invoke()) { generatorResults.LastAction = actionClass; generatorResults.OperationSuccesfull = false; Rollback(actions, actionClass); return(generatorResults); } continue; } if (actionClass.AllowContinueAfterError) { progress(-1, string.Format("Action '{0}' failed, but is allowed to continue.", actionClass.ActionName)); } else { generatorResults.LastAction = actionClass; generatorResults.OperationSuccesfull = false; Rollback(actions, actionClass); return(generatorResults); } } // Complete report progress(100, ""); generatorResults.OperationSuccesfull = true; return(generatorResults); }