public override void Run(object parameter, LanguageComponentManager trackMark) { if (parameter != null) { var orderItem = parameter as OrderItem; Console.WriteLine($"发送采购商品确定邮件,商品名称:{orderItem.product.PName},数量{orderItem.Number}"); } }
/// <summary> /// 钝化语句组建 /// </summary> /// <param name="manager"></param> public static void FreeLanguageCompoentManagerObject(LanguageComponentManager manager) { using (Stream stream = File.Open(LanguageFileName, FileMode.Create)) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, manager); } }
/// <summary> /// 有参数运行语句组建 /// </summary> /// <param name="parameter"></param> /// <param name="trackMark"></param> public override void Run(object parameter, LanguageComponentManager trackMark) { trackMark.Index = 0; if (this.Expression(parameter as TParameter)) { this.If.Run(parameter, trackMark); } else if (Else != null) { this.Else.Run(parameter, trackMark); } }
/// <summary> /// 带参运行语句组件 /// </summary> /// <param name="parameter"></param> /// <param name="trackMark"></param> public override void Run(object parameter, LanguageComponentManager trackMark) { trackMark.Index = 1; var PList = (parameter as TParameter); for (int index = CurrentIndex; index < PList.Count; index++) { this.CurrentIndex = index;//每次执行完了都记录下当前执行位置 if (ItemExpression != null) { ItemExpression.Run(PList[index], trackMark); } } }
/// <summary> /// 创建一个有关订单审批流程的语句组件管理器 /// </summary> /// <param name="order"></param> /// <returns></returns> public static LanguageComponentManager CreateNewOrderLanguageComponent(Order order) { LanguageComponentManager result = new LanguageComponentManager() { Parameter = order }; var sendEmail = new SenEmailOrderItemConfirmComponent(); var forlanguage = new ForLanguageComponent <Order>(sendEmail, null); var ifelselanguage = new IfLanguageComponent <Order>(forlanguage, null); ifelselanguage.SetIfExpression(ord => ord.customer.Type == CustomerType.VIP, order); result.TrackMark += ifelselanguage.Run; result.TrackMark += forlanguage.Run; result.TrackMark += sendEmail.Run; result.FirstLanguage = ifelselanguage; return(result); }
/// <summary> /// 不带参数运行 /// </summary> /// <param name="trackMark"></param> public override void Run(LanguageComponentManager trackMark) { this.Run(Parameter, trackMark); }
/// <summary> /// 运行语句组建 /// </summary> /// <param name="trackMark"></param> public virtual void Run(object parameter, LanguageComponentManager trackMark) { }
/// <summary> /// 运行语句组建 /// </summary> /// <param name="trackMark"></param> public virtual void Run(LanguageComponentManager trackMark) { }