private void RunAssertionExecCtx(EPServiceProvider epService, bool soda)
        {
            string epl = "select " +
                         "current_evaluation_context() as c0, " +
                         "current_evaluation_context(), " +
                         "current_evaluation_context().get_EngineURI() as c2 from SupportBean";
            EPStatement stmt     = SupportModelHelper.CreateByCompileOrParse(epService, soda, epl, "my_user_object");
            var         listener = new SupportUpdateListener();

            stmt.Events += listener.Update;

            Assert.AreEqual(typeof(EPLExpressionEvaluationContext), stmt.EventType.GetPropertyType("current_evaluation_context()"));

            epService.EPRuntime.SendEvent(new SupportBean());
            EventBean @event = listener.AssertOneGetNewAndReset();
            EPLExpressionEvaluationContext ctx = (EPLExpressionEvaluationContext)@event.Get("c0");

            Assert.AreEqual(epService.URI, ctx.EngineURI);
            Assert.AreEqual(stmt.Name, ctx.StatementName);
            Assert.AreEqual(-1, ctx.ContextPartitionId);
            Assert.AreEqual("my_user_object", ctx.StatementUserObject);
            Assert.AreEqual(epService.URI, @event.Get("c2"));

            epService.EPAdministrator.DestroyAllStatements();
        }
        public object Evaluate(EvaluateParams evaluateParams)
        {
            var exprEvaluatorContext = evaluateParams.ExprEvaluatorContext;
            var ctx = new EPLExpressionEvaluationContext(exprEvaluatorContext.StatementName, exprEvaluatorContext.AgentInstanceId, exprEvaluatorContext.EngineURI, exprEvaluatorContext.StatementUserObject);

            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QaExprConst(ctx);
            }
            return(ctx);
        }