Пример #1
0
 public override bool Filter(LeaveContext leaveContext, Chain chain)
 {
     leaveContext.Description = leaveContext.Description.Replace("123", "2.经理");
     //Console.Write($"***{leaveContext.Description}");
     chain.Filter(leaveContext);
     leaveContext.AuditRemark = $"{Name}: 修改-->";
     Console.WriteLine($"{leaveContext.AuditRemark}");
     return(true);
 }
Пример #2
0
        public override bool HandlerLeaveRequest(LeaveContext leaveContext)
        {
            if (leaveContext.Day > 15 && leaveContext.Day <= this.Days)
            {
                Console.Write($"职位:{Name}: 审批通过.");
                return(false);
            }

            return(true);
        }
Пример #3
0
        public bool Filter(LeaveContext leaveContext)
        {
            if (index == handlers.Count)
            {
                return(false);
            }
            var handler = handlers[index];

            index++;
            return(handler.Filter(leaveContext, this));
        }
Пример #4
0
 public bool HandlerLeaveRequest(LeaveContext leaveContext)
 {
     foreach (var handler in handlers)
     {
         if (!handler.HandlerLeaveRequest(leaveContext))
         {
             return(false);
         }
     }
     return(true);
 }
Пример #5
0
 public override bool HandlerLeaveRequest(LeaveContext leaveContext)
 {
     if (leaveContext.Day > 7 && leaveContext.Day <= this.Days)
     {
         Console.Write($"职位:{Name} : 审批通过.");
         return(false);
     }
     return(true);
     //else 第一种
     //{
     //   NextLeaveRequest(leaveContext);
     //    return;
     //}
 }
Пример #6
0
        static void Main(string[] args)
        {
            var ment = new 主管()
            {
                Name = "刘主管",
                Days = 7
            };

            var manager = new 经理()
            {
                Name = "孙经理",
                Days = 15
            };
            var ceo = new 总裁()
            {
                Name = "张总裁",
                Days = 30
            };

            var context = new LeaveContext()
            {
                Day         = 12,
                Description = "shuoming,123,ABC"
            };

            #region 第一种 顺序排列:依次转交
            //ment.SetHandler(manager) ;
            //manager.SetHandler(ceo);
            //ment.HandlerLeaveRequest(context);
            #endregion

            #region 第二种 无序排列 :只要结果
            //var chain = new Chain(); //链
            //chain.Add(ment).Add(manager).Add(ceo);
            //chain.HandlerLeaveRequest(context);

            #endregion

            #region 第三种 无序排列 :过滤
            var chain = new Chain(); //链
            chain.Add(ment).Add(manager).Add(ceo);
            chain.Filter(context);
            #endregion



            Console.ReadLine();
        }
Пример #7
0
 public abstract bool Filter(LeaveContext leaveContext, Chain chain);
Пример #8
0
 public abstract bool HandlerLeaveRequest(LeaveContext leaveContext);
Пример #9
0
 protected void NextLeaveRequest(LeaveContext leaveContext)
 {
     NextHandler.HandlerLeaveRequest(leaveContext);
 }