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.
Cratis.Arc.MongoDB
Provides extension methods for the WebApplicationBuilder for configuring MongoDB.
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
builderWebApplicationBuilderWebApplicationBuilder to extend.
configureOptionsAction<ArcOptions>The optional callback for configuring ArcOptions.
configureBuilderAction<IArcBuilder>Callback for configuring the IArcBuilder.
configSectionPathstringThe 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
builderWebApplicationBuilderWebApplicationBuilder to use MongoDB with.
configureOptionsAction<MongoDBOptions>Optional callback for configuring MongoDBOptions.
configureMongoDBAction<IMongoDBBuilder>The optional callback for configuring IMongoDBBuilder.
mongoDBConfigSectionPathstringOptional 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.