/// <summary> /// Evaluates the contract payment filter. /// </summary> /// <param name="claim">The claim.</param> /// <param name="paymentResults">The payment result list.</param> /// <returns></returns> private List <PaymentResult> EvaluatePaymentFilter(IEvaluateableClaim claim, List <PaymentResult> paymentResults) { foreach (PaymentTypeBase paymentType in Contract.PaymentTypes) { //Inject payment logics based on Payment type. IPaymentTypeLogic paymentlogic = Factory.CreateInstance <IPaymentTypeLogic>(((Enums.PaymentTypeCodes)paymentType.PaymentTypeId).ToString()); paymentlogic.PaymentTypeBase = paymentType; //Apply payment logic for each payment types. This will consider all charge line codes to match with contract codes paymentResults = paymentlogic.Evaluate(claim, paymentResults, false, true); } return(paymentResults); }
public List <PaymentResult> Evaluate(IEvaluateableClaim claim, List <PaymentResult> paymentResults, bool isCarveOut, bool isContractFilter) { //Match claim codes with contract codes if (IsMatch((claim))) { foreach (PaymentTypeBase paymentType in ContractServiceType.PaymentTypes) { //Inject paymentlogics based on Payment type. IPaymentTypeLogic paymentlogic = Factory.CreateInstance <IPaymentTypeLogic>(((Enums.PaymentTypeCodes)paymentType.PaymentTypeId).ToString(), _connectionString); paymentlogic.PaymentTypeBase = paymentType; //Appy payment logic for each payment types. This will consider all charge line codes to match with contract codes paymentResults = paymentlogic.Evaluate(claim, paymentResults, ContractServiceType.IsCarveOut, isContractFilter); } } return(paymentResults); }