NKryp.EventStore.CosmosDb
0.0.5
dotnet add package NKryp.EventStore.CosmosDb --version 0.0.5
NuGet\Install-Package NKryp.EventStore.CosmosDb -Version 0.0.5
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NKryp.EventStore.CosmosDb" Version="0.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NKryp.EventStore.CosmosDb --version 0.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: NKryp.EventStore.CosmosDb, 0.0.5"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NKryp.EventStore.CosmosDb as a Cake Addin #addin nuget:?package=NKryp.EventStore.CosmosDb&version=0.0.5 // Install NKryp.EventStore.CosmosDb as a Cake Tool #tool nuget:?package=NKryp.EventStore.CosmosDb&version=0.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
NKryp.EventStore.CosmosDb
.Net Library that allows easy implement event sourcing using CosmosDb
Installation
Install-Package NKryp.EventStore.CosmosDb
Usage
Configuring dependency injection
services.AddCosmosDbEventStore(options =>
{
options.ConnectionString = connectionString;
options.DatabaseName = databaseName;
options.Container = containerName;
});
Then some where in your code
public class ShoppingCartRepository
{
private readonly IEventStore _eventStore;
public ShoppingCartRepository(IEventStore eventStore)
{
_eventStore = eventStore;
}
public async Task<ShoppingCartAggregateRoot?> FindAsync(string shoppingCartId)
{
var stream = await _eventStore.ReadStreamAsync(shoppingCartId);
if (stream == null)
{
return null;
}
return ShoppingCartAggregateRoot.Aggregate(stream.Events.Select(e => (Event)e.Body!).ToArray());
}
public async Task SaveAsync(ShoppingCartAggregateRoot aggregateRoot)
{
var header = await _eventStore.ReadStreamHeaderAsync(aggregateRoot.Id);
var version = (header?.Version).GetValueOrDefault() + 1;
var events = aggregateRoot.GetUncommitedEvents()
.Select(@event => new EventData(aggregateRoot.Id, @event, version++))
.ToArray();
await _eventStore.AppendStreamAsync(aggregateRoot.Id, events, header?.Version);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
- Microsoft.Azure.Cosmos (>= 3.26.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Options (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.