public static object ConvertToParameterValue(DataRow row, ParameterProfile paramInfo) { if (string.IsNullOrEmpty(paramInfo.LambdaExpression)) { return(MonadSaveTask.ConvertToParameterValue(row, paramInfo.Reference)); } return(ExpressionCalculator.CalculateLambdaExpression(ExpressionCalculator.BuildColumnExpression(paramInfo.LambdaExpression), typeof(object), row, null)); }
public virtual bool IsRunnable(DataRow row, DataObjectStore store) { if (!string.IsNullOrEmpty(this.RunnableLambdaExpression)) { return((bool)ExpressionCalculator.CalculateLambdaExpression(ExpressionCalculator.BuildColumnExpression(this.RunnableLambdaExpression), typeof(bool), row, null)); } return(this.RunnableTester == null || this.RunnableTester.IsRunnable(row)); }
public bool IsRunnable(DataRow row) { if (this.ParameterType == ParameterType.ModifiedColumn) { DataObjectStore dataObjectStore = row.Table.ExtendedProperties["DataSourceStore"] as DataObjectStore; if (dataObjectStore == null || !dataObjectStore.ModifiedColumns.Contains(this.Reference)) { return(false); } } if (!string.IsNullOrEmpty(this.RunnableLambdaExpression)) { return((bool)ExpressionCalculator.CalculateLambdaExpression(ExpressionCalculator.BuildColumnExpression(this.RunnableLambdaExpression), typeof(bool), row, null)); } return(this.runnableTester == null || this.runnableTester.IsRunnable(row)); }
protected override List <string> OnValidate(string lambdaExpression, PageConfigurableProfile profile) { List <string> list = new List <string>(); try { ColumnExpression expression = ExpressionCalculator.BuildColumnExpression(lambdaExpression); DataTable dataTable = new DataTable(); DataRow dataRow = dataTable.NewRow(); ExpressionCalculator.CompileLambdaExpression(expression, typeof(object), dataRow, null); } catch (Exception ex) { list.Add(string.Format("Fail to compile lambda expression {0} with error {1}", lambdaExpression, ex.ToString())); } return(list); }
public override void BuildParameters(DataRow row, DataObjectStore store, IList <ParameterProfile> paramInfos) { if (!string.IsNullOrEmpty(this.CommandTextLambdaExpression)) { this.DataHandler.CommandText = (string)ExpressionCalculator.CalculateLambdaExpression(ExpressionCalculator.BuildColumnExpression(this.CommandTextLambdaExpression), typeof(string), row, null); } this.DataHandler.Parameters.Clear(); if (!string.IsNullOrEmpty(this.DataObjectName)) { this.DataHandler.Parameters.AddWithValue("Instance", store.GetDataObject(this.DataObjectName)); } else { this.DataHandler.KeepInstanceParamerter = true; } MonadSaveTask.BuildParametersCore(row, paramInfos, this.DataHandler.Parameters); this.workUnitDescription = MonadSaveTask.BuildParametersDescription(row, paramInfos); this.DataHandler.ClearParameterNames(); this.DataHandler.SpecifyParameterNames(store.GetModifiedPropertiesBasedOnDataObject(row, this.DataObjectName)); }