コード例 #1
0
        public static ClientQuenstionForm GetInputData(this ClientQuenstionForm form)
        {
            foreach (var property in form.GetType().GetProperties())
            {
                var a = property.GetCustomAttributes(typeof(InputDataAttribute), true)
                        .Cast <InputDataAttribute>().FirstOrDefault();

                if (a == null)
                {
                    continue;
                }

                Console.WriteLine(a.Question + ":");
                var t = Console.ReadLine();

                var r = Convert.ChangeType(t, property.PropertyType == typeof(Money) ? typeof(int) : property.PropertyType);
                if (property.PropertyType == typeof(Money))
                {
                    r = new Money((int)r);
                }
                property.SetValue(form, r, null);
            }

            return(form);
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var form = new ClientQuenstionForm()
            {
                MonthlyIncome      = 5000,
                MonthlyCarCosts    = 500,
                MonthlyLivingCosts = 1500,
                PeopleSupported    = 2
            };

            //form.GetInputData();

            ICredibilityPolicy policy = GetSimplePolicy();
            //ICredibilityPolicy policy = GetRulePolicy();

            var money = policy.Calculate(form);

            Console.WriteLine("Your credibility is: " + money);
        }