GitHub - johnknoop/MongoRepository.DotNetCoreDi: Adds MongoRepository as a registered service with the .NET Core dependency resolver

Adds MongoRepository as a registered service with the .NET Core dependency resolver

Install

PM> Install-Package JohnKnoop.MongoRepository.DotNetCoreDi

Configuration

In the ConfigureServices method of your Startup class, simply call AddRepositories on the service collection, and pass in your IMongoClient instance.

public void ConfigureServices(IServiceCollection services)
    // Register IRepository<T>
    services.AddRepositories(mongoClient);

    // Register tenant key resolver
    services.AddScoped<ResolveTenantKey>(provider => () =>
    {
        // Pull the tenant key from wherever you keep it.
        // For example from user claim:

        var httpContextAccessor = provider.GetService<IHttpContextAccessor>();
        var user = httpContextAccessor.HttpContext?.User as ClaimsIdentity;
        return user?.Identity.Claims.SingleOrDefault(x => x.Type == "TenantKey")?.Value;
    });
}

Then you can accept IRepository<AnyMappedType> as constructor parameters.