public async Task <ActionResult <IReadOnlyList <AppointmentReadModel> > > GetAllForDoctor(Guid doctorId)
        {
            var query = new GetAppointmentsForDoctorQuery(doctorId);
            var appointmentReadModels = await _getAllAppointmentsForDoctorQueryHandler.HandleAsync(query);

            return(Ok(appointmentReadModels));
        }
        public async Task <IReadOnlyList <AppointmentReadModel> > HandleAsync(GetAppointmentsForDoctorQuery query, CancellationToken cancellationToken = default(CancellationToken))
        {
            var doctorTables = await _readModelData.GetDoctorTablesAsync(cancellationToken);

            var doctorTable = doctorTables.SingleOrDefault(x => x.DoctorId == query.DoctorId);

            if (doctorTable == null)
            {
                throw new EntityNotFoundException($"The requested doctor ({query.DoctorId}) was not found.");
            }
            var appointmentTables = await _readModelData.GetAppointmentTablesAsync(cancellationToken);

            return(appointmentTables.Where(x => x.DoctorId == query.DoctorId).Select(x => new AppointmentReadModel
            {
                AppointmentAt = x.AppointmentAt,
                DoctorId = x.DoctorId,
                AppointmentId = x.AppointmentId,
                AppointmentDurationInMinutes = x.Duration,
                PatientId = x.PatientId
            }).ToList());
        }