public override CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { return(new CodeMethodInvokeExpression( new CodeTypeReferenceExpression(typeof(LabelExpressionBuilder)), "GetLabel", new CodePrimitiveExpression(entry.Expression.Trim()), new CodePrimitiveExpression(context.VirtualPath))); }
public override CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { return(new CodeMethodInvokeExpression( new CodeTypeReferenceExpression(typeof(ComponentExpressionBuilder)), "GetComponent", new CodePrimitiveExpression(entry.Expression.Trim()), new CodeTypeOfExpression(new CodeTypeReference(entry.PropertyInfo.PropertyType)))); }
public override object EvaluateExpression(object target, System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { string value = String.Empty; string scriptName = entry.Expression; try { string functionName = null; if (scriptName.Contains("@")) { var tmp = scriptName.Split('@'); functionName = tmp[0].Trim(); scriptName = tmp[1].Trim(); } else { throw new ArgumentException("Invalid expression! Use <%$Iron:My.sayHello@my/functions.rb"); } engine = IronRuntime.GetDefaultIronRuntime(SPContext.Current.Site).GetEngineByExtension(Path.GetExtension(scriptName)); value = engine.InvokeDynamicFunction(functionName, scriptName, target, entry).ToString(); } catch (Exception ex) { IronRuntime.LogError("Error", ex); if (SPContext.Current.Web.UserIsSiteAdmin && engine.IronRuntime.IronHive.Web.CurrentUser.IsSiteAdmin) { var eo = engine.ScriptEngine.GetService <ExceptionOperations>(); string error = eo.FormatException(ex); IronRuntime.LogError(String.Format("Error executing script {0}: {1}", scriptName, error), ex); value = error; if (engine != null) { new IronLogger(engine.IronRuntime).Log(String.Format("Ruby Error: {0} at {1}", ex.Message, error)); } } else { value = "Error occured"; } } return(value); }
public override System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, System.Web.Compilation.ExpressionBuilderContext context) { // here is where the magic happens that tells the compiler // what to do with the expression it found. // in this case we return a CodeMethodInvokeExpression that // makes the compiler insert a call to our custom method // 'GetValueFromKey' CodeExpression[] inputParams = new CodeExpression[] { new CodePrimitiveExpression(entry.Expression.Trim()), new CodeTypeOfExpression(entry.DeclaringType), new CodePrimitiveExpression(entry.PropertyInfo.Name) }; return(new CodeMethodInvokeExpression( new CodeTypeReferenceExpression( this.GetType() ), "GetValueFromKey", inputParams )); }
// Methods public virtual System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { }
public virtual object EvaluateExpression(object target, System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { }
public override System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, Object parsedData, ExpressionBuilderContext context) { return(default(System.CodeDom.CodeExpression)); }
public override Object EvaluateExpression(Object target, System.Web.UI.BoundPropertyEntry entry, Object parsedData, ExpressionBuilderContext context) { return(default(Object)); }
public override CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { return(new CodeSnippetExpression(entry.Expression.Trim())); }
public override System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { throw new NotSupportedException(); }
public abstract System.CodeDom.CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, Object parsedData, ExpressionBuilderContext context);