in src/Microsoft.Health.Fhir.SqlServer/Registration/FhirServerBuilderSqlServerRegistrationExtensions.cs [33:232]
public static IFhirServerBuilder AddSqlServer(this IFhirServerBuilder fhirServerBuilder, Action<SqlServerDataStoreConfiguration> configureAction = null)
{
EnsureArg.IsNotNull(fhirServerBuilder, nameof(fhirServerBuilder));
IServiceCollection services = fhirServerBuilder.Services;
services.AddSqlServerConnection(configureAction);
services.AddSqlServerManagement<SchemaVersion>();
services.AddSqlServerApi();
services.Add(provider => new SchemaInformation(SchemaVersionConstants.Min, SchemaVersionConstants.Max))
.Singleton()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlServerSearchParameterStatusDataStore>()
.Singleton()
.AsSelf()
.ReplaceService<ISearchParameterStatusDataStore>();
services.Add<SearchParameterToSearchValueTypeMap>()
.Singleton()
.AsSelf();
services.Add<SqlServerFhirDataStore>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlServerFhirOperationDataStore>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlServerSearchService>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
AddSqlServerTableRowParameterGenerators(services);
services.Add<SearchParamTableExpressionQueryGeneratorFactory>()
.Singleton()
.AsSelf();
services.Add<SqlRootExpressionRewriter>()
.Singleton()
.AsSelf();
services.Add<ChainFlatteningRewriter>()
.Singleton()
.AsSelf();
services.Add<SortRewriter>()
.Singleton()
.AsSelf();
services.Add<PartitionEliminationRewriter>()
.Singleton()
.AsSelf();
services.Add<SqlServerSortingValidator>()
.Singleton()
.AsSelf()
.AsImplementedInterfaces();
services.AddFactory<IScoped<SqlConnectionWrapperFactory>>();
services.Add<SqlServerFhirModel>()
.Singleton()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SchemaUpgradedHandler>()
.Transient()
.AsImplementedInterfaces();
services.Add<SqlServerSearchParameterValidator>()
.Singleton()
.AsSelf()
.AsImplementedInterfaces();
services.Add<ReindexJobSqlThrottlingController>()
.Singleton()
.AsImplementedInterfaces();
services.Add<SqlServerTaskManager>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlServerTaskConsumer>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlServerTaskContextUpdaterFactory>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlImportOperation>()
.Scoped()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlResourceBulkImporter>()
.Transient()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlResourceMetaPopulator>()
.Transient()
.AsSelf()
.AsImplementedInterfaces();
services.Add<CompressedRawResourceConverter>()
.Transient()
.AsSelf()
.AsImplementedInterfaces();
services.Add<SqlBulkCopyDataWrapperFactory>()
.Transient()
.AsSelf()
.AsImplementedInterfaces();
services.Add<DateTimeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<NumberSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<QuantitySearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<ReferenceSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<ReferenceTokenCompositeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<StringSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenDateTimeCompositeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenNumberNumberCompositeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenQuantityCompositeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenStringCompositeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenTextSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<TokenTokenCompositeSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<UriSearchParamsTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<ResourceWriteClaimTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<CompartmentAssignmentTableBulkCopyDataGenerator>()
.Transient()
.AsSelf();
services.Add<SqlStoreSequenceIdGenerator>()
.Transient()
.AsSelf()
.AsImplementedInterfaces();
services.Add<PurgeOperationCapabilityProvider>()
.Transient()
.AsImplementedInterfaces();
return fhirServerBuilder;
}