コード例 #1
0
        public override void Approve(Purchase purchase)
        {
            if (purchase.Cost < 5000)
            {
                Console.WriteLine($"President approved purchase #{purchase.Number} that cost {purchase.Cost:C}");
                return;
            }

            Next?.Approve(purchase);
        }
コード例 #2
0
        public override ApprovalResult Approve(int refund)
        {
            var result = Approver.ApproveRefund(refund);

            if (result == ApprovalResult.BeyondLimit)
            {
                return(Next.Approve(refund));
            }

            return(result);
        }
コード例 #3
0
        public override ApprovalResult Approve(int refund)
        {
            var result = Approver.ApproveRefund(refund);

            if (result == ApprovalResult.BeyondLimit)
            {
                //Do Managerial custom logic here if needed
                //eg. log approve activity in database

                return(Next.Approve(refund));
            }
            return(result);
        }
コード例 #4
0
        public override ApprovalResult Approve(int refund)
        {
            var result = Approver.ApproveRefund(refund);

            if (result == ApprovalResult.BeyondLimit)
            {
                //Do Vice President custom logic here if needed
                //This is pretty much same as BasicApproval and ManagerApproval
                //I'm trying to show that you can do customization here
                return(Next.Approve(refund));
            }

            return(result);
        }
コード例 #5
0
ファイル: TeamLead.cs プロジェクト: rlima05/Design-Patterns
 public override bool Approve(decimal amount)
 {
     Console.WriteLine("Team Lead");
     return(amount > LimitAmount?Next.Approve(amount) : true);
 }