Added method to create doc session using injected doc store.

This commit is contained in:
JudahGabriel
2018-02-10 22:31:35 -06:00
parent 1d33f5a908
commit e898bf6f0b
2 changed files with 23 additions and 2 deletions
+2 -2
View File
@@ -14,11 +14,11 @@
<RepositoryUrl>https://github.com/JudahGabriel/RavenDB.Identity</RepositoryUrl>
<PackageLicenseUrl>https://github.com/JudahGabriel/RavenDB.Identity/blob/master/LICENSE.md</PackageLicenseUrl>
<PackageIconUrl>https://github.com/JudahGabriel/RavenDB.Identity/blob/master/RavenDB.Identity/nuget-icon.png?raw=true</PackageIconUrl>
<copyright>Copyright 2017 BitShuva</copyright>
<copyright>Copyright 2018 BitShuva</copyright>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Version>4.0.0</Version>
<Version>4.0.1</Version>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
</PropertyGroup>
@@ -81,5 +81,26 @@ namespace Raven.Identity
serviceCollection.Add(new ServiceDescriptor(typeof(IAsyncDocumentSession), p => db.OpenAsyncSession(), ServiceLifetime.Scoped));
return serviceCollection;
}
/// <summary>
/// Registers a RavenDB <see cref="IAsyncDocumentSession"/> to be created and disposed on each request.
/// This requires for an <see cref="IDocumentStore"/> to be added to dependency injection services.
/// </summary>
/// <example>
/// <code>
/// public void ConfigureServices(IServiceCollection services)
/// {
/// services.AddRavenDbAsyncSession();
/// }
/// </code>
/// </example>
/// <param name="serviceCollection"> The <see cref="IServiceCollection" /> to add services to. </param>
/// <remarks>Based on code from https://github.com/maqduni/AspNetCore.Identity.RavenDb/blob/master/src/Maqduni.AspNetCore.Identity.RavenDb/RavenDbServiceCollectionExtensions.cs</remarks>
/// <returns>The same service collection so that multiple calls can be chained.</returns>
public static IServiceCollection AddRavenDbAsyncSession(this IServiceCollection serviceCollection)
{
serviceCollection.Add(new ServiceDescriptor(typeof(IAsyncDocumentSession), p => p.GetRequiredService<IDocumentStore>().OpenAsyncSession(), ServiceLifetime.Scoped));
return serviceCollection;
}
}
}