Class WebApplicationBuilderExtensions

Namespace
Microsoft.AspNetCore.Builder
Assembly
Cratis.Arc.dll

Provides extension methods for WebApplicationBuilder for configuring Arc services.

public static class WebApplicationBuilderExtensions
Inheritance
WebApplicationBuilderExtensions
Inherited Members

Remarks

Cratis.Arc

Provides extension methods for WebApplicationBuilder for configuring Arc services.

Source

Cratis.Arc.MongoDB

Provides extension methods for the WebApplicationBuilder for configuring MongoDB.

Source

Methods

AddCratisArc(WebApplicationBuilder, Action<ArcOptions>?, Action<IArcBuilder>?, string?)

Adds Cratis Arc — commands, queries, validation, tenancy, and C# → TypeScript proxy generation — to the WebApplicationBuilder. On its own this wires Arc with no event store.

public static WebApplicationBuilder AddCratisArc(this WebApplicationBuilder builder, Action<ArcOptions>? configureOptions = null, Action<IArcBuilder>? configureBuilder = null, string? configSectionPath = null)

Parameters

builder WebApplicationBuilder

WebApplicationBuilder to extend.

configureOptions Action<ArcOptions>

The optional callback for configuring ArcOptions.

configureBuilder Action<IArcBuilder>

Callback for configuring the IArcBuilder.

configSectionPath string

The optional configuration section path.

Returns

WebApplicationBuilder

WebApplicationBuilder for building continuation.

Examples

Arc on its own (back commands and queries with MongoDB or EF Core instead of an event store):

var builder = WebApplication.CreateBuilder(args);

builder.AddCratisArc();

var app = builder.Build();

app.UseCratisArc();
app.Run();

Arc plus the Chronicle event store, bringing your own authentication (what AddCratis does minus identity):

builder.AddCratisArc(configureBuilder: arc => arc.WithChronicle());

var app = builder.Build();

app.UseCratisArc();
app.UseCratisChronicle();
app.Run();

Arc without MVC controllers, for an application that only uses model-bound commands and queries:

builder.AddCratisArc(configureBuilder: arc => arc.WithoutControllers());

Remarks

Binds the ArcOptions configuration to the given config section path or the default Cratis:Arc section path. Pair it with UseCratisArc on the built application.

Use this directly to back commands and queries with MongoDB or EF Core instead of an event log. To add event sourcing, chain WithChronicle via configureBuilder (or use AddCratis, which composes Arc, the Chronicle client, and identity in one call). Calling this without WithChronicle while a command or query depends on a Chronicle service such as IEventLog fails resolution with a message that points you at the fix.

UseCratisMongoDB(WebApplicationBuilder, Action<MongoDBOptions>?, Action<IMongoDBBuilder>?, string?)

Use MongoDB in the solution. Configures default settings for the MongoDB Driver.

public static IHostBuilder UseCratisMongoDB(this WebApplicationBuilder builder, Action<MongoDBOptions>? configureOptions = null, Action<IMongoDBBuilder>? configureMongoDB = null, string? mongoDBConfigSectionPath = null)

Parameters

builder WebApplicationBuilder

WebApplicationBuilder to use MongoDB with.

configureOptions Action<MongoDBOptions>

Optional callback for configuring MongoDBOptions.

configureMongoDB Action<IMongoDBBuilder>

The optional callback for configuring IMongoDBBuilder.

mongoDBConfigSectionPath string

Optional string for the MongoDBOptions config section path.

Returns

IHostBuilder

WebApplicationBuilder for building continuation.

Remarks

It will automatically hook up any implementations of IBsonClassMapFor<T> and ICanFilterMongoDBConventionPacksForType.