/// <summary> /// /// </summary> /// <param name="col"></param> /// <param name="parammin"></param> /// <param name="parammax"></param> /// <returns>Expression:{col.Expression} NOT BETWEEN @{col.Name}1 AND @{col.Name}2</returns> public static ComparisonExpression NotBetweenVarParam(this IValueExpression col, string parammin = null, string parammax = null) { if (string.IsNullOrWhiteSpace(parammin)) { if (col is IColumnExpression) { parammin = (col as IColumnExpression).Name + "1"; } else { throw new ArgumentNullException("param"); } } if (string.IsNullOrWhiteSpace(parammax)) { if (col is IColumnExpression) { parammax = (col as IColumnExpression).Name + "2"; } else { throw new ArgumentNullException("parammax"); } } return(new ComparisonExpression(col, Operator.NotBetween, new BetweenValueExpression(new ParamExpression(parammin), new ParamExpression(parammax)))); }
public void CalcualtedValue(BusinessFlow BusinessFlow, Environments.ProjEnvironment ProjEnvironment, ObservableList <DataSourceBase> DSList) { IValueExpression VE = TargetFrameworkHelper.Helper.CreateValueExpression(ProjEnvironment, BusinessFlow, DSList); VE.Value = Value; ValueCalculated = VE.ValueCalculated; }
public void CalculateCondition(BusinessFlow BusinessFlow, Environments.ProjEnvironment ProjEnvironment, ObservableList <DataSourceBase> DSList) { if (Condition == null) { ConditionCalculated = ""; return; } // We changed enum name from Pass to Passed. Below is to support existing users flow control having pass. // To be removed later if (Condition.Equals("\"{BusinessFlowStatus}\" = \"Pass\"")) { Condition = Condition.Replace("Pass", "Passed"); } else if (Condition.Equals("\"{BusinessFlowStatus}\" = \"Fail\"")) { Condition = Condition.Replace("Fail", "Failed"); } IValueExpression VE = RepositoryItemHelper.RepositoryItemFactory.CreateValueExpression(ProjEnvironment, BusinessFlow, DSList); VE.Value = Condition; VE.Value = VE.Value.Replace("{BusinessFlowStatus}", (BusinessFlow.RunStatus == Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed ? Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed : BusinessFlow.RunStatus).ToString()); ConditionCalculated = VE.ValueCalculated; }
public void CalcualtedValue(BusinessFlow BusinessFlow, Environments.ProjEnvironment ProjEnvironment, ObservableList <DataSourceBase> DSList) { IValueExpression VE = RepositoryItemHelper.RepositoryItemFactory.CreateValueExpression(ProjEnvironment, BusinessFlow, DSList); VE.Value = Value; ValueCalculated = VE.ValueCalculated; }
public bool ToBoolean(IExpression value) { if (value == null) { return(false); } IValueExpression asValue = value as IValueExpression; if (asValue != null) { bool boolVal; if (TryConvert(asValue.Value, out boolVal)) { return(boolVal); } } string str = value.ToString().Trim(); bool b; if (bool.TryParse(str, out b)) { return(b); } int i; if (int.TryParse(str, out i)) { return(i != 0); } return(str.Length > 0); }
public static ScriptExpression Parse(string expression) { if (String.IsNullOrEmpty(expression)) { throw new ArgumentNullException("expression"); } string[] scriptParts = expression.Split('='); if ((scriptParts != null) && (scriptParts.Length == 1)) { IValueExpression rhs = ParseExpression(scriptParts[0].Trim(), /* allowMethod */ true); if (rhs != null) { return(new ScriptExpression(expression, rhs)); } } else if (scriptParts.Length == 2) { IValueExpression rhs = ParseExpression(scriptParts[1].Trim(), /* allowMethod */ true); IValueExpression lhs = ParseExpression(scriptParts[0].Trim(), /* allowMethod */ false); if ((rhs != null) && (lhs != null) && (lhs is PropertyAccessExpression)) { if (((PropertyAccessExpression)lhs).IsValidSetterExpression) { return(new ScriptExpression(expression, rhs, lhs)); } } } return(null); }
/// <summary> /// /// </summary> /// <param name="expression"></param> /// <returns></returns> public virtual IExpression CreateExpression(string expression) { var expr = expression.Trim(); IValueExpression valueExpression = ExpressionFactory.CreateValueExpression(parsingElContext, expr, typeof(object)); return(new JuelExpression(valueExpression, expression)); }
public void AddParameter(IValueExpression paramExpr) { if (_parameters == null) { _parameters = new List <IValueExpression>(); } _parameters.Add(paramExpr); }
//todo private string GetValueForDriverWithoutDescrypting(string value) { IValueExpression VE = RepositoryItemHelper.RepositoryItemFactory.CreateValueExpression(mExecutionEnviroment, WorkSpace.Businessflow, WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <DataSourceBase>(), false, "", false, RepositoryItemHelper.RepositoryItemFactory.GetVariaables()); VE.DecryptFlag = false; VE.Value = value; return(VE.ValueCalculated); }
public void CalculateTCRunName(IValueExpression ve) { if (IsVariableInTCRunUsed && (VariableForTCRunName != null) && (VariableForTCRunName != string.Empty)) { ve.Value = VariableForTCRunName; VariableForTCRunNameCalculated = ve.ValueCalculated; } else { ve.Value = "GingerRun_{VBS Eval=now()}"; VariableForTCRunNameCalculated = ve.ValueCalculated; } }
private FinalFluentBuilder <TOuterBuilder> SetDoneData(IValueExpression evaluator) { var contentBuilder = _factory.CreateContentBuilder(null); contentBuilder.SetExpression(evaluator); var doneData = _factory.CreateDoneDataBuilder(null); doneData.SetContent(contentBuilder.Build()); _builder.SetDoneData(doneData.Build()); return(this); }
public void CalculateCondition(BusinessFlow BusinessFlow, Environments.ProjEnvironment ProjEnvironment, Act act, Activity LastExecutedActivity, ObservableList <DataSourceBase> DSList) { if (Condition == null) { ConditionCalculated = ""; return; } // We changed enum name from Pass to Passed. Below is to support existing users flow control having pass. // To be removed later if (Condition.Equals("\"{ActionStatus}\" = \"Pass\"")) { Condition = Condition.Replace("Pass", "Passed"); } else if (Condition.Equals("\"{ActionStatus}\" = \"Fail\"")) { Condition = Condition.Replace("Fail", "Failed"); } IValueExpression VE = RepositoryItemHelper.RepositoryItemFactory.CreateValueExpression(ProjEnvironment, BusinessFlow, DSList); VE.Value = Condition; foreach (ActReturnValue ARC in act.ReturnValues) { if (!string.IsNullOrEmpty(ARC.Actual)) { if (VE.Value.Contains("{Actual}")) { if ((ARC.Actual != null) && StringManager.IsNumeric(ARC.Actual)) { VE.Value = VE.Value.Replace("{Actual}", ARC.Actual.ToString()); } else { VE.Value = VE.Value.Replace("{Actual}", "\"" + ARC.Actual + "\""); } } } } if (VE.Value.Contains("{ActionStatus}")) { VE.Value = VE.Value.Replace("{ActionStatus}", (act.Status == Amdocs.Ginger.CoreNET.Execution.eRunStatus.FailIgnored ? Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed : act.Status).ToString()); } else if (VE.Value.Contains("{LastActivityStatus}")) { VE.Value = VE.Value.Replace("{LastActivityStatus}", LastExecutedActivity != null ? LastExecutedActivity.Status.ToString() : "Last executed Activity Status not available"); } ConditionCalculated = VE.ValueCalculated; }
public static ComparisonExpression NotLikeVarParam(this IValueExpression col, string param = null) { if (string.IsNullOrWhiteSpace(param)) { if (col is IColumnExpression) { param = (col as IColumnExpression).Name; } else { throw new ArgumentNullException("param"); } } return(col.NotLike(new ParamExpression(param))); }
internal ActionReport GetActionReportData(Act action, Context context, Amdocs.Ginger.Common.eExecutedFrom executedFrom) { ActionReport AR = new ActionReport(action, context); AR.Seq = context.Activity.ExecutionLogActionCounter; if ((action.RunDescription != null) && (action.RunDescription != string.Empty)) { if (mVE == null) { mVE = new GingerCore.ValueExpression(context.Environment, null, new ObservableList <GingerCore.DataSource.DataSourceBase>(), false, "", false); } mVE.Value = action.RunDescription; AR.RunDescription = mVE.ValueCalculated; } return(AR); }
internal BusinessFlowReport GetBFReportData(BusinessFlow businessFlow, ProjEnvironment environment) { BusinessFlowReport BFR = new BusinessFlowReport(businessFlow); BFR.VariablesBeforeExec = businessFlow.VariablesBeforeExec; BFR.SolutionVariablesBeforeExec = businessFlow.SolutionVariablesBeforeExec; BFR.Seq = this.ExecutionLogBusinessFlowsCounter; if (!string.IsNullOrEmpty(businessFlow.RunDescription)) { if (mVE == null) { mVE = new GingerCore.ValueExpression(environment, businessFlow, new ObservableList <GingerCore.DataSource.DataSourceBase>(), false, "", false); } mVE.Value = businessFlow.RunDescription; BFR.RunDescription = mVE.ValueCalculated; } return(BFR); }
internal ActivityReport GetActivityReportData(Activity activity, Context context, bool offlineMode) { ActivityReport AR = new ActivityReport(activity); AR.Seq = context.BusinessFlow.ExecutionLogActivityCounter; AR.VariablesBeforeExec = activity.VariablesBeforeExec; if ((activity.RunDescription != null) && (activity.RunDescription != string.Empty)) { if (mVE == null) { mVE = new GingerCore.ValueExpression(context.Environment, null, new ObservableList <GingerCore.DataSource.DataSourceBase>(), false, "", false); } mVE.Value = activity.RunDescription; AR.RunDescription = mVE.ValueCalculated; } return(AR); }
private static IValueExpression ParseMethodCall(string expression) { MethodCallExpression methodCall = null; int openParenIndex = expression.IndexOf("(", StringComparison.Ordinal); string memberExpression = expression.Substring(0, openParenIndex); string[] pathParts = ParseParts(memberExpression); if ((pathParts != null) && (pathParts.Length >= 2)) { methodCall = new MethodCallExpression(pathParts); } else { return(null); } int paramsLength = expression.Length - openParenIndex - 2; if (paramsLength != 0) { string paramExpression = expression.Substring(openParenIndex + 1, paramsLength); string[] paramExprList = paramExpression.Split(','); for (int i = 0; i < paramExprList.Length; i++) { IValueExpression expr = ParseExpression(paramExprList[i].Trim(), /* allowMethod */ false); if (expr != null) { methodCall.AddParameter(expr); } else { return(null); } } } return(methodCall); }
public bool TryConvertToInteger(IExpression value, out int result) { if (value == null) { result = 0; return(true); } IValueExpression asValue = value as IValueExpression; if (asValue != null) { int intVal; if (TryConvert(asValue.Value, out intVal)) { result = intVal; return(true); } } string str = value.ToString().Trim(); bool b; if (bool.TryParse(str, out b)) { result = b ? 1 : 0; return(true); } if (int.TryParse(str, out result)) { return(true); } result = 0; return(false); }
private string GenerateVEValue() { try { if (mProjEnvironment == null && mBusinessFlow == null) { return("Value will be calculated during execution."); } IValueExpression Ve = RepositoryItemHelper.RepositoryItemFactory.CreateValueExpression(mProjEnvironment, mBusinessFlow); Ve.Value = ValueExpression; if (Ve.Value != null && Ve.Value.Contains("{Var Name=" + Name + "}")) { return("ERROR: " + GingerDicser.GetTermResValue(eTermResKey.Variable) + " value cannot point to itself. "); } return(Ve.ValueCalculated); } catch (Exception ex)//Env and BF objects were not set by Ginger Runner { return(ex.Message); } }
public static ComparisonExpression NotIn(this IValueExpression col, params object[] values) { return(new ComparisonExpression(col, Operator.NotIn, new CollectionExpression(values.Select(val => new LiteralValueExpression(val)).ToArray()))); }
public void AddParameter(IValueExpression paramExpr) { if (_parameters == null) { _parameters = new List<IValueExpression>(); } _parameters.Add(paramExpr); }
private ScriptExpression(string script, IValueExpression rhs, IValueExpression lhs) { _script = script; _rhs = rhs; _lhs = lhs; }
public static UnaryComparisonExpression IsNotNull(this IValueExpression col) { return(new UnaryComparisonExpression(col, Operator.IsNotNull)); //return new ComparisonExpression(col, Operator.IsNot, new LiteralValueExpression(null)); }
public static ComparisonExpression LtOrEq(this IValueExpression col, IValueExpression val) { return(new ComparisonExpression(col, Operator.LtOrEq, val)); }
public static ComparisonExpression NotLike(this IValueExpression col, IValueExpression val) { return(new ComparisonExpression(col, Operator.NotLike, val)); }
public static ComparisonExpression LtOrEq(this IValueExpression col, object val) { return(col.LtOrEq(new LiteralValueExpression(val))); }
public static ISetItemExpression Set(this IColumnExpression column, IValueExpression value) { return(new SetItemExpression(column, value)); }
public static ComparisonExpression NotInVarCustomer(this IValueExpression col, string customer) { return(new ComparisonExpression(col, Operator.NotIn, new CustomerExpression(customer))); }
public static ComparisonExpression NotLike(this IValueExpression col, object val) { return(col.NotLike(new LiteralValueExpression(val))); }
public static ComparisonExpression NotBetween(this IValueExpression col, object a, object b) { return(new ComparisonExpression(col, Operator.NotBetween, new BetweenValueExpression(new LiteralValueExpression(a), new LiteralValueExpression(b)))); }
public XPathValueExpressionEvaluator(IValueExpression valueExpression, XPathCompiledExpression compiledExpression) { _valueExpression = valueExpression; _compiledExpression = compiledExpression; }
public static ComparisonExpression NotIn(this IValueExpression col, ISelectStatement select) { return(new ComparisonExpression(col, Operator.NotIn, select)); }