protected override IList<OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors, int update) { IList<OutputTO> outputs = new List<OutputTO>(); allErrors = new ErrorResultTO(); var colItr = new WarewolfListIterator(); //get all the possible paths for all the string variables 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 privateKeyItr = new WarewolfIterator(dataObject.Environment.Eval(PrivateKeyFile, update)); colItr.AddVariableToIterateOn(privateKeyItr); if(dataObject.IsDebugMode()) { AddDebugInputItem(new DebugEvalResult(OutputPath, "File or Folder", dataObject.Environment, update)); AddDebugInputItem(new DebugItemStaticDataParams(Overwrite.ToString(), "Overwrite")); AddDebugInputItemUserNamePassword(dataObject.Environment, update); if (!string.IsNullOrEmpty(PrivateKeyFile)) { AddDebugInputItem(PrivateKeyFile, "Destination Private Key File", dataObject.Environment, update); } } while(colItr.HasMoreData()) { IActivityOperationsBroker broker = ActivityIOFactory.CreateOperationsBroker(); Dev2CRUDOperationTO opTo = new Dev2CRUDOperationTO(Overwrite); try { IActivityIOPath dst = ActivityIOFactory.CreatePathFromString(colItr.FetchNextValue(outputItr), colItr.FetchNextValue(unameItr), colItr.FetchNextValue(passItr), true, colItr.FetchNextValue(privateKeyItr)); IActivityIOOperationsEndPoint dstEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(dst); string result = broker.Create(dstEndPoint, opTo, true); outputs.Add(DataListFactory.CreateOutputTO(Result, result)); } catch(Exception e) { outputs.Add(DataListFactory.CreateOutputTO(Result, "Failure")); allErrors.AddError(e.Message); break; } } return outputs; }
protected override IList<OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors, int update) { IList<OutputTO> outputs = new List<OutputTO>(); allErrors = new ErrorResultTO(); var 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 unameItr = new WarewolfIterator(dataObject.Environment.Eval(Username, update)); colItr.AddVariableToIterateOn(unameItr); var passItr = new WarewolfIterator(dataObject.Environment.Eval(DecryptedPassword,update)); colItr.AddVariableToIterateOn(passItr); var privateKeyItr = new WarewolfIterator(dataObject.Environment.Eval(PrivateKeyFile, update)); colItr.AddVariableToIterateOn(privateKeyItr); outputs.Add(DataListFactory.CreateOutputTO(Result)); if(dataObject.IsDebugMode()) { AddDebugInputItem(InputPath, "Input Path", dataObject.Environment, update); AddDebugInputItemUserNamePassword(dataObject.Environment, update); if(!string.IsNullOrEmpty(PrivateKeyFile)) { AddDebugInputItem(PrivateKeyFile, "Private Key File", dataObject.Environment, update); } } while(colItr.HasMoreData()) { IActivityOperationsBroker broker = ActivityIOFactory.CreateOperationsBroker(); IActivityIOPath ioPath = ActivityIOFactory.CreatePathFromString(colItr.FetchNextValue(inputItr), colItr.FetchNextValue(unameItr), colItr.FetchNextValue(passItr), true, colItr.FetchNextValue(privateKeyItr)); IActivityIOOperationsEndPoint endpoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(ioPath); try { string result = broker.Get(endpoint); outputs[0].OutputStrings.Add(result); } catch(Exception e) { outputs[0].OutputStrings.Add(null); allErrors.AddError(e.Message); break; } } return outputs; }
IEnumerable<string> BuildQueryFromTo(SharepointSearchTo sharepointSearchTo, IExecutionEnvironment env, ISharepointFieldTo sharepointFieldTo,int update) { WarewolfIterator iterator = new WarewolfIterator(env.Eval(sharepointSearchTo.ValueToMatch,update)); while (iterator.HasMoreData()) { var fieldType = sharepointFieldTo.GetFieldType(); yield return string.Format("{0}<FieldRef Name=\"{1}\"></FieldRef><Value Type=\"{2}\">{3}</Value>{4}", SharepointSearchOptions.GetStartTagForSearchOption(sharepointSearchTo.SearchType), sharepointSearchTo.InternalName, fieldType, CastWarewolfValueToCorrectType(iterator.GetNextValue(), sharepointFieldTo.Type), SharepointSearchOptions.GetEndTagForSearchOption(sharepointSearchTo.SearchType)); } }
protected override IList<OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors) { IList<OutputTO> outputs = new List<OutputTO>(); allErrors = new ErrorResultTO(); var colItr = new WarewolfListIterator(); //get all the possible paths for all the string variables var inputItr = new WarewolfIterator(dataObject.Environment.Eval(InputPath)); colItr.AddVariableToIterateOn(inputItr); var unameItr = new WarewolfIterator(dataObject.Environment.Eval(Username)); colItr.AddVariableToIterateOn(unameItr); var passItr = new WarewolfIterator(dataObject.Environment.Eval(Password)); colItr.AddVariableToIterateOn(passItr); outputs.Add(DataListFactory.CreateOutputTO(Result)); if(dataObject.IsDebugMode()) { AddDebugInputItem(InputPath, "Input Path", dataObject.Environment); AddDebugInputItemUserNamePassword(dataObject.Environment); } while(colItr.HasMoreData()) { IActivityOperationsBroker broker = ActivityIOFactory.CreateOperationsBroker(); try { IActivityIOPath dst = ActivityIOFactory.CreatePathFromString(colItr.FetchNextValue(inputItr), colItr.FetchNextValue(unameItr), colItr.FetchNextValue(passItr), true); IActivityIOOperationsEndPoint dstEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(dst); string result = broker.Delete(dstEndPoint); outputs[0].OutputStrings.Add(result); } catch(Exception e) { outputs.Add(DataListFactory.CreateOutputTO(Result, "Failure")); //outputs[0].OutputStrings.Add(null); allErrors.AddError(e.Message); break; } } return outputs; }
public void PerformLogExecution(string logUri, int update) { var expressionsEntry = DataObject.Environment.Eval(logUri, update); var itr = new WarewolfIterator(expressionsEntry); while (itr.HasMoreData()) { var val = itr.GetNextValue(); { var buildGetWebRequest = BuildSimpleGetWebRequest(val); if (buildGetWebRequest == null) { throw new Exception("Invalid Url to execute for logging"); } buildGetWebRequest.UseDefaultCredentials = true; ExecuteWebRequestAsync(buildGetWebRequest); } } }
public static string GetJsonOutputFromEnvironment(IDSFDataObject dataObject,string dataList,int update) { var environment = dataObject.Environment; var dataListTO = new DataListTO(dataList); StringBuilder result = new StringBuilder("{"); var keyCnt = 0; var scalarOutputs = dataListTO.Outputs.Where(s => !DataListUtil.IsValueRecordset(s)); var recSetOutputs = dataListTO.Outputs.Where(DataListUtil.IsValueRecordset); var groupedRecSets = recSetOutputs.GroupBy(DataListUtil.ExtractRecordsetNameFromValue); var recSets = groupedRecSets as IGrouping<string, string>[] ?? groupedRecSets.ToArray(); foreach (var groupedRecSet in recSets) { var i = 0; var warewolfListIterators = new WarewolfListIterator(); Dictionary<string, IWarewolfIterator> iterators = new Dictionary<string, IWarewolfIterator>(); foreach (var name in groupedRecSet) { var warewolfIterator = new WarewolfIterator(environment.Eval(name, update,false)); iterators.Add(DataListUtil.ExtractFieldNameFromValue(name), warewolfIterator); warewolfListIterators.AddVariableToIterateOn(warewolfIterator); } result.Append("\""); result.Append(groupedRecSet.Key); result.Append("\" : ["); while (warewolfListIterators.HasMoreData()) { int colIdx = 0; result.Append("{"); foreach (var namedIterator in iterators) { try { var value = warewolfListIterators.FetchNextValue(namedIterator.Value); result.Append("\""); result.Append(namedIterator.Key); result.Append("\":\""); result.Append(value); result.Append("\""); colIdx++; if (colIdx < iterators.Count) { result.Append(","); } } catch(Exception e) { Dev2Logger.Log.Debug(e.Message,e); colIdx++; } } if (warewolfListIterators.HasMoreData()) { result = new StringBuilder(result.ToString().TrimEnd(',')); result.Append("}"); result.Append(","); } } result.Append("}"); result.Append("]"); i++; if (i <= recSets.Length) { result.Append(","); } } var scalars = scalarOutputs as string[] ?? scalarOutputs.ToArray(); foreach (var output in scalars) { var evalResult = environment.Eval(DataListUtil.AddBracketsToValueIfNotExist(output), update,false); if (evalResult.IsWarewolfAtomResult) { var scalarResult = evalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; if (scalarResult != null && !scalarResult.Item.IsNothing) { result.Append("\""); result.Append(output); result.Append("\":\""); result.Append(scalarResult.Item); result.Append("\""); } } keyCnt++; if (keyCnt < scalars.Length) { result.Append(","); } } var jsonOutputFromEnvironment = result.ToString(); jsonOutputFromEnvironment = jsonOutputFromEnvironment.TrimEnd(','); jsonOutputFromEnvironment += "}"; return jsonOutputFromEnvironment; }
public static string GetXmlOutputFromEnvironment(IDSFDataObject dataObject,string dataList,int update) { var environment = dataObject.Environment; var dataListTO = new DataListTO(dataList); StringBuilder result = new StringBuilder("<DataList>"); var scalarOutputs = dataListTO.Outputs.Where(s => !DataListUtil.IsValueRecordset(s)); var recSetOutputs = dataListTO.Outputs.Where(DataListUtil.IsValueRecordset); var groupedRecSets = recSetOutputs.GroupBy(DataListUtil.ExtractRecordsetNameFromValue); foreach (var groupedRecSet in groupedRecSets) { var i = 1; var warewolfListIterators = new WarewolfListIterator(); Dictionary<string, IWarewolfIterator> iterators = new Dictionary<string, IWarewolfIterator>(); foreach (var name in groupedRecSet) { var warewolfEvalResult = WarewolfDataEvaluationCommon.WarewolfEvalResult.NewWarewolfAtomResult(DataASTMutable.WarewolfAtom.Nothing); try { warewolfEvalResult = environment.Eval(name, update,false); } // ReSharper disable once RESP510236 // ReSharper disable once RESP510241 catch(Exception e) { Dev2Logger.Log.Debug("Null Variable",e); } var warewolfIterator = new WarewolfIterator(warewolfEvalResult); iterators.Add(DataListUtil.ExtractFieldNameFromValue(name), warewolfIterator); warewolfListIterators.AddVariableToIterateOn(warewolfIterator); } while (warewolfListIterators.HasMoreData()) { result.Append("<"); result.Append(groupedRecSet.Key); result.Append(string.Format(" Index=\"{0}\">", i)); foreach (var namedIterator in iterators) { try { var value = warewolfListIterators.FetchNextValue(namedIterator.Value); result.Append("<"); result.Append(namedIterator.Key); result.Append(">"); result.Append(value); result.Append("</"); result.Append(namedIterator.Key); result.Append(">"); } catch(Exception e) { Dev2Logger.Log.Debug(e.Message,e); } } result.Append("</"); result.Append(groupedRecSet.Key); result.Append(">"); i++; } } foreach (var output in scalarOutputs) { var evalResult = environment.Eval(DataListUtil.AddBracketsToValueIfNotExist(output), update,false); if (evalResult.IsWarewolfAtomResult) { var scalarResult = evalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; if (scalarResult != null && !scalarResult.Item.IsNothing) { result.Append("<"); result.Append(output); result.Append(">"); result.Append(scalarResult.Item); result.Append("</"); result.Append(output); result.Append(">"); } } } result.Append("</DataList>"); return result.ToString(); }
protected override IList<OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors, int update) { IList<OutputTO> outputs = new List<OutputTO>(); allErrors = new ErrorResultTO(); var colItr = new WarewolfListIterator(); //get all the possible paths for all the string variables var inputItr = new WarewolfIterator(dataObject.Environment.Eval(OutputPath, update)); colItr.AddVariableToIterateOn(inputItr); 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 privateKeyItr = new WarewolfIterator(dataObject.Environment.Eval(PrivateKeyFile, update)); colItr.AddVariableToIterateOn(privateKeyItr); var contentItr =new WarewolfIterator(dataObject.Environment.Eval(FileContents, update)); colItr.AddVariableToIterateOn(contentItr); outputs.Add(DataListFactory.CreateOutputTO(Result)); if(dataObject.IsDebugMode()) { AddDebugInputItem(OutputPath, "Output Path", dataObject.Environment, update); AddDebugInputItem(new DebugItemStaticDataParams(GetMethod(), "Method")); AddDebugInputItemUserNamePassword(dataObject.Environment, update); if (!string.IsNullOrEmpty(PrivateKeyFile)) { AddDebugInputItem(PrivateKeyFile, "Private Key File", dataObject.Environment, update); } AddDebugInputItem(FileContents, "File Contents", dataObject.Environment, update); } while(colItr.HasMoreData()) { IActivityOperationsBroker broker = ActivityIOFactory.CreateOperationsBroker(); var writeType = GetCorrectWriteType(); Dev2PutRawOperationTO putTo = ActivityIOFactory.CreatePutRawOperationTO(writeType, TextUtils.ReplaceWorkflowNewLinesWithEnvironmentNewLines(colItr.FetchNextValue(contentItr))); IActivityIOPath opath = ActivityIOFactory.CreatePathFromString(colItr.FetchNextValue(inputItr), colItr.FetchNextValue(unameItr), colItr.FetchNextValue(passItr), true, colItr.FetchNextValue(privateKeyItr)); IActivityIOOperationsEndPoint endPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(opath); try { if(allErrors.HasErrors()) { outputs[0].OutputStrings.Add(null); } else { string result = broker.PutRaw(endPoint, putTo); outputs[0].OutputStrings.Add(result); } } catch(Exception e) { outputs[0].OutputStrings.Add(null); allErrors.AddError(e.Message); break; } } return outputs; }
IEnumerable<string> BuildQueryFromTo(SharepointSearchTo sharepointSearchTo, IExecutionEnvironment env, ISharepointFieldTo sharepointFieldTo,int update) { var warewolfEvalResult = env.Eval(sharepointSearchTo.ValueToMatch, update); var fieldType = sharepointFieldTo.GetFieldType(); if (sharepointSearchTo.SearchType == "In") { var startSearchTerm = string.Format("{0}<FieldRef Name=\"{1}\"></FieldRef>", SharepointSearchOptions.GetStartTagForSearchOption(sharepointSearchTo.SearchType), sharepointSearchTo.InternalName); startSearchTerm+="<Values>"; if(warewolfEvalResult.IsWarewolfAtomListresult) { var listResult = warewolfEvalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomListresult; if (listResult != null) { foreach(var warewolfAtom in listResult.Item) { var valueString = warewolfAtom.ToString(); if (valueString.Contains(",")) { var listOfValues = valueString.Split(','); startSearchTerm = listOfValues.Select(listOfValue => CastWarewolfValueToCorrectType(listOfValue, sharepointFieldTo.Type)).Aggregate(startSearchTerm, (current, value) => current + string.Format("<Value Type=\"{0}\">{1}</Value>", fieldType, value)); } else { var value = CastWarewolfValueToCorrectType(valueString, sharepointFieldTo.Type); startSearchTerm += string.Format("<Value Type=\"{0}\">{1}</Value>", fieldType, value); } } } }else { var scalarResult = warewolfEvalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; if(scalarResult!=null) { var valueString = scalarResult.Item.ToString(); if (valueString.Contains(",")) { var listOfValues = valueString.Split(','); startSearchTerm = listOfValues.Select(listOfValue => CastWarewolfValueToCorrectType(listOfValue, sharepointFieldTo.Type)).Aggregate(startSearchTerm, (current, value) => current + string.Format("<Value Type=\"{0}\">{1}</Value>", fieldType, value)); } else { var value = CastWarewolfValueToCorrectType(valueString, sharepointFieldTo.Type); startSearchTerm += string.Format("<Value Type=\"{0}\">{1}</Value>", fieldType, value); } } } startSearchTerm += "</Values>"; startSearchTerm += SharepointSearchOptions.GetEndTagForSearchOption(sharepointSearchTo.SearchType); yield return startSearchTerm; } else { WarewolfIterator iterator = new WarewolfIterator(warewolfEvalResult); while (iterator.HasMoreData()) { yield return string.Format("{0}<FieldRef Name=\"{1}\"></FieldRef><Value Type=\"{2}\">{3}</Value>{4}", SharepointSearchOptions.GetStartTagForSearchOption(sharepointSearchTo.SearchType), sharepointSearchTo.InternalName, fieldType, CastWarewolfValueToCorrectType(iterator.GetNextValue(), sharepointFieldTo.Type), SharepointSearchOptions.GetEndTagForSearchOption(sharepointSearchTo.SearchType)); } } }
public static string GetXmlInputFromEnvironment(IDSFDataObject dataObject, Guid workspaceGuid, string dataList) { var environment = dataObject.Environment; var dataListTO = new DataListTO(dataList); StringBuilder result = new StringBuilder("<" + "DataList" + ">"); var scalarOutputs = dataListTO.Inputs.Where(s => !DataListUtil.IsValueRecordset(s)); var recSetOutputs = dataListTO.Inputs.Where(DataListUtil.IsValueRecordset); var groupedRecSets = recSetOutputs.GroupBy(DataListUtil.ExtractRecordsetNameFromValue); foreach (var groupedRecSet in groupedRecSets) { var i = 1; var warewolfListIterators = new WarewolfListIterator(); Dictionary<string, IWarewolfIterator> iterators = new Dictionary<string, IWarewolfIterator>(); foreach (var name in groupedRecSet) { var warewolfIterator = new WarewolfIterator(environment.Eval(name)); iterators.Add(DataListUtil.ExtractFieldNameFromValue(name), warewolfIterator); warewolfListIterators.AddVariableToIterateOn(warewolfIterator); } while (warewolfListIterators.HasMoreData()) { result.Append("<"); result.Append(groupedRecSet.Key); result.Append(string.Format(" Index=\"{0}\">", i)); foreach (var namedIterator in iterators) { var value = warewolfListIterators.FetchNextValue(namedIterator.Value); result.Append("<"); result.Append(namedIterator.Key); result.Append(">"); result.Append(value); result.Append("</"); result.Append(namedIterator.Key); result.Append(">"); } result.Append("</"); result.Append(groupedRecSet.Key); result.Append(">"); i++; } } foreach (var output in scalarOutputs) { var evalResult = environment.Eval(DataListUtil.AddBracketsToValueIfNotExist(output)); if (evalResult.IsWarewolfAtomResult) { var scalarResult = evalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; if (scalarResult != null && !scalarResult.Item.IsNothing) { result.Append("<"); result.Append(output); result.Append(">"); result.Append(scalarResult.Item); result.Append("</"); result.Append(output); result.Append(">"); } } } result.Append("</" + "DataList" + ">"); return result.ToString(); }
protected override void AddItemsToIterator(IExecutionEnvironment environment,int update) { _archPassItr = new WarewolfIterator(environment.Eval(DecryptedArchivePassword,update)); ColItr.AddVariableToIterateOn(_archPassItr); }
protected override IList<OutputTO> ExecuteConcreteAction(IDSFDataObject dataObject, out ErrorResultTO allErrors, int update) { IsNotCertVerifiable = true; allErrors = new ErrorResultTO(); IList<OutputTO> outputs = new List<OutputTO>(); var 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 unameItr = new WarewolfIterator(dataObject.Environment.Eval(Username, update)); colItr.AddVariableToIterateOn(unameItr); var passItr = new WarewolfIterator(dataObject.Environment.Eval(DecryptedPassword,update)); colItr.AddVariableToIterateOn(passItr); var privateKeyItr = new WarewolfIterator(dataObject.Environment.Eval(PrivateKeyFile, update)); colItr.AddVariableToIterateOn(privateKeyItr); if(dataObject.IsDebugMode()) { AddDebugInputItem(InputPath, "Input Path", dataObject.Environment, update); AddDebugInputItem(new DebugItemStaticDataParams(GetReadType().GetDescription(), "Read")); AddDebugInputItemUserNamePassword(dataObject.Environment, update); if (!string.IsNullOrEmpty(PrivateKeyFile)) { AddDebugInputItem(PrivateKeyFile, "Private Key File", dataObject.Environment, update); } } while(colItr.HasMoreData()) { IActivityOperationsBroker broker = ActivityIOFactory.CreateOperationsBroker(); IActivityIOPath ioPath = ActivityIOFactory.CreatePathFromString(colItr.FetchNextValue(inputItr), colItr.FetchNextValue(unameItr), colItr.FetchNextValue(passItr), true, colItr.FetchNextValue(privateKeyItr)); IActivityIOOperationsEndPoint endPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(ioPath); try { IList<IActivityIOPath> listOfDir = broker.ListDirectory(endPoint, GetReadType()); if(DataListUtil.IsValueRecordset(Result) && DataListUtil.GetRecordsetIndexType(Result) != enRecordsetIndexType.Numeric) { if(DataListUtil.GetRecordsetIndexType(Result) == enRecordsetIndexType.Star) { string recsetName = DataListUtil.ExtractRecordsetNameFromValue(Result); string fieldName = DataListUtil.ExtractFieldNameFromValue(Result); int indexToUpsertTo = 1; if(listOfDir != null) { foreach(IActivityIOPath pa in listOfDir) { string fullRecsetName = DataListUtil.CreateRecordsetDisplayValue(recsetName, fieldName, indexToUpsertTo.ToString(CultureInfo.InvariantCulture)); outputs.Add(DataListFactory.CreateOutputTO(DataListUtil.AddBracketsToValueIfNotExist(fullRecsetName), pa.Path)); indexToUpsertTo++; } } } else if(DataListUtil.GetRecordsetIndexType(Result) == enRecordsetIndexType.Blank) { if(listOfDir != null) { foreach(IActivityIOPath pa in listOfDir) { outputs.Add(DataListFactory.CreateOutputTO(Result, pa.Path)); } } } } else { if(listOfDir != null) { string xmlList = string.Join(",", listOfDir.Select(c => c.Path)); outputs.Add(DataListFactory.CreateOutputTO(Result)); outputs.Last().OutputStrings.Add(xmlList); } } } catch(Exception e) { outputs.Add(DataListFactory.CreateOutputTO(null)); allErrors.AddError(e.Message); break; } } return outputs; }
public DebugEvalResult(string inputVariable, string label, IExecutionEnvironment environment, bool isDataMerge = false) { _inputVariable = inputVariable.Trim(); _label = label; try { if (ExecutionEnvironment.IsRecordsetIdentifier(_inputVariable) && DataListUtil.IsEvaluated(_inputVariable)) { if (DataListUtil.GetRecordsetIndexType(_inputVariable) == enRecordsetIndexType.Blank) { var length = environment.GetLength(DataListUtil.ExtractRecordsetNameFromValue(_inputVariable)); _inputVariable = DataListUtil.ReplaceRecordsetBlankWithIndex(_inputVariable, length); } } if (isDataMerge) { var evalForDataMerge = environment.EvalForDataMerge(_inputVariable); var innerIterator = new WarewolfListIterator(); var innerListOfIters = new List<WarewolfIterator>(); foreach (var listOfIterator in evalForDataMerge) { var inIterator = new WarewolfIterator(listOfIterator); innerIterator.AddVariableToIterateOn(inIterator); innerListOfIters.Add(inIterator); } var atomList = new List<DataASTMutable.WarewolfAtom>(); while (innerIterator.HasMoreData()) { var stringToUse = ""; // ReSharper disable once LoopCanBeConvertedToQuery foreach (var warewolfIterator in innerListOfIters) { stringToUse += warewolfIterator.GetNextValue(); } atomList.Add(DataASTMutable.WarewolfAtom.NewDataString(stringToUse)); } var finalString = string.Join("", atomList); _evalResult = WarewolfDataEvaluationCommon.WarewolfEvalResult.NewWarewolfAtomListresult(new WarewolfAtomList<DataASTMutable.WarewolfAtom>(DataASTMutable.WarewolfAtom.Nothing, atomList)); if (DataListUtil.IsFullyEvaluated(finalString)) { _inputVariable = finalString; _evalResult = environment.Eval(finalString); } } else { var evalToExpression = environment.EvalToExpression(_inputVariable); if (DataListUtil.IsEvaluated(evalToExpression)) { _inputVariable = evalToExpression; } _evalResult = environment.Eval(_inputVariable); } } catch(Exception e) { Dev2Logger.Log.Error(e.Message,e); _evalResult = WarewolfDataEvaluationCommon.WarewolfEvalResult.NewWarewolfAtomResult(DataASTMutable.WarewolfAtom.Nothing); } }
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; }