public void MakeNewAppointment() { Console.WriteLine("Enter patient MRN or enter S to show all patients to show from: "); string mrn = Console.ReadLine(); if (mrn.Equals("s") || mrn.Equals("S")) { _hospitalDB.ShowPatients(); Console.WriteLine("Enter MRN: "); mrn = Console.ReadLine(); } Patient visitingPatient = _hospitalDB.GetPatient(mrn); if (visitingPatient == null) { Console.WriteLine("Patient not found."); return; } Console.WriteLine("Choose Department : "); _hospitalDB.ShowDepartments(); Console.Write("Enter Sl. No.: "); bool valid = Int32.TryParse(Console.ReadLine(), out int deptIndex); Console.WriteLine("Choose Doctor:"); if (valid) { _hospitalDB.ShowDoctors(deptIndex - 1); } Console.Write("Enter Sl.No.: "); valid = Int32.TryParse(Console.ReadLine(), out int drIndex); Doctor consultingDoctor = null; if (valid) { consultingDoctor = _hospitalDB.Departments[deptIndex - 1].DoctorsList[drIndex - 1]; } if (consultingDoctor != null) { Console.WriteLine("Enter Date and Time of appointment as mm/dd/yyyy hh:mm"); valid = DateTime.TryParse(Console.ReadLine(), out DateTime apptTime); if (valid) { Appointment appt = new Appointment(apptTime, consultingDoctor, visitingPatient); bool apptAdded = _hospitalDB.ValidateAndAddAppointment(appt); if (apptAdded) { Console.WriteLine("Appointment added successfully!"); Console.WriteLine(); string docMessage = "Dear " + consultingDoctor.Name + ", You have an appointment with patient " + visitingPatient.Name + " on " + appt.StartDateTime + ". Appointment ID: " + appt.AppointmentId; ApptCreatedSMS.Invoke(consultingDoctor.PhoneNumber.ToString(), docMessage); ApptCreatedEmail.Invoke(consultingDoctor.Email, docMessage); Console.WriteLine(); string patientMessage = "Dear " + visitingPatient.Name + ", You have an appointment with Doctor " + consultingDoctor.Name + " on " + appt.StartDateTime + ". Appointment ID:" + appt.AppointmentId; ApptCreatedSMS.Invoke(visitingPatient.PhoneNumber.ToString(), patientMessage); ApptCreatedEmail.Invoke(visitingPatient.Email, patientMessage); Console.WriteLine(); } else { Console.WriteLine("Appointment not created. Please try again later."); } } } else { Console.WriteLine("Invalid Option. Doctor not found. Exiting."); return; } }
public void ManageAppointment() { Console.WriteLine("Enter appointment ID: "); string apptId = Console.ReadLine(); Appointment appointment = _hospitalDB.GetAppointment(apptId); if (appointment == null) { Console.WriteLine("Appointment not found."); Console.WriteLine(); return; } else { Console.WriteLine(); Console.WriteLine("Choose option to proceed:"); Console.WriteLine("1. Change Date/Time"); Console.WriteLine("2. Cancel Appointment"); switch (Console.ReadLine()) { case "1": Console.WriteLine("Enter new date and time as mm/dd/yyyy hh:mm"); bool valid = DateTime.TryParse(Console.ReadLine(), out DateTime newDateTime); if (valid) { DateTime oldDateTime = appointment.StartDateTime; appointment.StartDateTime = newDateTime; bool apptChanged = _hospitalDB.ChangeAppointment(appointment, oldDateTime); if (apptChanged) { Console.WriteLine("Appointment updated."); string docMessage = "Dear " + appointment.ConsultingDoctor.Name + ", Your appointment with patient " + appointment.VisitingPatient.Name + " has been changed to " + appointment.StartDateTime + ". Appointment ID: " + appointment.AppointmentId; ApptCreatedSMS.Invoke(appointment.ConsultingDoctor.PhoneNumber.ToString(), docMessage); ApptCreatedEmail.Invoke(appointment.ConsultingDoctor.Email, docMessage); Console.WriteLine(); string patientMessage = "Dear " + appointment.VisitingPatient.Name + ", Your appointment with Doctor " + appointment.ConsultingDoctor.Name + " has been changed to " + appointment.StartDateTime + ". Appointment ID:" + appointment.AppointmentId; ApptCreatedSMS.Invoke(appointment.VisitingPatient.PhoneNumber.ToString(), patientMessage); ApptCreatedEmail.Invoke(appointment.VisitingPatient.Email, patientMessage); Console.WriteLine(); } else { Console.WriteLine("Appointment not changed."); } } else { Console.WriteLine("Invalid date entered. Appointment not changed."); } break; case "2": string message = "Your appointment with ID " + appointment.AppointmentId + "has been cancelled."; _hospitalDB.Appointments.RemoveAt(_hospitalDB.Appointments.IndexOf(appointment)); ApptCreatedSMS.Invoke(appointment.ConsultingDoctor.PhoneNumber.ToString(), message); ApptCreatedEmail.Invoke(appointment.ConsultingDoctor.Email, message); ApptCreatedSMS.Invoke(appointment.VisitingPatient.PhoneNumber.ToString(), message); ApptCreatedEmail.Invoke(appointment.VisitingPatient.Email, message); break; default: break; } } }