private void RegularItem(IExecutionEnvironment environment, int update, bool isCalculate) { var evalToExpression = environment.EvalToExpression(_inputVariable, update); if (DataListUtil.IsEvaluated(evalToExpression)) { _inputVariable = evalToExpression; } _evalResult = environment.Eval(_inputVariable, update); string cleanExpression; var isCalcExpression = DataListUtil.IsCalcEvaluation(_inputVariable, out cleanExpression); if (isCalcExpression && !isCalculate) { if (_evalResult.IsWarewolfAtomResult) { var atomResult = _evalResult as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; if (atomResult != null) { var res = atomResult.Item.ToString(); string resValue; DataListUtil.IsCalcEvaluation(res, out resValue); _evalResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString(resValue)); } } _inputVariable = cleanExpression; } }
void SetupForWarewolfRecordSetResult(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfRecordSetResult) { var listResult = warewolfEvalResult as CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult; if (listResult != null) { var stringValue = ""; foreach (var item in listResult.Item.Data) { if (item.Key != EvaluationFunctions.PositionColumn) { var data = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomListresult(item.Value) as CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult; var warewolfEvalResultToString = ExecutionEnvironment.WarewolfEvalResultToString(data); if (string.IsNullOrEmpty(stringValue)) { stringValue = warewolfEvalResultToString; } else { stringValue += "," + warewolfEvalResultToString; } } } _scalarResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString(stringValue)) as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; } } }
void SetupScalarResult(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfAtomResult) { _scalarResult = warewolfEvalResult as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; } }
public DebugEvalResult(string inputVariable, string label, IExecutionEnvironment environment, int update, bool isDataMerge, bool isCalculate, bool mockSelected) { _inputVariable = inputVariable?.Trim(); LabelText = label; _isCalculate = isCalculate; MockSelected = mockSelected; try { if (ExecutionEnvironment.IsRecordsetIdentifier(_inputVariable) && DataListUtil.IsEvaluated(_inputVariable) && DataListUtil.GetRecordsetIndexType(_inputVariable) == enRecordsetIndexType.Blank) { var length = environment.GetLength(DataListUtil.ExtractRecordsetNameFromValue(_inputVariable)); _inputVariable = DataListUtil.ReplaceRecordsetBlankWithIndex(_inputVariable, length); } if (isDataMerge) { DataMergeItem(environment, update); } else { RegularItem(environment, update, isCalculate); } } catch (Exception e) { Dev2Logger.Error(e.Message, e, GlobalConstants.WarewolfError); _evalResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.Nothing); } }
void ScalarAtom(CommonFunctions.WarewolfEvalResult warewolfEvalResult, IExecutionEnvironment env, IDev2Definition dev2Definition) { if (warewolfEvalResult is CommonFunctions.WarewolfEvalResult.WarewolfAtomResult data) { env.AssignWithFrame(new AssignValue("[[" + dev2Definition.Name + "]]", ExecutionEnvironment.WarewolfAtomToString(data.Item)), 0); } }
void SetupListResult(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfAtomListresult && warewolfEvalResult is CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult warewolfAtomListresult) { warewolfAtomListresult.Item.ResetCurrentEnumerator(); _listResult = warewolfAtomListresult; } }
/// <summary> /// Initializes a new instance of the <see cref="T:System.Object"/> class. /// </summary> public WarewolfIterator(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { SetupListResult(warewolfEvalResult); SetupScalarResult(warewolfEvalResult); SetupForWarewolfRecordSetResult(warewolfEvalResult); _maxValue = _listResult?.Item.Count(atom => atom != null) ?? 1; _currentValue = 0; }
public static string WarewolfEvalResultToString(CommonFunctions.WarewolfEvalResult result) { if (result.IsWarewolfAtomResult) { var warewolfAtomResult = result as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; if (warewolfAtomResult != null) { var x = warewolfAtomResult.Item; if (x.IsNothing) { return(null); } return(WarewolfAtomToStringErrorIfNull(x)); } throw new Exception(@"Null when value should have been returned."); } if (result.IsWarewolfRecordSetResult) { var recSetResult = result as CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult; var recSetData = recSetResult?.Item; if (recSetData != null) { var data = recSetData.Data.ToArray(); var listOfData = new List <string>(); foreach (var keyValuePair in data) { if (keyValuePair.Key == "WarewolfPositionColumn") { continue; } listOfData.AddRange(keyValuePair.Value.Select(WarewolfAtomToString).ToList()); } return(string.Join(",", listOfData)); } } var warewolfAtomListresult = result as CommonFunctions.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 value should have been returned."); }
private void ScalarAtomList(CommonFunctions.WarewolfEvalResult warewolfEvalResult, IExecutionEnvironment env, IDev2Definition dev2Definition) { var data = warewolfEvalResult as CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult; if (data != null && data.Item.Any()) { env.AssignWithFrame(new AssignValue("[[" + dev2Definition.Name + "]]", ExecutionEnvironment.WarewolfAtomToString(data.Item.Last())), 0); } }
static void AtomInputs(CommonFunctions.WarewolfEvalResult warewolfEvalResult, IDev2Definition dev2ColumnDefinition, IExecutionEnvironment env) { var recsetResult = warewolfEvalResult as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; if (dev2ColumnDefinition.IsRecordSet && recsetResult != null) { var correctRecSet = "[[" + dev2ColumnDefinition.RecordSetName + "(*)." + dev2ColumnDefinition.Name + "]]"; env.AssignWithFrame(new AssignValue(correctRecSet, PublicFunctions.AtomtoString(recsetResult.Item)), 0); } }
static void AtomListInputs(CommonFunctions.WarewolfEvalResult warewolfEvalResult, IDev2Definition dev2ColumnDefinition, IExecutionEnvironment env) { // TODO: why is this called but the return never used? can we remove this? DataListUtil.GetRecordsetIndexType(dev2ColumnDefinition.Value); if (warewolfEvalResult is CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult recsetResult) { var correctRecSet = "[[" + dev2ColumnDefinition.RecordSetName + "(*)." + dev2ColumnDefinition.Name + "]]"; env.EvalAssignFromNestedStar(correctRecSet, recsetResult, 0); } }
void SetupForWarewolfRecordSetResult(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfRecordSetResult && warewolfEvalResult is CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult listResult) { var stringValue = ""; foreach (var item in listResult.Item.Data) { stringValue = SetupListResultItem(item); } _scalarResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString(stringValue)) as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; } }
void AtomListInputs(CommonFunctions.WarewolfEvalResult warewolfEvalResult, IDev2Definition dev2ColumnDefinition, IExecutionEnvironment env) { var recsetResult = warewolfEvalResult as CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult; DataListUtil.GetRecordsetIndexType(dev2ColumnDefinition.Value); if (recsetResult != null) { var correctRecSet = "[[" + dev2ColumnDefinition.RecordSetName + "(*)." + dev2ColumnDefinition.Name + "]]"; env.EvalAssignFromNestedStar(correctRecSet, recsetResult, 0); } }
public void WarewolfIterator_Should() { CommonFunctions.WarewolfEvalResult listResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.Nothing); var atomIterator = new WarewolfIterator(listResult); Assert.IsNotNull(atomIterator); var privateObj = new PrivateObject(atomIterator); var maxVal = (int)privateObj.GetField("_maxValue"); Assert.IsNotNull(maxVal); var length = atomIterator.GetLength(); Assert.AreEqual(maxVal, length); }
public DebugItemWarewolfAtomListResult(CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult warewolfAtomListresult, CommonFunctions.WarewolfEvalResult oldResult, string assignedToVariableName, string variable, string leftLabelText, string rightLabelText, string operand, bool isCalculate, bool mockSelected) { _labelText = ""; _operand = operand; _isCalculate = isCalculate; _variable = variable; _type = DebugItemResultType.Variable; _rightLabel = rightLabelText; _leftLabel = leftLabelText; _warewolfAtomListresult = warewolfAtomListresult; _oldValue = oldResult; _assignedToVariableName = assignedToVariableName; _mockSelected = mockSelected; }
void SetupScalarResult(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfAtomResult) { _scalarResult = warewolfEvalResult as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; if (_scalarResult.Item.IsDataString) { var str = _scalarResult.Item.ToString(); if (str.Contains("\n") && !str.Contains("\r\n")) { NewLineFormat = "\n"; } } } }
object GetEvalResult(CommonFunctions.WarewolfEvalResult evalResult, int i) { if (evalResult.IsWarewolfAtomListresult) { WarewolfAtomList <DataStorage.WarewolfAtom> lst = ((CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult)evalResult).Item; if (i > lst.Count) { return(null); } return(CommonFunctions.atomToJsonCompatibleObject(lst[i])); } if (evalResult.IsWarewolfAtomResult) { if (i == 0) { return(CommonFunctions.evalResultToJsonCompatibleObject(evalResult)); } return(null); } if (evalResult.IsWarewolfRecordSetResult) { DataStorage.WarewolfRecordset recset = ((CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult)EvalResult).Item; KeyValuePair <string, WarewolfAtomList <DataStorage.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 <DataStorage.WarewolfAtom> > pair in data) { if (pair.Key != FsInteropFunctions.PositionColumn) { try { a.Add(new JProperty(pair.Key, CommonFunctions.atomToJsonCompatibleObject(pair.Value[j]))); } catch (Exception) { a.Add(new JProperty(pair.Key, null)); } } } jObjects.Add(a); } return(jObjects); } throw new Exception(ErrorResource.InvalidResultTypeFromWarewolfStorage); }
void SetupForWarewolfRecordSetResult(CommonFunctions.WarewolfEvalResult warewolfEvalResult) { if (warewolfEvalResult.IsWarewolfRecordSetResult && warewolfEvalResult is CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult listResult) { var stringValue = new StringBuilder(); foreach (var item in listResult.Item.Data) { if (item.Key != EvaluationFunctions.PositionColumn) { var data = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomListresult(item.Value) as CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult; var warewolfEvalResultToString = ExecutionEnvironment.WarewolfEvalResultToString(data); AppendEvaluatedString(ref stringValue, warewolfEvalResultToString); } } _scalarResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.NewDataString(stringValue.ToString())) as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; } }
public static string WarewolfEvalResultToString(CommonFunctions.WarewolfEvalResult result) { if (result.IsWarewolfAtomResult) { if (result is CommonFunctions.WarewolfEvalResult.WarewolfAtomResult warewolfAtomResult) { var x = warewolfAtomResult.Item; if (x.IsNothing) { return(null); } return(WarewolfAtomToStringErrorIfNull(x)); } throw new Exception(@"Null when value should have been returned."); } if (result.IsWarewolfRecordSetResult) { var recSetResult = result as CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult; var recSetData = recSetResult?.Item; if (recSetData != null) { return(WarewolfEvalResultToStringHelper(recSetData)); } } if (result is CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult warewolfAtomListresult) { var x = warewolfAtomListresult.Item; var 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 value should have been returned."); }
private static string AddAtomResult(ISharepointFieldTo sharepointFieldTo, CommonFunctions.WarewolfEvalResult warewolfEvalResult, string fieldType, string startSearchTerm) { if (warewolfEvalResult is CommonFunctions.WarewolfEvalResult.WarewolfAtomResult scalarResult) { 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 + $"<Value Type=\"{fieldType}\">{value}</Value>"); } else { var value = CastWarewolfValueToCorrectType(valueString, sharepointFieldTo.Type); startSearchTerm += $"<Value Type=\"{fieldType}\">{value}</Value>"; } } return(startSearchTerm); }
void DataMergeItem(IExecutionEnvironment environment, int update) { var evalForDataMerge = environment.EvalForDataMerge(_inputVariable, update); 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 <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); _evalResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomListresult(new WarewolfAtomList <DataStorage.WarewolfAtom>(DataStorage.WarewolfAtom.Nothing, atomList)); if (DataListUtil.IsFullyEvaluated(finalString)) { _inputVariable = finalString; _evalResult = environment.Eval(finalString, update); } else { var evalToExpression = environment.EvalToExpression(_inputVariable, update); if (DataListUtil.IsEvaluated(evalToExpression)) { _inputVariable = evalToExpression; } } }
object GetEvalResult(CommonFunctions.WarewolfEvalResult evalResult, int i) { if (evalResult.IsWarewolfAtomListresult) { var lst = ((CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult)evalResult).Item; if (i > lst.Count) { return(null); } return(CommonFunctions.atomToJsonCompatibleObject(lst[i])); } if (evalResult.IsWarewolfAtomResult) { if (i == 0) { return(CommonFunctions.evalResultToJsonCompatibleObject(evalResult)); } return(null); } if (evalResult.IsWarewolfRecordSetResult) { var recset = ((CommonFunctions.WarewolfEvalResult.WarewolfRecordSetResult)EvalResult).Item; var 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 <DataStorage.WarewolfAtom> > pair in data) { TryAddPairKey(j, a, pair); } jObjects.Add(a); } return(jObjects); } throw new Exception(ErrorResource.InvalidResultTypeFromWarewolfStorage); }
public void WarewolfIterator_SetupForWarewolfRecordSetResult_Should() { CommonFunctions.WarewolfEvalResult listResult = CommonFunctions.WarewolfEvalResult.NewWarewolfAtomResult(DataStorage.WarewolfAtom.Nothing); var atomIterator = new WarewolfIterator(listResult); Assert.IsNotNull(atomIterator); var privateObj = new PrivateObject(atomIterator); var assigns = new List <IAssignValue> { new AssignValue("[[rec(25).a]]", "25"), new AssignValue("[[rec(27).b]]", "33"), new AssignValue("[[rec(29).b]]", "26") }; var testEnv = WarewolfTestData.CreateTestEnvEmpty(""); var testEnv3 = PublicFunctions.EvalMultiAssign(assigns, 0, testEnv); var res = PublicFunctions.EvalEnvExpression("[[rec(27)]]", 0, false, testEnv3); Assert.IsTrue(res.IsWarewolfRecordSetResult); object[] arg = { res }; privateObj.Invoke("SetupForWarewolfRecordSetResult", arg); var scalarRes = privateObj.GetField("_scalarResult") as CommonFunctions.WarewolfEvalResult.WarewolfAtomResult; Assert.IsNotNull(scalarRes); }
public static bool IsNothing(CommonFunctions.WarewolfEvalResult evalInp1) => CommonFunctions.isNothing(evalInp1);
private void AddWarewolfAtomResults(List <IDebugItem> results, IDev2Definition dev2Definition, CommonFunctions.WarewolfEvalResult tmpEntry, DebugItem itemToAdd) { if (tmpEntry is CommonFunctions.WarewolfEvalResult.WarewolfAtomResult warewolfAtomResult) { var variableName = dev2Definition.Name; if (!string.IsNullOrEmpty(dev2Definition.RecordSetName)) { variableName = DataListUtil.CreateRecordsetDisplayValue(dev2Definition.RecordSetName, dev2Definition.Name, "1"); } AddDebugItem(new DebugItemWarewolfAtomResult(warewolfAtomResult.Item.ToString(), DataListUtil.AddBracketsToValueIfNotExist(variableName), ""), itemToAdd); } results.Add(itemToAdd); }
private void AddWarewolfAtomResults(List <IDebugItem> results, IServiceInput serviceInput, CommonFunctions.WarewolfEvalResult tmpEntry, DebugItem itemToAdd) { if (tmpEntry is CommonFunctions.WarewolfEvalResult.WarewolfAtomResult warewolfAtomResult) { var variableName = serviceInput.Value; if (DataListUtil.IsEvaluated(variableName)) { AddDebugItem(new DebugItemWarewolfAtomResult(warewolfAtomResult.Item.ToString(), DataListUtil.AddBracketsToValueIfNotExist(variableName), ""), itemToAdd); } else { AddDebugItem(new DebugItemStaticDataParams(warewolfAtomResult.Item.ToString(), ""), itemToAdd); } } results.Add(itemToAdd); }
private void AddWarewolfAtomListResults(List <IDebugItem> results, IServiceInput serviceInput, CommonFunctions.WarewolfEvalResult tmpEntry, DebugItem itemToAdd) { if (tmpEntry is CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult warewolfAtomListResult) { var variableName = serviceInput.Value; if (DataListUtil.IsValueRecordset(variableName)) { AddDebugItem(new DebugItemWarewolfAtomListResult(warewolfAtomListResult, "", "", DataListUtil.AddBracketsToValueIfNotExist(variableName), "", "", "="), itemToAdd); } else { var warewolfAtom = warewolfAtomListResult.Item.Last(); AddDebugItem(new DebugItemWarewolfAtomResult(warewolfAtom.ToString(), DataListUtil.AddBracketsToValueIfNotExist(variableName), ""), itemToAdd); } } results.Add(itemToAdd); }
public DebugItemWarewolfAtomListResult(CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult warewolfAtomListresult, CommonFunctions.WarewolfEvalResult oldResult, string assignedToVariableName, string variable, string leftLabelText, string rightLabelText, string operand) : this(warewolfAtomListresult, oldResult, assignedToVariableName, variable, leftLabelText, rightLabelText, operand, false, false) { }
public WarewolfIterator(CommonFunctions.WarewolfEvalResult warewolfEvalResult, FunctionEvaluatorOption functionEvaluatorOption) : this(warewolfEvalResult) { _functionEvaluatorOption = functionEvaluatorOption; }
void AddWarewolfAtomListDebugResult(IExecutionEnvironment environment, IAssignValue assignValue, int update, DebugItem debugItem, string VariableLabelText, string NewFieldLabelText, CommonFunctions.WarewolfEvalResult evalResult) { if (evalResult.IsWarewolfAtomListresult) { if (DataListUtil.GetRecordsetIndexType(assignValue.Name) == enRecordsetIndexType.Blank) { AddDebugItem(new DebugItemWarewolfAtomListResult(null, assignValue.Value, "", environment.EvalToExpression(assignValue.Name, update), VariableLabelText, NewFieldLabelText, "="), debugItem); } else { if (evalResult is CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult recSetResult) { AddDebugItem(new DebugItemWarewolfAtomListResult(recSetResult, assignValue.Value, "", environment.EvalToExpression(assignValue.Name, update), VariableLabelText, NewFieldLabelText, "="), debugItem); } } } }