예제 #1
0
        public ApprovalResponse Approve(IExpenseReport expenseReport)
        {
            var response = _approver.ApproveExpense(expenseReport);


            return(response == ApprovalResponse.Denied ? _next.Approve(expenseReport) : response);
        }
예제 #2
0
        public ApprovalResponse Approve(IExpenseReport expenseReport)
        {
            var response = _expenseApprover.ApproveExpense(expenseReport);

            return(response == ApprovalResponse.BeyondApprovalLimit
                                ? _expenseHandler.Approve(expenseReport)
                                : response);
        }
예제 #3
0
        public ApprovalResponse Approve(IExpenseReport expenseReport)
        {
            ApprovalResponse response = _approver.ApproveExpense(expenseReport);

            return(response == ApprovalResponse.BeyondApprovalLimit
                ? _next.Approve(expenseReport)
                : response);
        }
예제 #4
0
        public ApprovalResponse Approve(IExpenseReport expenseReport)
        {
            var response = _ExpenseApprover.ApproveResponse(expenseReport);

            if (response == ApprovalResponse.BeyondApprovalLimit)
            {
                return(_Next.Approve(expenseReport));
            }
            return(response);
        }
        public ApprovalResponse Approve(decimal expenseAmount)
        {
            ApprovalResponse response = _approver.Approve(expenseAmount);

            if (response == ApprovalResponse.BeyondApprovalLimit)
            {
                return(_next.Approve(expenseAmount));
            }
            return(response);
        }
예제 #6
0
        public ApprovalResponse Approve(IExpenseReport expense)
        {
            ApprovalResponse response = _approver.ApproveExpense(expense);

            if (response == ApprovalResponse.BeyondApprovalLimit)
            {
                return(_next.Approve(expense));
            }
            return(response);
        }
        public ApprovalResponse Approve(Expense expense)
        {
            var response = _approver.ApproveExpense(expense);

            if (response == ApprovalResponse.BeyondApprovalLimit)
            {
                return(_next.Approve(expense));
            }

            return(response);
        }
        public ApprovalResponse Approve(IExpenseReport expenseReport)
        {
            ApprovalResponse response = _approver.ApproveExpense(expenseReport);

            if (response == ApprovalResponse.BeyondApprovalLimit)
            {
                return(_next.Approve(expenseReport));
            }
            Console.WriteLine($"Approved by {(_approver as Employee).Name}");
            return(response);
        }
예제 #9
0
        //################################################################################
        #region IExpenseHandler Implementation

        ApprovalResponse IExpenseHandler.Approve(IExpenseReport expenseReport, out string approverName)
        {
            approverName = m_Approver.Name;
            var response = m_Approver.ApproveExpense(expenseReport);

            if (response == ApprovalResponse.BeyondApprovalLimit)
            {
                return(m_NextHandler.Approve(expenseReport, out approverName));
            }

            return(response);
        }
예제 #10
0
        public Decision Approve(ExpenseReport expenseReport)
        {
            var decision = _expenseApprover.Approve(expenseReport);

            return(decision.Equals(Decision.Escalated) ? _next.Approve(expenseReport) : decision);
        }