Esempio n. 1
0
        public ActionResult DoctorsList(AppointmentViewModel model)
        {
            if (Session["userId"] == null)
            {
                return(Redirect("~"));
            }
            DoctorsData doctorsData = new DoctorsData();
            ScheduleBasedAppointmentManagement scheduleBasedAppointment = new ScheduleBasedAppointmentManagement();
            var scheduleBasedAvailability = new List <DoctorAvailability>();

            scheduleBasedAvailability = scheduleBasedAppointment.GetAvailability(model.SelectedDate);
            var doctorList = new List <DoctorsListViewModel>();
            var doctorsAvailabilityList = doctorsData.GetDoctorsList();

            doctorsAvailabilityList = (
                from o in doctorsAvailabilityList
                orderby o.DoctorId, o.Fee descending
                group o by o.DoctorId into g
                select g.First()
                ).ToList();
            var doctorSpecilizationList = doctorsData.GetDoctorSpecilizationList();

            foreach (var item in doctorsAvailabilityList)
            {
                var doctorData = new DoctorsListViewModel();
                doctorData.FirstName = item.Doctor.FirstName;
                doctorData.LastName  = item.Doctor.LastName;
                doctorData.Email     = item.Doctor.Email;
                doctorData.DoctorId  = item.DoctorId;
                foreach (var scheduleAvailability in scheduleBasedAvailability)
                {
                    if (scheduleAvailability.Users.Id == item.DoctorId)
                    {
                        doctorData.Availability = true;
                        break;
                    }
                }
                foreach (var doctorSpecilization in doctorSpecilizationList)
                {
                    if (item.DoctorId == doctorSpecilization.UserId)
                    {
                        doctorData.Specialization.Add(doctorSpecilization.Specialization.Name.ToString());
                    }
                }
                doctorData.SelectedDate = model.SelectedDate;
                doctorList.Add(doctorData);
            }
            return(View(doctorList));
        }
Esempio n. 2
0
        public ActionResult PopulateTimeSlot(TimeSlotViewModel model)
        {
            if (Session["userId"] == null)
            {
                return(Redirect("~"));
            }
            //model.Date = (DateTime)TempData["SelectedDateForAppointment"];
            ScheduleBasedAppointmentManagement appointmentManagement = new ScheduleBasedAppointmentManagement();
            var doctorAvailability = appointmentManagement.GetAvailability(model.DoctorId, model.Date);

            model.FromSlot  = doctorAvailability.FromTime;
            model.ToSlot    = doctorAvailability.ToTime;
            model.TimeSlots = new DoctorsData().GetDoctorAvailableTimeSlots(model.DoctorId, model.Date);
            model.RemoveExistingAppointmentSlots((int)Session["userId"], model.Date);
            return(View(model));
        }