public void WarewolfListIterator_AddVariableToIterateOn_Should() { _expr3 = new WarewolfIterator(_environment.Eval("[[RecSet()]]", 0)); Assert.IsNotNull(_warewolfListIterator); var privateObj = new PrivateObject(_warewolfListIterator); var variablesToIterateOn = privateObj.GetField("_variablesToIterateOn") as List <IWarewolfIterator>; Assert.IsNotNull(variablesToIterateOn); Assert.AreEqual(2, variablesToIterateOn.Count); _warewolfListIterator.AddVariableToIterateOn(_expr3); Assert.AreEqual(3, variablesToIterateOn.Count); }
public void TestInitialize() { _environment = new ExecutionEnvironment(); _warewolfListIterator = new WarewolfListIterator(); _environment.Assign(Result, "Success", 0); _expr1 = new WarewolfIterator(_environment.Eval(Result, 0)); _expr2 = new WarewolfIterator(_environment.Eval("[[@Parent()]]", 0)); _warewolfListIterator.AddVariableToIterateOn(_expr1); _warewolfListIterator.AddVariableToIterateOn(_expr2); }
private void BuildParameterIterators(int update, IEnumerable <MethodParameter> inputs, IWarewolfListIterator itrCollection, ICollection <IWarewolfIterator> itrs) { if (string.IsNullOrEmpty(InstanceInputDefinitions)) { if (Inputs != null) { foreach (var sai in Inputs) { string val = sai.Name; string toInject = null; if (val != null) { toInject = sai.Value; } else if (!sai.EmptyIsNull) { toInject = ""; } var paramIterator = new WarewolfIterator(DataObj.Environment.Eval(toInject, update)); itrCollection.AddVariableToIterateOn(paramIterator); itrs.Add(paramIterator); } } return; } var inputDefs = DataListFactory.CreateInputParser().Parse(InstanceInputDefinitions); foreach (MethodParameter sai in inputs) { string val = sai.Name; string toInject = "NULL"; if (val != null) { var sai1 = sai; var dev2Definitions = inputDefs.Where(definition => definition.Name == sai1.Name); var definitions = dev2Definitions as IDev2Definition[] ?? dev2Definitions.ToArray(); if (definitions.Length == 1) { toInject = DataListUtil.IsEvaluated(definitions[0].RawValue) ? DataListUtil.AddBracketsToValueIfNotExist(definitions[0].RawValue) : definitions[0].RawValue; } } else if (!sai.EmptyToNull) { toInject = sai.DefaultValue; } var paramIterator = new WarewolfIterator(DataObj.Environment.Eval(toInject, update)); itrCollection.AddVariableToIterateOn(paramIterator); itrs.Add(paramIterator); } }
protected void BuildParameterIterators(int update, List <MethodParameter> inputs, IWarewolfListIterator itrCollection, List <IWarewolfIterator> itrs, IDSFDataObject dataObject) { if (inputs != null) { foreach (var sai in inputs) { var val = sai.Name; string toInject = null; if (val != null) { toInject = sai.Value; } var paramIterator = new WarewolfIterator(dataObject.Environment.Eval(toInject, update)); itrCollection.AddVariableToIterateOn(paramIterator); itrs.Add(paramIterator); } } }
List <IWarewolfIterator> GetIteratorsFromInputMappings(IDSFDataObject dataObject, IWarewolfListIterator iteratorCollection, out ErrorResultTO errorsResultTo, int update) { errorsResultTo = new ErrorResultTO(); var listOfIterators = new List <IWarewolfIterator>(); var indexCounter = 1; foreach (var row in InputMappings) { try { ExecutionEnvironment.IsValidRecordSetIndex(row.InputColumn); } catch (Exception) { errorsResultTo.AddError(ErrorResource.InvalidRecordset + row.InputColumn); } if (string.IsNullOrEmpty(row.InputColumn)) { continue; } if (dataObject.IsDebugMode()) { AddDebugInputItem(row.InputColumn, row.OutputColumn.ColumnName, dataObject.Environment, row.OutputColumn.DataTypeName, indexCounter, update); indexCounter++; } try { var itr = new WarewolfIterator(dataObject.Environment.Eval(row.InputColumn, update)); iteratorCollection.AddVariableToIterateOn(itr); listOfIterators.Add(itr); } catch (Exception e) { errorsResultTo.AddError(e.Message); } } return(listOfIterators); }
void AddInput(int update, IWarewolfListIterator itrCollection, ICollection <IWarewolfIterator> itrs, IServiceInput sai) { var val = sai.Name; string toInject = null; if (val != null) { toInject = sai.Value; } else { if (!sai.EmptyIsNull) { toInject = ""; } } var paramIterator = new WarewolfIterator(DataObj.Environment.Eval(toInject, update)); itrCollection.AddVariableToIterateOn(paramIterator); itrs.Add(paramIterator); }
protected override IList<OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors, int update) { IList<OutputTO> outputs = new List<OutputTO>(); allErrors = new ErrorResultTO(); ColItr = new WarewolfListIterator(); //get all the possible paths for all the string variables var inputItr = new WarewolfIterator(dataObject.Environment.Eval(InputPath, update)); ColItr.AddVariableToIterateOn(inputItr); var outputItr = new WarewolfIterator(dataObject.Environment.Eval(OutputPath, update)); ColItr.AddVariableToIterateOn(outputItr); var unameItr = new WarewolfIterator(dataObject.Environment.Eval(Username, update)); ColItr.AddVariableToIterateOn(unameItr); var passItr = new WarewolfIterator(dataObject.Environment.Eval(DecryptedPassword,update)); ColItr.AddVariableToIterateOn(passItr); var desunameItr = new WarewolfIterator(dataObject.Environment.Eval(DestinationUsername, update)); ColItr.AddVariableToIterateOn(desunameItr); var despassItr = new WarewolfIterator(dataObject.Environment.Eval(DecryptedDestinationPassword,update)); ColItr.AddVariableToIterateOn(despassItr); AddItemsToIterator(dataObject.Environment, update); outputs.Add(DataListFactory.CreateOutputTO(Result)); if(dataObject.IsDebugMode()) { AddDebugInputItem(new DebugEvalResult(InputPath, "Source Path", dataObject.Environment, update)); AddDebugInputItemUserNamePassword(dataObject.Environment, update); AddDebugInputItem(new DebugEvalResult(OutputPath, "Destination Path", dataObject.Environment, update)); AddDebugInputItemDestinationUsernamePassword(dataObject.Environment, DestinationPassword, DestinationUsername, update); AddDebugInputItem(new DebugItemStaticDataParams(Overwrite.ToString(), "Overwrite")); AddDebugInputItems(dataObject.Environment, update); } while(ColItr.HasMoreData()) { var hasError = false; IActivityIOPath src = null; IActivityIOPath dst = null; try { src = ActivityIOFactory.CreatePathFromString(ColItr.FetchNextValue(inputItr), ColItr.FetchNextValue(unameItr), ColItr.FetchNextValue(passItr), true); } catch(IOException ioException) { allErrors.AddError("Source: " + ioException.Message); hasError = true; } try { dst = ActivityIOFactory.CreatePathFromString(ColItr.FetchNextValue(outputItr), ColItr.FetchNextValue(desunameItr), ColItr.FetchNextValue(despassItr), true); } catch(IOException ioException) { allErrors.AddError("Destination:" + ioException.Message); hasError = true; } if(hasError) { outputs[0].OutputStrings.Add(null); MoveRemainingIterators(); continue; } IActivityIOOperationsEndPoint scrEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(src); IActivityIOOperationsEndPoint dstEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(dst); try { IActivityOperationsBroker broker = GetOperationBroker(); var result = ExecuteBroker(broker, scrEndPoint, dstEndPoint); outputs[0].OutputStrings.Add(result); } catch(Exception e) { allErrors.AddError(e.Message); outputs[0].OutputStrings.Add(null); } } return outputs; }
protected override IList <OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors, int update) { IList <OutputTO> outputs = new List <OutputTO>(); allErrors = new ErrorResultTO(); ColItr = new WarewolfListIterator(); //get all the possible paths for all the string variables var inputItr = new WarewolfIterator(dataObject.Environment.Eval(InputPath, update)); ColItr.AddVariableToIterateOn(inputItr); var outputItr = new WarewolfIterator(dataObject.Environment.Eval(OutputPath, update)); ColItr.AddVariableToIterateOn(outputItr); var unameItr = new WarewolfIterator(dataObject.Environment.Eval(Username, update)); ColItr.AddVariableToIterateOn(unameItr); var passItr = new WarewolfIterator(dataObject.Environment.Eval(DecryptedPassword, update)); ColItr.AddVariableToIterateOn(passItr); var desunameItr = new WarewolfIterator(dataObject.Environment.Eval(DestinationUsername, update)); ColItr.AddVariableToIterateOn(desunameItr); var despassItr = new WarewolfIterator(dataObject.Environment.Eval(DecryptedDestinationPassword, update)); ColItr.AddVariableToIterateOn(despassItr); AddItemsToIterator(dataObject.Environment, update); outputs.Add(DataListFactory.CreateOutputTO(Result)); if (dataObject.IsDebugMode()) { AddDebugInputItem(new DebugEvalResult(InputPath, "Source Path", dataObject.Environment, update)); AddDebugInputItemUserNamePassword(dataObject.Environment, update); AddDebugInputItem(new DebugEvalResult(OutputPath, "Destination Path", dataObject.Environment, update)); AddDebugInputItemDestinationUsernamePassword(dataObject.Environment, DestinationPassword, DestinationUsername, update); AddDebugInputItem(new DebugItemStaticDataParams(Overwrite.ToString(), "Overwrite")); AddDebugInputItems(dataObject.Environment, update); } while (ColItr.HasMoreData()) { var hasError = false; IActivityIOPath src = null; IActivityIOPath dst = null; try { src = ActivityIOFactory.CreatePathFromString(ColItr.FetchNextValue(inputItr), ColItr.FetchNextValue(unameItr), ColItr.FetchNextValue(passItr), true); } catch (IOException ioException) { allErrors.AddError("Source: " + ioException.Message); hasError = true; } try { dst = ActivityIOFactory.CreatePathFromString(ColItr.FetchNextValue(outputItr), ColItr.FetchNextValue(desunameItr), ColItr.FetchNextValue(despassItr), true); } catch (IOException ioException) { allErrors.AddError("Destination:" + ioException.Message); hasError = true; } if (hasError) { outputs[0].OutputStrings.Add(null); MoveRemainingIterators(); continue; } IActivityIOOperationsEndPoint scrEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(src); IActivityIOOperationsEndPoint dstEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(dst); try { IActivityOperationsBroker broker = GetOperationBroker(); var result = ExecuteBroker(broker, scrEndPoint, dstEndPoint); outputs[0].OutputStrings.Add(result); } catch (Exception e) { allErrors.AddError(e.Message); outputs[0].OutputStrings.Add(null); } } return(outputs); }