/// <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); }
/// <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); }
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}"); }