示例#1
0
 /// <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))));
 }
示例#2
0
        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;
        }
示例#3
0
        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;
        }
示例#4
0
        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);
        }
示例#6
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);
            }
示例#7
0
        /// <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));
        }
示例#8
0
 public void AddParameter(IValueExpression paramExpr)
 {
     if (_parameters == null)
     {
         _parameters = new List <IValueExpression>();
     }
     _parameters.Add(paramExpr);
 }
示例#9
0
        //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);
        }
示例#10
0
 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;
     }
 }
示例#11
0
        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);
        }
示例#12
0
        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;
        }
示例#13
0
 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)));
 }
示例#14
0
        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);
        }
示例#15
0
        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);
        }
示例#16
0
        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);
        }
示例#17
0
            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);
        }
示例#19
0
        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);
            }
        }
示例#20
0
 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())));
 }
示例#21
0
 public void AddParameter(IValueExpression paramExpr)
 {
     if (_parameters == null) {
         _parameters = new List<IValueExpression>();
     }
     _parameters.Add(paramExpr);
 }
示例#22
0
 private ScriptExpression(string script, IValueExpression rhs, IValueExpression lhs)
 {
     _script = script;
     _rhs = rhs;
     _lhs = lhs;
 }
示例#23
0
 public static UnaryComparisonExpression IsNotNull(this IValueExpression col)
 {
     return(new UnaryComparisonExpression(col, Operator.IsNotNull));
     //return new ComparisonExpression(col, Operator.IsNot, new LiteralValueExpression(null));
 }
示例#24
0
 public static ComparisonExpression LtOrEq(this IValueExpression col, IValueExpression val)
 {
     return(new ComparisonExpression(col, Operator.LtOrEq, val));
 }
示例#25
0
 public static ComparisonExpression NotLike(this IValueExpression col, IValueExpression val)
 {
     return(new ComparisonExpression(col, Operator.NotLike, val));
 }
示例#26
0
 public static ComparisonExpression LtOrEq(this IValueExpression col, object val)
 {
     return(col.LtOrEq(new LiteralValueExpression(val)));
 }
示例#27
0
 public static ISetItemExpression Set(this IColumnExpression column, IValueExpression value)
 {
     return(new SetItemExpression(column, value));
 }
示例#28
0
 public static ComparisonExpression NotInVarCustomer(this IValueExpression col, string customer)
 {
     return(new ComparisonExpression(col, Operator.NotIn, new CustomerExpression(customer)));
 }
示例#29
0
 public static ComparisonExpression NotLike(this IValueExpression col, object val)
 {
     return(col.NotLike(new LiteralValueExpression(val)));
 }
示例#30
0
 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))));
 }
示例#31
0
 public XPathValueExpressionEvaluator(IValueExpression valueExpression, XPathCompiledExpression compiledExpression)
 {
     _valueExpression    = valueExpression;
     _compiledExpression = compiledExpression;
 }
示例#32
0
 public static ComparisonExpression NotIn(this IValueExpression col, ISelectStatement select)
 {
     return(new ComparisonExpression(col, Operator.NotIn, select));
 }