/// <summary>
 /// Check if the user can Manually Authorise the payment 
 /// </summary>
 /// <param name="user">Syatem User</param>
 /// <param name="checkLog"> Collection of ClaimFinancialAuthorityLimitCheckResult </param>
 /// <param name="product"> Product Version </param>
 /// <param name="check"> Claim Financial Authority Check Type </param>
 /// <param name="header"> Claim mHeader</param>
 /// <param name="claimTransactionHeader"> Claim Transaction Header </param>
 /// <returns> True / False</returns>
 protected bool CanPerformManualCheck(User user, List<ClaimFinancialAuthorityLimitCheckResult> checkLog, ProductVersion product, StaticValues.ClaimFinancialAuthorityCheckType check, ClaimHeader header, ClaimTransactionHeader claimTransactionHeader)
 {
     FinancialAuthorityCheckComponents components = new FinancialAuthorityCheckComponents(claimTransactionHeader.ClaimHeader, null, claimTransactionHeader);
     var claimArgs = new ClaimHeaderArgument(AmountDataSource.Historical, header, claimTransactionHeader);
     var result = ClaimFinancialAuthorityCheckUtil.PerformUserLimitCheck(user.UserID, product, StaticValues.ClaimFinancialAuthorityLimitType.LimitForManualAuthorisation, check, claimArgs, components,null);
     checkLog.Add(result);
     return result == ClaimFinancialAuthorityLimitCheckResult.NullValue || result.IsAuthorised;
 }
        /// <summary>
        /// Check if the user can Manually Authorise the payment 
        /// </summary>
        /// <param name="user"> System User </param>
        /// <param name="checkLog"> Collection of Claim Financial Authority Limit Check Result </param>
        /// <param name="product"> Product Version  </param>
        /// <param name="check"> Enum Claim Financial Authority Check Type</param>
        /// <param name="claimTransactionHeader">Claim Transaction Header</param>
        /// <returns> Bool True / False </returns>
        protected bool CanPerformManualCheck(User user, List<ClaimFinancialAuthorityLimitCheckResult> checkLog, ProductVersion product, StaticValues.ClaimFinancialAuthorityCheckType check, ClaimTransactionHeader claimTransactionHeader)
        {
            FinancialAuthorityCheckComponents components = new FinancialAuthorityCheckComponents(claimTransactionHeader.ClaimHeader, null, claimTransactionHeader);

            var claimTransactionArgs = new ClaimTransactionHeaderArgument(AmountDataSource.Historical, claimTransactionHeader);
            // Determine if the manual auth is possible.
            var result = ClaimFinancialAuthorityCheckUtil.PerformUserLimitCheck(user.UserID, product, StaticValues.ClaimFinancialAuthorityLimitType.LimitForManualAuthorisation, check, claimTransactionArgs, components, null);
            // Add the result to the checklog that was passed in, a list of results of the ClaimFinancialAuthorityChecks
            checkLog.Add(result);
            // Return true or false, appropriately
            return result == ClaimFinancialAuthorityLimitCheckResult.NullValue || result.IsAuthorised;
        }