More documentation improvements.

This commit is contained in:
Judah Himango CW
2019-03-04 17:11:14 -06:00
parent 3d147b3a8d
commit f974fbe399
2 changed files with 38 additions and 22 deletions
+19 -4
View File
@@ -13,7 +13,20 @@ public class AppUser : Raven.Identity.IdentityUser
}
```
2. In Startup.cs:
2. In appsettings.json, configure your connection to Raven:
```json
"RavenSettings": {
"Urls": [
"http://live-test.ravendb.net"
],
"DatabaseName": "Raven.Identity.Sample",
"CertFilePath": "",
"CertPassword": ""
},
```
3. In Startup.cs, wire it all up:
```csharp
public void ConfigureServices(IServiceCollection services)
@@ -21,6 +34,8 @@ public void ConfigureServices(IServiceCollection services)
// Grab our RavenSettings object from appsettings.json.
services.Configure<RavenSettings>(Configuration.GetSection("RavenSettings"));
...
// Add RavenDB and identity.
services
.AddRavenDbDocStore() // Create an IDocumentStore singleton from the RavenSettings.
@@ -31,8 +46,8 @@ public void ConfigureServices(IServiceCollection services)
}
```
3. In your controller actions, call .SaveChanges when you're done making changes. Typically this is done via a RavenController base class for MVC/WebAPI projects, or via an [ActionFilter](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Filters/RavenSaveChangesAsyncFilter.cs) for Razor Pages projects.
4. In your controller actions, call .SaveChangesAsync() when you're done making changes. Typically this is done via a RavenController base class for MVC/WebAPI projects or via an action filter. See our Sample [RavenSaveChangesAsyncFilter.cs](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Filters/RavenSaveChangesAsyncFilter.cs).
Need help? See the [sample app](https://github.com/JudahGabriel/RavenDB.Identity/tree/master/Sample) to see it all in action.
Need help? Checkout the [sample app](https://github.com/JudahGabriel/RavenDB.Identity/tree/master/Sample) to see it all in action.
Not using .NET Core? See our [sister project](https://github.com/JudahGabriel/RavenDB.AspNet.Identity) for a RavenDB Identity Provider for MVC 5+ and WebAPI 2+ on the full .NET Framework.
Not using .NET Core? See our [sister project](https://github.com/JudahGabriel/RavenDB.AspNet.Identity) for a RavenDB Identity Provider for the full .NET Framework.
+9 -8
View File
@@ -3,10 +3,10 @@
This is a Razor Pages sample that shows how to use Raven.Identity.
There are four areas of interest:
1. appsettings.json - where we configure our connection to Raven.
2. AppUser.cs - our user class containing any user data like FirstName and LastName.
3. RavenSaveChangesAsyncFilter.cs - where we save changes to Raven after actions finish executing. This makes sense for a Razor Pages project. For an MVC or Web API project, use a RavenController base class instead.
4. Startup.cs - where we wire up everything
1. [appsettings.json](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/appsettings.json) - where we configure our connection to Raven.
2. [AppUser.cs](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Models/AppUser.cs) - our user class containing any user data like FirstName and LastName.
3. [RavenSaveChangesAsyncFilter.cs](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Filters/RavenSaveChangesAsyncFilter.cs) - where we save changes to Raven after actions finish executing. This makes sense for a Razor Pages project. For an MVC or Web API project, use a RavenController base class instead.
4. [Startup.cs](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Startup.cs) - where we wire up everything.
More details below.
@@ -43,7 +43,7 @@ While this step isn't strictly necessary -- it's possible to skip AppUser and ju
## 3. RavenSaveChangesAsyncFilter
In Startup.cs (next step), we'll tell AspNetCore to create an `IAsyncDocumentSession` for every request. But we need to `.SaveChangesAsync()` for anything to persist in Raven.
We need to `.SaveChangesAsync()` for anything to persist in Raven. Where should we do this?
While we could call `.SaveChangesAsync()` in the code-behind of every Razor page, that is tedious and error prone. Instead, we create a Razor action filter to save changes, [RaveSaveChangesAsyncFilter.cs](https://github.com/JudahGabriel/RavenDB.Identity/blob/master/Sample/Filters/RavenSaveChangesAsyncFilter.cs):
@@ -90,6 +90,8 @@ public void ConfigureServices(IServiceCollection services)
// Grab our RavenSettings object from appsettings.json.
services.Configure<RavenSettings>(Configuration.GetSection("RavenSettings"));
...
// Add an IDocumentStore singleton, with settings pulled from the RavenSettings.
services.AddRavenDbDocStore();
@@ -98,10 +100,9 @@ public void ConfigureServices(IServiceCollection services)
services.AddRavenDbAsyncSession();
// Use Raven for our users
var identityModel = services.AddRavenDbIdentity<AppUser>();
services.AddRavenDbIdentity<AppUser>();
// Optional: some default Razor Pages UI for login/register/forgot password/etc.
identityBuilder.AddDefaultUI(UIFramework.Bootstrap4);
...
// Call .SaveChangesAsync() after each action.
services