public IBenefitsPackage ApplyDiscount(IBenefitsPackage benefitsPackage, IEmployee employee) { var dependentDiscount = employee.Dependents .Where(x => x.Name.StartsWith(_configuration.DiscountNamePrefix, StringComparison.InvariantCultureIgnoreCase)) .Select(x => _configuration.StandardBenefitPackageDiscount) .Sum(); if (dependentDiscount > 0) { benefitsPackage.DependentCost = DiscountUtility.GetDiscount(benefitsPackage.DependentCost, dependentDiscount); } return benefitsPackage; }
public IBenefitsPackage ApplyDiscount(IBenefitsPackage benefitsPackage, IEmployee employee) { benefitsPackage = _dependentBenefitsPackageDiscountChain.ApplyDiscount(benefitsPackage, employee); var employeeDiscount = employee.Name.StartsWith(_configuration.DiscountNamePrefix, StringComparison.InvariantCultureIgnoreCase) ? _configuration.StandardBenefitPackageDiscount : 0; if (employeeDiscount > 0) { benefitsPackage.EmployeeCost = DiscountUtility.GetDiscount(benefitsPackage.EmployeeCost, employeeDiscount); } return benefitsPackage; }