コード例 #1
0
        public bool IsValid(AvailableProductsFilter request)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            return
                (request.Age >= 27 &&
                 request.MonthlyIncome >= 62500);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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.");
        }