// Ryan's Methods // static void InitPatients(List <Patient> patientList) { string[] patientRaw = File.ReadAllLines(@"patients.csv"); for (int i = 1; i < patientRaw.Length; i++) { string[] pData = patientRaw[i].Split(","); /* pData[0] : Name * pData[1] : Nric Number * pData[2] : Age * pData[3] : Gender * pData[4] : Citizenship * pData[5] : CDA/Medisave Balance (if any) */ int age = Convert.ToInt32(pData[2]); string cs = pData[4]; string stat = "Registered"; if (age >= 0 && age <= 12) { if (cs == "SC" || cs == "sc") { // Nric Name Age Gender Cts status CDA/Medisave Patient p = new Child(pData[1], pData[0], age, Convert.ToChar(pData[3]), cs, stat, Convert.ToDouble(pData[5])); patientList.Add(p); } else if (cs == "Foreigner" || cs == "PR" || cs == "pr") { Patient p = new Child(pData[1], pData[0], age, Convert.ToChar(pData[3]), cs, stat, 0.0); patientList.Add(p); } } else if (age <= 64) { if (cs == "SC" || cs == "sc" || cs == "PR" || cs == "pr") //Validaton for casing { Patient p = new Adult(pData[1], pData[0], age, Convert.ToChar(pData[3]), cs, stat, Convert.ToDouble(pData[5])); patientList.Add(p); } else if (cs == "Foreigner") { Patient p = new Adult(pData[1], pData[0], age, Convert.ToChar(pData[3]), cs, stat, 0.0); patientList.Add(p); } } else if (age >= 65) { Patient p = new Senior(pData[1], pData[0], age, Convert.ToChar(pData[3]), cs, stat); patientList.Add(p); } } }
static void RegisterPatient(List <Patient> patientList) { Console.WriteLine("Option 3. Register Patient"); Console.Write("Enter Name: "); string n = Console.ReadLine(); Console.Write("Enter Identification Number: "); string id = Console.ReadLine(); if (!readID(id)) { Console.WriteLine("Incorrect input type!"); return; } Console.Write("Enter Age: "); string userinput = Console.ReadLine(); int age; if (!int.TryParse(userinput, out age)) { // ERROR Console.WriteLine("Incorrect Input type! Enter an integer!"); return; } Console.Write("Enter Gender [M/F]: "); string g = Console.ReadLine().Trim().ToUpper(); if (g != "M" && g != "F") { Console.WriteLine("Incorrect Input type! Enter a character either M or F!"); return; } Console.Write("Enter Citizenship Status [SC/PR/Foreigner]: "); string cs = Console.ReadLine().ToUpper().Trim(); if (cs != "SC" && cs != "PR" && cs != "FOREIGNER") { Console.WriteLine("Incorrect Citizenship Type!"); return; } string stat = "Registered"; double subsidy = 0.0; if (age >= 0 && age <= 12) { // only if condition is met, subsidy will be updated accordingly // if not met, will remain as 0. if (cs == "SC") { Console.Write("Enter CDA Balance: "); subsidy = Convert.ToDouble(Console.ReadLine()); } Patient p = new Child(id, n, age, Convert.ToChar(g), cs, stat, subsidy); patientList.Add(p); using (StreamWriter file = new StreamWriter(@"Patients.csv", true)) { string line = n + ',' + id + ',' + age + ',' + g + ',' + cs + ',' + subsidy; file.Write(line); } Console.WriteLine($"\n{n} was successfully registered!\n"); } else if (age <= 64) { if (cs == "SC" || cs == "PR") { Console.Write("Enter Medisave Balance: "); subsidy = Convert.ToDouble(Console.ReadLine()); } Patient p = new Adult(id, n, age, Convert.ToChar(g), cs, stat, subsidy); patientList.Add(p); using (StreamWriter file = new StreamWriter(@"Patients.csv", true)) { string line = n + ',' + id + ',' + age + ',' + g + ',' + cs + ',' + subsidy; file.Write(line); } Console.WriteLine($"\n{n} was successfully registered!\n"); } else if (age >= 65) { Patient p = new Senior(id, n, age, Convert.ToChar(g), cs, stat); patientList.Add(p); using (StreamWriter file = new StreamWriter(@"Patients.csv", true)) { string line = n + ',' + id + ',' + age + ',' + g + ',' + cs + ',' + subsidy; file.Write(line); } Console.WriteLine($"\n{n} was successfully registered!\n"); } }