void SetupForWarewolfRecordSetResult(WarewolfDataEvaluationCommon.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfRecordSetResult) { var listResult = warewolfEvalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfRecordSetResult; if (listResult != null) { var stringValue = ""; foreach (var item in listResult.Item.Data) { if (item.Key != WarewolfDataEvaluationCommon.PositionColumn) { var data = WarewolfDataEvaluationCommon.WarewolfEvalResult.NewWarewolfAtomListresult(item.Value) as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomListresult; var warewolfEvalResultToString = ExecutionEnvironment.WarewolfEvalResultToString(data); if (string.IsNullOrEmpty(stringValue)) { stringValue = warewolfEvalResultToString; } else { stringValue += "," + warewolfEvalResultToString; } } } _scalarResult = WarewolfDataEvaluationCommon.WarewolfEvalResult.NewWarewolfAtomResult(DataASTMutable.WarewolfAtom.NewDataString(stringValue)) as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; } } }
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); } }
void SetupScalarResult(WarewolfDataEvaluationCommon.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfAtomResult) { _scalarResult = warewolfEvalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; } }
/// <summary> /// Initializes a new instance of the <see cref="T:System.Object"/> class. /// </summary> public WarewolfIterator(WarewolfDataEvaluationCommon.WarewolfEvalResult warewolfEvalResult) { SetupListResult(warewolfEvalResult); SetupScalarResult(warewolfEvalResult); SetupForWarewolfRecordSetResult(warewolfEvalResult); _maxValue = _listResult != null?_listResult.Item.Count(atom => atom != null) : 1; _currentValue = 0; }
void SetupListResult(WarewolfDataEvaluationCommon.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfAtomListresult) { var warewolfAtomListresult = warewolfEvalResult as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomListresult; if (warewolfAtomListresult != null) { warewolfAtomListresult.Item.ResetCurrentEnumerator(); _listResult = warewolfAtomListresult; } } }
public DebugItemWarewolfAtomListResult(WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomListresult warewolfAtomListresult, WarewolfDataEvaluationCommon.WarewolfEvalResult oldResult, string assignedToVariableName, string variable, string leftLabelText, string rightLabelText, string operand) { _labelText = ""; _operand = operand; _variable = variable; _type = DebugItemResultType.Variable; _rightLabel = rightLabelText; _leftLabel = leftLabelText; _warewolfAtomListresult = warewolfAtomListresult; _oldValue = oldResult; _assignedToVariableName = assignedToVariableName; }
object GetEvalResult(WarewolfDataEvaluationCommon.WarewolfEvalResult evalResult, int i) { if (evalResult.IsWarewolfAtomListresult) { WarewolfAtomList <DataASTMutable.WarewolfAtom> lst = ((WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomListresult)evalResult).Item; if (i > lst.Count) { return(null); } return(WarewolfDataEvaluationCommon.AtomToJsonCompatibleObject(lst[i])); } if (evalResult.IsWarewolfAtomResult) { if (i == 0) { return(WarewolfDataEvaluationCommon.EvalResultToJsonCompatibleObject(evalResult)); } return(null); } if (evalResult.IsWarewolfRecordSetResult) { DataASTMutable.WarewolfRecordset recset = ((WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfRecordSetResult)EvalResult).Item; KeyValuePair <string, WarewolfAtomList <DataASTMutable.WarewolfAtom> >[] data = recset.Data.ToArray(); var jObjects = new List <JObject>(); for (int j = 0; j < recset.Count; j++) { var a = new JObject(); foreach (KeyValuePair <string, WarewolfAtomList <DataASTMutable.WarewolfAtom> > pair in data) { if (pair.Key != WarewolfDataEvaluationCommon.PositionColumn) { try { a.Add(new JProperty(pair.Key, WarewolfDataEvaluationCommon.AtomToJsonCompatibleObject(pair.Value[j]))); } catch (Exception) { a.Add(new JProperty(pair.Key, null)); } } } jObjects.Add(a); } return(jObjects); } throw new Exception("Invalid result type was encountered from warewolfstorage"); }
public static string WarewolfEvalResultToString(WarewolfDataEvaluationCommon.WarewolfEvalResult result) { if (result.IsWarewolfAtomResult) { // ReSharper disable PossibleNullReferenceException var warewolfAtomResult = result as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult; if (warewolfAtomResult != null) { var x = warewolfAtomResult.Item; if (x.IsNothing) { return(null); } // ReSharper restore PossibleNullReferenceException return(WarewolfAtomToStringErrorIfNull(x)); } throw new Exception("null when f# said it should not be"); } // ReSharper disable RedundantIfElseBlock else // ReSharper restore RedundantIfElseBlock { // ReSharper disable PossibleNullReferenceException var warewolfAtomListresult = result as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomListresult; if (warewolfAtomListresult != null) { var x = warewolfAtomListresult.Item; StringBuilder res = new StringBuilder(); for (int index = 0; index < x.Count; index++) { var warewolfAtom = x[index]; if (index == x.Count - 1) { res.Append(warewolfAtom); } else { res.Append(warewolfAtom).Append(","); } } return(res.ToString()); } throw new Exception("null when f# said it should not be"); } }
public static bool IsNothing(WarewolfDataEvaluationCommon.WarewolfEvalResult evalInp1) { return(WarewolfDataEvaluationCommon.IsNothing(evalInp1)); }
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); } }