static void editPolicy(InsurancePolicy policy) { List <Rider> policyRiders = policy.getRiderList(); int riderNo = policyRiders.Count; Console.Write("Add Rider?[Y/N]: "); string option = Console.ReadLine(); while (option == "Y") { Console.Write("\nEnter in policy description: "); string desc = Console.ReadLine(); Console.Write("\nEnter policy type: "); string policyType = Console.ReadLine(); Console.Write("\nEnter payout amount: $"); double payOut = Convert.ToDouble(Console.ReadLine()); Console.Write("\nEnter total amount: $"); double totalAmt = Convert.ToDouble(Console.ReadLine()); Console.Write("\nConfirm Add Rider?[Y/N]: "); string addRider = Console.ReadLine(); if (addRider == "Y") { Rider rider = new Rider(riderNo, desc, policyType, payOut, totalAmt, new PercentagePayoutStrategy()); policyRiders.Add(rider); riderNo++; Console.WriteLine("Rider Updated!"); Console.Write("\nAdd more riders?[Y/N]: "); option = Console.ReadLine(); } else if (addRider == "N") { continue; } } if (option == "N") { Console.Write("Pay Premium by Cheque?[Y/N]: "); string ppbc = Console.ReadLine(); while (ppbc == "Y") { if (policyRiders[0].getTotalAmountPayable() == 0) { Console.Write("No outstanding premium"); break; } else { Console.WriteLine("Total amount payable = $" + policyRiders[0].getTotalAmountPayable()); Console.Write("Enter Cheque No.: "); string cheque = Console.ReadLine(); Console.Write("Enter bank acc No.: "); string bank = Console.ReadLine(); Console.Write("\nConfirm Payment?[Y/N]: "); string payByCheque = Console.ReadLine(); if (payByCheque == "Y") { //Store cheque details //Total amount payable =0 Console.WriteLine("Cheque Stored!"); break; } else if (payByCheque == "N") { continue; } } } Console.WriteLine("Policy Updated!"); } }
public IPBuilder addRider(Rider rider) { this.riders.Add(rider); return(this); }
static void createPolicy(List <Client> cList, Employee loggedInEmployee, List <InsurancePolicy> pList) //Done by Melvin { List <Rider> riderList = new List <Rider>(); List <string> TnC = new List <string>(); int moreRiders = 1; int riderNo = 0; Console.WriteLine("\n-----List of clients-----"); for (int i = 0; i < cList.Count; i++) { Console.WriteLine("[" + cList[i].getClientID() + "]" + cList[i].getName()); } Console.Write("Select a client: "); int clientNo = Convert.ToInt32(Console.ReadLine()); Console.Write("\nSelect premium type (1-One Time | 2-Periodic): "); int premiumType = Convert.ToInt32(Console.ReadLine()); int noOfDays = 0; //placeholder if (premiumType == 2) { Console.Write("Number of days per period: "); noOfDays = Convert.ToInt32(Console.ReadLine()); } Console.Write("\nEnter maturity date: "); DateTime maturityDate = Convert.ToDateTime(Console.ReadLine()); DateTime startDate = DateTime.Now; while (moreRiders == 1) { Console.Write("\nEnter in policy description: "); string desc = Console.ReadLine(); Console.Write("\nEnter policy type: "); string policyType = Console.ReadLine(); Console.Write("\nEnter payout amount: $"); double payOut = Convert.ToDouble(Console.ReadLine()); Console.Write("\nEnter total amount: $"); double totalAmt = Convert.ToDouble(Console.ReadLine()); Console.Write("\nAre there any more riders? (1- Yes | 2- No): "); moreRiders = Convert.ToInt32(Console.ReadLine()); Rider rider = new Rider(riderNo, desc, policyType, payOut, totalAmt, new PercentagePayoutStrategy()); riderList.Add(rider); riderNo++; } Console.Write("\nEnter terms and conditions: "); string stringTnC = Console.ReadLine(); TnC.Add(stringTnC); //Display details of insurance policy Console.Write("\nConfirm to create policy? (1-Confirm | 2-Cancel): "); int confirm = Convert.ToInt32(Console.ReadLine()); if (confirm == 1) { if (premiumType == 1) //One-time { OneTimeIPBuilder policybuilder = new OneTimeIPBuilder(); policybuilder.withClient(cList[0]); policybuilder.withEmployee(loggedInEmployee); policybuilder.startsOn(startDate); policybuilder.maturesOn(maturityDate); policybuilder.addsTermsAndCond(stringTnC); for (int i = 0; i < riderList.Count; i++) { policybuilder.addRider(riderList[i]); } pList.Add(policybuilder.build()); Console.WriteLine("One-time policy created!\n"); } else if (premiumType == 2) //Periodic { PeriodicIPBuilder policybuilder = new PeriodicIPBuilder(); policybuilder.withClient(cList[0]); policybuilder.withEmployee(loggedInEmployee); policybuilder.startsOn(startDate); policybuilder.maturesOn(maturityDate); policybuilder.addsTermsAndCond(stringTnC); policybuilder.SetPeriodicDays(noOfDays); for (int i = 0; i < riderList.Count; i++) { policybuilder.addRider(riderList[i]); } pList.Add(policybuilder.build()); Console.WriteLine("Periodic policy created!\n"); } } else if (confirm == 2) { Console.WriteLine("Policy NOT created!\n"); } }