示例#1
0
 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));
 }
示例#2
0
 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));
 }
示例#3
0
 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);
        }
示例#5
0
 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));
 }