/// <summary>
        /// Factory which return policy Type manager
        /// </summary>
        /// <returns></returns>

        public IPolicyTypeManager GetPolicyTypeManager(EnumPolicyType policyType)
        {
            IPolicyTypeManager policyTypeManager = null;

            switch (policyType)
            {
            case EnumPolicyType.Comprehensive: policyTypeManager = new ComprehensivePolicy(); break;

            case EnumPolicyType.ThirdParty: policyTypeManager = new ThirdPartyPolicy(); break;

            case EnumPolicyType.Both: policyTypeManager = new BothPolicy(); break;
            }
            return(policyTypeManager);
        }
Example #2
0
        /// <summary>
        /// Validate policy type
        /// </summary>
        /// <param name="_policyTypeValue"></param>
        /// <param name="_policyType"></param>
        /// <returns></returns>
        static bool ValidatePolicyType(string _policyTypeValue, out EnumPolicyType _policyType)
        {
            _policyType = EnumPolicyType.Comprehensive;
            if (_policyTypeValue.All(char.IsDigit) == false)
            {
                return(false);
            }

            if (Enum.IsDefined(typeof(EnumPolicyType), Convert.ToInt32(_policyTypeValue)) == false)
            {
                return(false);
            }

            _policyType = (EnumPolicyType)Convert.ToInt32(_policyTypeValue);
            return(true);
        }
Example #3
0
        static void ForCarPremiumCalculate()
        {
            // Declare variables and then initialize to zero.
            int            carValue = 0, registrationYear = 0;
            EnumPolicyType policyType = EnumPolicyType.Comprehensive;

            // Display title as the Console Calculator for Car insurance premium
            Console.WriteLine("\n");
            Console.WriteLine("-------Console Calculator for Car insurance premium-------\r");

            // Ask the user to type the car value.
            Console.WriteLine("Please enter the car value between 100000 to 100000000 :");
            // Validate Car Value
            if (ValidateCarValue(Console.ReadLine(), out carValue) == false)
            {
                Console.WriteLine("Car value not valid \n");
                return;
            }

            // Ask the user to type the car registration year.
            Console.WriteLine("Please enter the car registration year between 2015 to 2020 :");
            // Validate Car registration year
            if (ValidateCarRegistrationYear(Console.ReadLine(), out registrationYear) == false)
            {
                Console.WriteLine("Car registration year not valid \n");
                return;
            }

            // Ask the user to type the policy type.
            Console.WriteLine(@"Please enter the policy type number:
1 - Comprehensive
2 - Third Party
3 - Both");
            // Validate policy type
            if (ValidatePolicyType(Console.ReadLine(), out policyType) == false)
            {
                Console.WriteLine("Policy type not valid \n");
                return;
            }

            // Call function for calculate the premium
            var response = Calculate(new UserPremiumData
            {
                value      = carValue,
                year       = registrationYear,
                policyType = policyType
            });

            // print statement
            Console.WriteLine("\n");
            Console.WriteLine("-----------Calculation Result-------------");

            // Print Insurance calculate result
            Console.WriteLine($@"
Car Value - {carValue}
Registration year - {registrationYear}
Policy Type - {((EnumPolicyType)policyType).ToString()}
Premium Charges Percentage - {response.premiumChargesPercentage}
Amount - {response.premiumAmount}
Tax Percentage - {response.premiumTaxPercentage}
Tax Amount - {response.premiumTaxAmount}
Total Amount - {response.premiumTotalAmount}");
        }