public bool IsValid(AvailableProductsFilter request) { if (request is null) { throw new ArgumentNullException(nameof(request)); } return (request.Age >= 27 && request.MonthlyIncome >= 62500); }
public SortedAvailableProductSet GetAvailableProductsForNtf(AvailableProductsFilter filter) { var validRule = _ntfRules.FirstOrDefault(r => r.IsValid(filter)); if (validRule == null) { throw new InvalidOperationException($"There is no valid available product rule that matches your filter parameters: age: {filter.Age}, income: {filter.MonthlyIncome}"); } return(validRule.ProductSet); }
static void Main(string[] args) { Console.WriteLine("Retrieving valid products for 32 year old earning R70 000 monthly..."); var age = 32; var monthlyIncome = 72000; var filter = new AvailableProductsFilter(age, monthlyIncome); var mpaRules = new MpaRules(); var productsSet = mpaRules.GetAvailableProductsForNtf(filter); foreach (var product in productsSet.AvailableProducts) { Console.WriteLine($"Order: {product.OrderNo}, ProductCode: {product.ProductCode}"); } Console.WriteLine("Retrieval complete."); }