public void ConfigureServices()

in reference-implementations/semantic-search-for-images/src/ingestion/Startup.cs [29:49]


    public void ConfigureServices(IServiceCollection services)
    {
        var appSettings = Configuration.GetSection("AppSettings").Get<AppSettings>();
        var credential = new DefaultAzureCredential(GenerateDefaultAzureCredentialOptions());

        services.AddLogging(builder => builder.AddConsole());
        services.AddSingleton(appSettings!);
        services.AddSingleton<IDataIngestor, DataIngestor>();

        if(appSettings!.DatabaseTargeted == Constants.DATABASE_TARGETED_COSMOSDB)
            services.AddTransient<IDatabaseService, CosmosDbService>();
        else if(appSettings!.DatabaseTargeted == Constants.DATABASE_TARGETED_AI_SEARCH)
            services.AddTransient<IDatabaseService, AiSearchService>();

        services.AddSingleton(new BlobServiceClient(new Uri(appSettings!.StorageAccount.Uri), credential));
        services.AddTransient<IBlobService, BlobService>();
        services.AddTransient<ICsvService, CsvService>();
        services.AddTransient<IImageService, ImageService>();
        services.AddSingleton<TokenCredential>(credential);
        services.AddHttpClient(Constants.NAMED_HTTP_CLIENT).AddStandardResilienceHandler();
    }