Exemple #1
0
        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!");
            }
        }
Exemple #2
0
        public IPBuilder addRider(Rider rider)
        {
            this.riders.Add(rider);

            return(this);
        }
Exemple #3
0
        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");
            }
        }