public void TestCount() { IFunction func = FunctionFactory.Create(CalcEnum.Count); func.Add(1); func.Add(1); Assert.AreEqual(func.GetValue(), 2); }
public void TestAve() { IFunction func = FunctionFactory.Create(CalcEnum.Ave); func.Add(100); func.Add(200); Assert.AreEqual(func.GetValue(), 150); }
public void Aggregate(object value) { if (m_calc != null) { m_calc.Add(value); } }
private void button1_Click(object sender, EventArgs e) { //动态加载程序集并创建对象 IFunction objfunction = (IFunction)Assembly.LoadFrom("Function.dll").CreateInstance("Function.Function"); int a = Convert.ToInt32(this.textBox1.Text); int b = Convert.ToInt32(this.textBox2.Text); string result = "0"; //通过接口完成计算 switch (this.comboBox1.SelectedIndex) { case 0: result = objfunction.Add(a, b).ToString(); break; case 1: result = objfunction.Sub(a, b).ToString(); break; case 2: result = objfunction.Multiply(a, b).ToString(); break; case 3: result = objfunction.Division(a, b).ToString(); break; default: break; } this.textBox3.Text = result; }
/// <summary> /// Registers functions. /// </summary> public static void RegisterFunctions() { // Special methods ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Function), ExpressionHelper.FunctionWithName); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Val), ExpressionHelper.Val); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Abs)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Avg)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.AvgDistinct), FunctionName.Avg, (expression, name) => { return(ExpressionHelper.Function(expression, name).Before(SqlBuilder.Instance.Raw("DISTINCT"))); }); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Cast)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Ceiling)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Coalesce), true); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Concat), true); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Count), (expression, name) => { IFunction func = ExpressionHelper.Function(expression, name); if (expression.Arguments.Count == 0) { func.Add(SqlBuilder.Instance.Col("*")); } return(func); }); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.CountDistinct), FunctionName.Count, (expression, name) => { return(ExpressionHelper.Function(expression, name).Before(SqlBuilder.Instance.Raw("DISTINCT"))); }); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Floor)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.LastInsertId)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Length)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Lower)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.LTrim)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Max)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Min)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Now)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.NullIf)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Replace)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Round)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.RTrim)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Substring)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Sum)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.SumDistinct), FunctionName.Sum, (expression, name) => { return(ExpressionHelper.Function(expression, name).Before(SqlBuilder.Instance.Raw("DISTINCT"))); }); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Trim)); ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Upper)); }
public bool SaveFunction(FunctionModel model) { try { if (model.FunctionId == 0) { return(_functionManager.Add(model)); } return(_functionManager.Update(model)); } catch (Exception ex) { throw new TpoBaseException(ex.Message); } }
public ActionResult AddFunction() { Function function = new Function(); function.DisplayName = "测试一下"; function.ActionUrl = "1312"; function.DisplayOrder = 1; function.Enable = false; function.FunctionGuid = Guid.NewGuid(); function.FunctionName = "Function名称"; function.FunctionType = "23423"; function.ParentGuid = Guid.Empty; function.TimeCreated = DateTime.Now; FunctionService.Add(function); return(View(function)); }
/// <summary> /// Initialize the class with the implemented functions. /// </summary> /// <param name="registerSystemFunctions">If true, register also system functions.</param> public static void Initialize(bool registerSystemFunctions = true) { // Operators RegisterOperators(); // Function method ExpressionProcessor.AddFunction(typeof(SqlExp), nameof(SqlExp.Function), expression => { if (expression.Arguments.Count == 0) { throw new ArgumentException("Invalid expression"); } ConstantExpression expName = expression.Arguments[0] as ConstantExpression; if (expName == null) { throw new ArgumentException("Invalid expression"); } IFunction func = SqlBuilder.Instance.Function(((string)expName.Value).ToUpperInvariant()); if (expression.Arguments.Count > 1) { NewArrayExpression expParams = expression.Arguments[1] as NewArrayExpression; if (expParams != null) { foreach (var arg in expParams.Expressions) { func.Add(SqlBuilder.Instance.Val(arg)); } } } return(func); }); // Functions RegisterFunctions(); // System functions if (registerSystemFunctions) { RegisterSystemFunctions(); } }