/// <summary> /// Fetch all available appointment booking for a Provider based on the given date. /// </summary> /// <param name="providerId"></param> /// <param name="date"></param> /// <returns></returns> public List <String> GetAvailableAppointmentBookings(int providerId, string date) { using (var dataContext = new HealthReunionEntities()) { var parsedDate = DateTime.Parse(date); List <String> availableSlots = new List <String>(); var appointmentEnums = StringValueAttribute.GetStringValues(typeof(AppointmentTimeEnum)); var matchedAppointmentBookingTime = (from appointment in dataContext.Appointments where appointment.AppointmentDate == parsedDate && appointment.ProviderId == providerId select appointment.Time).ToList(); foreach (var time in appointmentEnums) { if (!matchedAppointmentBookingTime.Contains(time)) { availableSlots.Add(time); } } return(availableSlots); } }