public AppointmentsController(
     IIdentifierGenerationService identifierGenerationService,
     ICommandHandlerAsync <ScheduleAppointmentCommand> scheduleAppointmentCommandHandler,
     IQueryHandlerAsync <GetAppointmentQuery, AppointmentReadModel> getAppointmentQueryHandler,
     IQueryHandlerAsync <GetAppointmentsForDoctorQuery, IReadOnlyList <AppointmentReadModel> > getAllAppointmentsForDoctorQueryHandler,
     IQueryHandlerAsync <GetAppointmentsForPatientQuery, IReadOnlyList <AppointmentReadModel> > getAllAppointmentsForPatientQueryHandler)
 {
     _identifierGenerationService              = identifierGenerationService;
     _scheduleAppointmentCommandHandler        = scheduleAppointmentCommandHandler;
     _getAppointmentQueryHandler               = getAppointmentQueryHandler;
     _getAllAppointmentsForDoctorQueryHandler  = getAllAppointmentsForDoctorQueryHandler;
     _getAllAppointmentsForPatientQueryHandler = getAllAppointmentsForPatientQueryHandler;
 }
 public DomainModelProvider(
     ISchemaReader schemaReader, 
     IEntityInfoAdapterFactory entityInfoAdapterFactory, 
     IPropertyInfoAdapterFactory propertyInfoAdapterFactory, 
     INavigationPropertyInfoAdapterFactory navigationPropertyInfoAdapterFactory, 
     IIIdentifierGenerationServiceFactory identifierGenerationServiceFactory,
     IPluralizationService pluralizationService,
     IReverseEngineeringConfiguration configuration)
 {
     
     this.schemaReader                         = schemaReader;
     this.entityInfoAdapterFactory             = entityInfoAdapterFactory;
     this.navigationPropertyInfoAdapterFactory = navigationPropertyInfoAdapterFactory;
     this.propertyInfoAdapterFactory           = propertyInfoAdapterFactory;
     this.configuration                        = configuration;
     this.identifierGenerationService          = identifierGenerationServiceFactory.Create(pluralizationService, configuration);
 }
 public EntityInfoAdapter(ISchemaTable table, IIdentifierGenerationService identifierGenerationService)
 {
     this.table                = table;
     this.identifierGenerationService = identifierGenerationService;
 }
 public PropertyInfoAdapter(ISchemaColumn column, ISchemaTable table, IIdentifierGenerationService identifierGenerationService)
 {
     this.column               = column;
     this.table                = table;
     this.identifierGenerationService = identifierGenerationService;
 }
 public INavigationPropertyInfoAdapter Create(ISchemaForeignKey foreignKey, ISchemaTable table, IIdentifierGenerationService identifierGenerationService)
 {
     return new NavigationPropertyInfoAdapter(foreignKey, table, identifierGenerationService);
 }
 public IEntityInfoAdapter Create(ISchemaTable table, IIdentifierGenerationService identifierGenerationService)
 {
     return new EntityInfoAdapter(table, identifierGenerationService);
 }
 public NavigationPropertyInfoAdapter(ISchemaForeignKey foreignKey, ISchemaTable table, IIdentifierGenerationService identifierGenerationService)
 {
     this.foreignKey = foreignKey;
     this.table = table;
     this.identifierGenerationService = identifierGenerationService;
 }
 public IPropertyInfoAdapter Create(ISchemaColumn column, ISchemaTable table, IIdentifierGenerationService identifierGenerationService)
 {
     return new PropertyInfoAdapter(column, table, identifierGenerationService);
 }