diff --git a/DysonNetwork.Develop/appsettings.json b/DysonNetwork.Develop/appsettings.json index 5aac70a..77eb08b 100644 --- a/DysonNetwork.Develop/appsettings.json +++ b/DysonNetwork.Develop/appsettings.json @@ -12,7 +12,8 @@ "ConnectionStrings": { "App": "Host=localhost;Port=5432;Database=dyson_network_dev;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60", "FastRetrieve": "localhost:6379", - "Etcd": "etcd.orb.local:2379" + "Etcd": "etcd.orb.local:2379", + "Stream": "nats.orb.local:4222" }, "KnownProxies": [ "127.0.0.1", diff --git a/DysonNetwork.Drive/appsettings.json b/DysonNetwork.Drive/appsettings.json index b95119e..872ee07 100644 --- a/DysonNetwork.Drive/appsettings.json +++ b/DysonNetwork.Drive/appsettings.json @@ -12,7 +12,8 @@ "ConnectionStrings": { "App": "Host=localhost;Port=5432;Database=dyson_drive;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60", "FastRetrieve": "localhost:6379", - "Etcd": "etcd.orb.local:2379" + "Etcd": "etcd.orb.local:2379", + "Stream": "nats.orb.local:4222" }, "Authentication": { "Schemes": { diff --git a/DysonNetwork.Pass/DysonNetwork.Pass.csproj b/DysonNetwork.Pass/DysonNetwork.Pass.csproj index f2e889c..0b60b09 100644 --- a/DysonNetwork.Pass/DysonNetwork.Pass.csproj +++ b/DysonNetwork.Pass/DysonNetwork.Pass.csproj @@ -13,6 +13,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/DysonNetwork.Pass/appsettings.json b/DysonNetwork.Pass/appsettings.json index 1117727..8b9275e 100644 --- a/DysonNetwork.Pass/appsettings.json +++ b/DysonNetwork.Pass/appsettings.json @@ -12,7 +12,8 @@ "ConnectionStrings": { "App": "Host=localhost;Port=5432;Database=dyson_pass;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60", "FastRetrieve": "localhost:6379", - "Etcd": "etcd.orb.local:2379" + "Etcd": "etcd.orb.local:2379", + "Stream": "nats.orb.local:4222" }, "Authentication": { "Schemes": { diff --git a/DysonNetwork.Pusher/appsettings.json b/DysonNetwork.Pusher/appsettings.json index c0ecae8..5f77b41 100644 --- a/DysonNetwork.Pusher/appsettings.json +++ b/DysonNetwork.Pusher/appsettings.json @@ -11,7 +11,8 @@ "ConnectionStrings": { "App": "Host=localhost;Port=5432;Database=dyson_pusher;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60", "FastRetrieve": "localhost:6379", - "Etcd": "etcd.orb.local:2379" + "Etcd": "etcd.orb.local:2379", + "Stream": "nats.orb.local:4222" }, "Notifications": { "Push": { diff --git a/DysonNetwork.Shared/DysonNetwork.Shared.csproj b/DysonNetwork.Shared/DysonNetwork.Shared.csproj index 280ffa9..379d309 100644 --- a/DysonNetwork.Shared/DysonNetwork.Shared.csproj +++ b/DysonNetwork.Shared/DysonNetwork.Shared.csproj @@ -21,6 +21,7 @@ + diff --git a/DysonNetwork.Shared/Stream/AccountEvent.cs b/DysonNetwork.Shared/Stream/AccountEvent.cs new file mode 100644 index 0000000..dec0b18 --- /dev/null +++ b/DysonNetwork.Shared/Stream/AccountEvent.cs @@ -0,0 +1,9 @@ +using NodaTime; + +namespace DysonNetwork.Shared.Stream; + +public class AccountDeletedEvent +{ + public Guid AccountId { get; set; } = Guid.NewGuid(); + public Instant DeletedAt { get; set; } = SystemClock.Instance.GetCurrentInstant(); +} \ No newline at end of file diff --git a/DysonNetwork.Shared/Stream/Connector.cs b/DysonNetwork.Shared/Stream/Connector.cs new file mode 100644 index 0000000..66fed40 --- /dev/null +++ b/DysonNetwork.Shared/Stream/Connector.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using NATS.Client.Core; + +namespace DysonNetwork.Shared.Stream; + +public static class Connector +{ + public static IServiceCollection AddStreamConnection(this IServiceCollection services, IConfiguration configuration) + { + var connectionString = configuration.GetConnectionString("Stream"); + if (connectionString is null) + throw new ArgumentNullException(nameof(connectionString)); + services.AddSingleton(_ => new NatsConnection(new NatsOpts() + { + Url = connectionString + })); + + return services; + } +} \ No newline at end of file diff --git a/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj b/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj index c00b5c2..fa1604d 100644 --- a/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj +++ b/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj @@ -30,6 +30,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/DysonNetwork.Sphere/appsettings.json b/DysonNetwork.Sphere/appsettings.json index 0f22668..44f42c2 100644 --- a/DysonNetwork.Sphere/appsettings.json +++ b/DysonNetwork.Sphere/appsettings.json @@ -12,7 +12,8 @@ "ConnectionStrings": { "App": "Host=localhost;Port=5432;Database=dyson_network;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60", "FastRetrieve": "localhost:6379", - "Etcd": "etcd.orb.local:2379" + "Etcd": "etcd.orb.local:2379", + "Stream": "nats.orb.local:4222" }, "GeoIp": { "DatabasePath": "./Keys/GeoLite2-City.mmdb"