public Dictionary <string, string> FixAppointment(AppointmentViewModel appointmentViewModel)
        {
            try
            {
                appointment         = new Appointment();
                nurseBusinessLayer  = new NurseBusinessLayer();
                doctorBusinessLayer = new DoctorBusinessLayer();
                patientDataLayer    = new PatientDataLayer();

                appointmentViewModel.TimeSlot = TimeSlots.Timings.IndexOf(doctorBusinessLayer.GetDoctorAvailableTimeSlots(appointmentViewModel.DoctorId.ToString(), appointmentViewModel.AppointmentDate.ToString())[int.Parse(appointmentViewModel.TimeSlot)]).ToString();
                int isAlreadyBooked = patientDataLayer.GetTotalAppointments(Convert.ToDateTime(appointmentViewModel.AppointmentDate), int.Parse(appointmentViewModel.TimeSlot), appointmentViewModel.DoctorId);
                if (isAlreadyBooked > 0)
                {
                    return(new Dictionary <string, string>()
                    {
                        { "", "Time slot already booked." }
                    });
                }

                int NurseId = nurseBusinessLayer.GetAvailableNurse(Convert.ToDateTime(appointmentViewModel.AppointmentDate), TimeSlots.Timings.IndexOf(appointmentViewModel.TimeSlot));
                if (NurseId == -1)
                {
                    return(new Dictionary <string, string>()
                    {
                        { "", "Appointment not booked, Please contact the clinic." }
                    });
                }

                appointment.NurseId   = NurseId;
                appointment.DoctorId  = appointmentViewModel.DoctorId;
                appointment.PatientId = appointmentViewModel.PatientId;
                appointment.Date      = Convert.ToDateTime(appointmentViewModel.AppointmentDate);
                appointment.Time      = int.Parse(appointmentViewModel.TimeSlot);
                appointment.Status    = AppointmentStatus.Pending;
                appointment           = patientDataLayer.FixAppointment(appointment);
                return(null);
            }catch (Exception e)
            {
                ExceptionHandler.PrintException(e, new StackTrace(true));
                throw;
            }
        }