static void customerViewPolicies(Client client) { while (true) { Console.WriteLine("Your Policies"); IPCollection ipCollection = client.getIPCollection(); // Iterate through the policies. Iterator ipIterator = ipCollection.getIterator(); int no = 1; while (ipIterator.hasNext()) { InsurancePolicy policy = (InsurancePolicy)ipIterator.next(); // Print out policy details inline. Console.WriteLine("#" + no++); Console.WriteLine("ID: " + policy.getPolicyID()); Console.WriteLine(); } // Get user option. Console.WriteLine("\n\n[1] View a policy\n[0] Return home"); Console.Write("Enter option: "); int option = Convert.ToInt32(Console.ReadLine()); if (option == 1) // View policy { // Get policy no. from user int policyNo = 0; while (true) { Console.Write("Enter policy no: "); policyNo = Convert.ToInt32(Console.ReadLine()); if (policyNo >= 0 && policyNo <= ipCollection.getCount()) { break; } else { Console.WriteLine("\nInvalid Input!"); } } customerViewAPolicy(ipCollection.getPolicy(policyNo - 1)); } else if (option == 0) // Return home { break; } } }
static void customerViewAPolicy(InsurancePolicy policy) { bool isRunning = false; while (isRunning) { // Display policy details. Console.WriteLine("ID: " + policy.getPolicyID()); Console.WriteLine("Terms & Conditions: "); int tAndCNo = 1; foreach (string tAndC in policy.getTermsCond()) { Console.WriteLine("#" + (tAndCNo++) + tAndC); } Console.WriteLine("Riders: "); int riderNo = 1; foreach (Rider r in policy.getRiderList()) { Console.WriteLine("#" + riderNo++); Console.WriteLine("Description: " + r.getDescription()); Console.WriteLine("Total Amount payable: $" + r.getTotalAmountPayable()); Console.WriteLine("Pay out amount: $" + r.getPayOutAmount()); Console.WriteLine(); } // Get outstanding premiums. List <Premium> premiums = policy.getPremiums(); bool hasOutstandingPremiums = premiums.Count > 0; if (hasOutstandingPremiums) // Has outstanding premiums. { Console.WriteLine("Has outstanding premiums!"); Console.WriteLine("\n\n[1] Pay Outstanding Premium(s)\n[0] Return home"); } else // Has no outstanding premiums. { Console.WriteLine("Has no outstanding premium!"); Console.WriteLine("[0] Return home"); } while (true) { Console.Write("Enter option: "); int option = Convert.ToInt32(Console.ReadLine()); if (option == 1 && hasOutstandingPremiums) // Customer wants to pay premium using credit card. { customerPayCreditCard(premiums); break; } else if (option == 0) // Return back to the list of policies { isRunning = false; break; } else { Console.WriteLine("Invalid option."); } } } }