private int AddErrorAndMerge(IDev2MergeOperations mergeOperations, ErrorResultTO allErrors, int pos, string val, string at, string pad) { if (val != null && at != null && pad != null) { if (MergeCollection[pos].MergeType == "Index") { if (string.IsNullOrEmpty(at)) { allErrors.AddError(ErrorResource.BlankUSINGValue); } if (!Int32.TryParse(at, out int atValue) || atValue < 0) { allErrors.AddError(ErrorResource.USINGMustBeARealNumber); } if (pad.Length > 1) { allErrors.AddError(ErrorResource.PADDINGMustBeSingleCharecter); } } else { if (MergeCollection[pos].MergeType == "Chars" && string.IsNullOrEmpty(at)) { allErrors.AddError(ErrorResource.BlankUSINGValue); } } mergeOperations.Merge(val, MergeCollection[pos].MergeType, at, pad, MergeCollection[pos].Alignment); pos++; } return(pos); }
private void AddToErrorsToDebugOutput(IDSFDataObject dataObject, int update, IDev2MergeOperations mergeOperations, ErrorResultTO allErrors, ErrorResultTO errorResultTo) { dataObject.Environment.Assign(Result, mergeOperations.MergeData.ToString(), update); allErrors.MergeErrors(errorResultTo); if (dataObject.IsDebugMode() && !allErrors.HasErrors()) { AddDebugOutputItem(new DebugEvalResult(Result, "", dataObject.Environment, update)); } }
public void MyTestInitialize() { _mergeOperations = new Dev2MergeOperations(); }
private void TryExecuteTool(IDSFDataObject dataObject, int update, IDev2MergeOperations mergeOperations, ErrorResultTO allErrors, ErrorResultTO errorResultTo) { IWarewolfListIterator warewolfListIterator = new WarewolfListIterator(); allErrors.MergeErrors(errorResultTo); var listOfIterators = new Dictionary <int, List <IWarewolfIterator> >(); #region Create a iterator for each row in the data grid in the designer so that the right iteration happen on the data var dictionaryKey = 0; foreach (DataMergeDTO row in MergeCollection) { allErrors.MergeErrors(errorResultTo); if (dataObject.IsDebugMode()) { var debugItem = new DebugItem(); AddDebugItem(new DebugItemStaticDataParams("", (MergeCollection.IndexOf(row) + 1).ToString(CultureInfo.InvariantCulture)), debugItem); AddDebugItem(new DebugEvalResult(row.InputVariable, "", dataObject.Environment, update, true), debugItem); AddDebugItem(new DebugItemStaticDataParams(row.MergeType, "With"), debugItem); AddDebugItem(new DebugEvalResult(row.At, "Using", dataObject.Environment, update), debugItem); AddDebugItem(new DebugEvalResult(row.Padding, "Pad", dataObject.Environment, update), debugItem); //Old workflows don't have this set. if (row.Alignment == null) { row.Alignment = string.Empty; } AddDebugItem(DataListUtil.IsEvaluated(row.Alignment) ? new DebugItemStaticDataParams("", row.Alignment, "Align") : new DebugItemStaticDataParams(row.Alignment, "Align"), debugItem); _debugInputs.Add(debugItem); } var listOfEvalResultsForInput = dataObject.Environment.EvalForDataMerge(row.InputVariable, update); var innerIterator = new WarewolfListIterator(); var innerListOfIters = new List <WarewolfIterator>(); foreach (var listOfIterator in listOfEvalResultsForInput) { var inIterator = new WarewolfIterator(listOfIterator); innerIterator.AddVariableToIterateOn(inIterator); innerListOfIters.Add(inIterator); } var atomList = new List <DataStorage.WarewolfAtom>(); while (innerIterator.HasMoreData()) { var stringToUse = ""; foreach (var warewolfIterator in innerListOfIters) { stringToUse += warewolfIterator.GetNextValue(); } atomList.Add(DataStorage.WarewolfAtom.NewDataString(stringToUse)); } var finalString = string.Join("", atomList); var inputListResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomListresult(new WarewolfAtomList <DataStorage.WarewolfAtom>(DataStorage.WarewolfAtom.Nothing, atomList)); if (DataListUtil.IsFullyEvaluated(finalString)) { inputListResult = dataObject.Environment.Eval(finalString, update); } var inputIterator = new WarewolfIterator(inputListResult); var atIterator = new WarewolfIterator(dataObject.Environment.Eval(row.At, update)); var paddingIterator = new WarewolfIterator(dataObject.Environment.Eval(row.Padding, update)); warewolfListIterator.AddVariableToIterateOn(inputIterator); warewolfListIterator.AddVariableToIterateOn(atIterator); warewolfListIterator.AddVariableToIterateOn(paddingIterator); listOfIterators.Add(dictionaryKey, new List <IWarewolfIterator> { inputIterator, atIterator, paddingIterator }); dictionaryKey++; } #endregion #region Iterate and Merge Data if (!allErrors.HasErrors()) { while (warewolfListIterator.HasMoreData()) { var pos = 0; foreach (var iterator in listOfIterators) { var val = warewolfListIterator.FetchNextValue(iterator.Value[0]); var at = warewolfListIterator.FetchNextValue(iterator.Value[1]); var pad = warewolfListIterator.FetchNextValue(iterator.Value[2]); pos = AddErrorAndMerge(mergeOperations, allErrors, pos, val, at, pad); } } if (!allErrors.HasErrors()) { if (string.IsNullOrEmpty(Result)) { AddDebugOutputItem(new DebugItemStaticDataParams("", "")); } else { AddToErrorsToDebugOutput(dataObject, update, mergeOperations, allErrors, errorResultTo); } } } #endregion Iterate and Merge Data }