예제 #1
0
 public override void Run(object parameter, LanguageComponentManager trackMark)
 {
     if (parameter != null)
     {
         var orderItem = parameter as OrderItem;
         Console.WriteLine($"发送采购商品确定邮件,商品名称:{orderItem.product.PName},数量{orderItem.Number}");
     }
 }
예제 #2
0
 /// <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);
     }
 }
예제 #3
0
 /// <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);
     }
 }
예제 #4
0
        /// <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);
                }
            }
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
 /// <summary>
 /// 不带参数运行
 /// </summary>
 /// <param name="trackMark"></param>
 public override void Run(LanguageComponentManager trackMark)
 {
     this.Run(Parameter, trackMark);
 }
예제 #7
0
 /// <summary>
 /// 运行语句组建
 /// </summary>
 /// <param name="trackMark"></param>
 public virtual void Run(object parameter, LanguageComponentManager trackMark)
 {
 }
예제 #8
0
 /// <summary>
 /// 运行语句组建
 /// </summary>
 /// <param name="trackMark"></param>
 public virtual void Run(LanguageComponentManager trackMark)
 {
 }