diff --git a/README.md b/README.md
index 1fa625d..958eebc 100644
--- a/README.md
+++ b/README.md
@@ -163,8 +163,7 @@ docker-compose -f ./deployments/docker-compose/docker-compose.yaml up -d
```
> ### Kubernetes
-For Configure TLS in kubernetes cluster we need install `cert-manager` base on [docs](https://cert-manager.io/docs/installation) and run the following commands for apply TLS in our application
-Here we use [LetsEncrypt](https://letsencrypt.org/) for encrypt our certificate.
+For Configure TLS in kubernetes cluster we need install `cert-manager` base on [docs](https://cert-manager.io/docs/installation) and run the following commands for apply TLS in our application. Here we use [LetsEncrypt](https://letsencrypt.org/) for encryption our certificate.
```bash
kubectl apply -f ./deployments/kubernetes/booking-cert-manager.yml
diff --git a/src/BuildingBlocks/BuildingBlocks.csproj b/src/BuildingBlocks/BuildingBlocks.csproj
index 1fc9ba9..2ce1533 100644
--- a/src/BuildingBlocks/BuildingBlocks.csproj
+++ b/src/BuildingBlocks/BuildingBlocks.csproj
@@ -18,6 +18,7 @@
+
diff --git a/src/BuildingBlocks/Core/Event/IEvent.cs b/src/BuildingBlocks/Core/Event/IEvent.cs
index 9ae26c7..9a00477 100644
--- a/src/BuildingBlocks/Core/Event/IEvent.cs
+++ b/src/BuildingBlocks/Core/Event/IEvent.cs
@@ -5,7 +5,7 @@ namespace BuildingBlocks.Core.Event;
public interface IEvent : INotification
{
- long EventId => SnowFlakIdGenerator.NewId();
+ long EventId => SnowflakeIdGenerator.NewId();
public DateTime OccurredOn => DateTime.Now;
public string EventType => GetType().AssemblyQualifiedName;
}
diff --git a/src/BuildingBlocks/IdsGenerator/SnowFlakIdGenerator.cs b/src/BuildingBlocks/IdsGenerator/SnowflakeIdGenerator.cs
similarity index 54%
rename from src/BuildingBlocks/IdsGenerator/SnowFlakIdGenerator.cs
rename to src/BuildingBlocks/IdsGenerator/SnowflakeIdGenerator.cs
index 1209c32..b2fd850 100644
--- a/src/BuildingBlocks/IdsGenerator/SnowFlakIdGenerator.cs
+++ b/src/BuildingBlocks/IdsGenerator/SnowflakeIdGenerator.cs
@@ -1,4 +1,3 @@
-using Ardalis.GuardClauses;
using IdGen;
namespace BuildingBlocks.IdsGenerator;
@@ -6,16 +5,16 @@ namespace BuildingBlocks.IdsGenerator;
// Ref: https://github.com/RobThree/IdGen
// https://github.com/RobThree/IdGen/issues/34
// https://www.callicoder.com/distributed-unique-id-sequence-number-generator/
-public static class SnowFlakIdGenerator
+public static class SnowflakeIdGenerator
{
- private static IdGenerator _generator;
-
- public static void Configure(int generatorId)
+ private static readonly IdGenerator Generator;
+ static SnowflakeIdGenerator()
{
- Guard.Against.NegativeOrZero(generatorId, nameof(generatorId));
+ // Read `GENERATOR_ID` from .env file in service root folder or system environment variables
+ var generatorId = DotNetEnv.Env.GetInt("GENERATOR_ID", 0);
- // Let's say we take jan 17st 2022 as our epoch
- var epoch = new DateTime(2022, 1, 1, 0, 0, 0, DateTimeKind.Local);
+ // Let's say we take current time as our epoch
+ var epoch = DateTime.Now;
// Create an ID with 45 bits for timestamp, 2 for generator-id
// and 16 for sequence
@@ -26,8 +25,11 @@ public static class SnowFlakIdGenerator
// Create an IdGenerator with it's generator-id set to 0, our custom epoch
// and id-structure
- _generator = new IdGenerator(0, options);
+ Generator = new IdGenerator(generatorId, options);
}
- public static long NewId() => _generator.CreateId();
+ public static long NewId()
+ {
+ return Generator.CreateId();
+ }
}
diff --git a/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs b/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs
index 674a438..561e059 100644
--- a/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs
+++ b/src/BuildingBlocks/PersistMessageProcessor/PersistMessageProcessor.cs
@@ -202,7 +202,7 @@ public class PersistMessageProcessor : IPersistMessageProcessor
if (messageEnvelope.Message is IEvent message)
id = message.EventId;
else
- id = SnowFlakIdGenerator.NewId();
+ id = SnowflakeIdGenerator.NewId();
await _persistMessageDbContext.PersistMessages.AddAsync(
new PersistMessage(
diff --git a/src/Services/Booking/src/Booking.Api/.env b/src/Services/Booking/src/Booking.Api/.env
new file mode 100644
index 0000000..467e2da
--- /dev/null
+++ b/src/Services/Booking/src/Booking.Api/.env
@@ -0,0 +1 @@
+GENERATOR_ID=4
diff --git a/src/Services/Booking/src/Booking/Booking/Features/CreatingBook/Commands/V1/CreateBooking.cs b/src/Services/Booking/src/Booking/Booking/Features/CreatingBook/Commands/V1/CreateBooking.cs
index f36dcda..01264fd 100644
--- a/src/Services/Booking/src/Booking/Booking/Features/CreatingBook/Commands/V1/CreateBooking.cs
+++ b/src/Services/Booking/src/Booking/Booking/Features/CreatingBook/Commands/V1/CreateBooking.cs
@@ -15,7 +15,7 @@ using Passenger;
public record CreateBooking(long PassengerId, long FlightId, string Description) : ICommand, IInternalCommand
{
- public long Id { get; init; } = SnowFlakIdGenerator.NewId();
+ public long Id { get; init; } = SnowflakeIdGenerator.NewId();
}
public record CreateBookingResult(ulong Id);
diff --git a/src/Services/Booking/src/Booking/BookingProjection.cs b/src/Services/Booking/src/Booking/BookingProjection.cs
index 89b145a..fed0ade 100644
--- a/src/Services/Booking/src/Booking/BookingProjection.cs
+++ b/src/Services/Booking/src/Booking/BookingProjection.cs
@@ -41,7 +41,7 @@ public class BookingProjection : IProjectionProcessor
{
var bookingReadModel = new BookingReadModel
{
- Id = SnowFlakIdGenerator.NewId(),
+ Id = SnowflakeIdGenerator.NewId(),
Trip = @event.Trip,
BookId = @event.Id,
PassengerInfo = @event.PassengerInfo,
diff --git a/src/Services/Booking/src/Booking/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Booking/src/Booking/Extensions/Infrastructure/InfrastructureExtensions.cs
index 471f1cc..4734d5e 100644
--- a/src/Services/Booking/src/Booking/Extensions/Infrastructure/InfrastructureExtensions.cs
+++ b/src/Services/Booking/src/Booking/Extensions/Infrastructure/InfrastructureExtensions.cs
@@ -35,6 +35,9 @@ public static class InfrastructureExtensions
var configuration = builder.Configuration;
var env = builder.Environment;
+ // https://github.com/tonerdo/dotnet-env
+ DotNetEnv.Env.TraversePath().Load();
+
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
@@ -76,8 +79,6 @@ public static class InfrastructureExtensions
builder.Services.AddCustomOpenTelemetry();
builder.Services.AddTransient();
- SnowFlakIdGenerator.Configure(3);
-
// ref: https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventStoreDB/ECommerce
builder.Services.AddEventStore(configuration, typeof(BookingRoot).Assembly)
.AddEventStoreDBSubscriptionToAll();
diff --git a/src/Services/Booking/tests/IntegrationTest/Fakes/FakeCreateBookingCommand.cs b/src/Services/Booking/tests/IntegrationTest/Fakes/FakeCreateBookingCommand.cs
index 2abcce8..3961db5 100644
--- a/src/Services/Booking/tests/IntegrationTest/Fakes/FakeCreateBookingCommand.cs
+++ b/src/Services/Booking/tests/IntegrationTest/Fakes/FakeCreateBookingCommand.cs
@@ -9,7 +9,7 @@ public sealed class FakeCreateBookingCommand : AutoFaker
{
public FakeCreateBookingCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.FlightId, _ => 1);
RuleFor(r => r.PassengerId, _ => 1);
}
diff --git a/src/Services/Booking/tests/IntegrationTest/Fakes/FakePassengerResponse.cs b/src/Services/Booking/tests/IntegrationTest/Fakes/FakePassengerResponse.cs
index 7aabbd7..a525e8a 100644
--- a/src/Services/Booking/tests/IntegrationTest/Fakes/FakePassengerResponse.cs
+++ b/src/Services/Booking/tests/IntegrationTest/Fakes/FakePassengerResponse.cs
@@ -8,6 +8,6 @@ public class FakePassengerResponse : AutoFaker
{
public FakePassengerResponse()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
}
}
diff --git a/src/Services/Flight/src/Flight.Api/.env b/src/Services/Flight/src/Flight.Api/.env
new file mode 100644
index 0000000..2e1ed1b
--- /dev/null
+++ b/src/Services/Flight/src/Flight.Api/.env
@@ -0,0 +1 @@
+GENERATOR_ID=1
diff --git a/src/Services/Flight/src/Flight.Api/Flight.Api.csproj b/src/Services/Flight/src/Flight.Api/Flight.Api.csproj
index 94e43ad..3bfc53c 100644
--- a/src/Services/Flight/src/Flight.Api/Flight.Api.csproj
+++ b/src/Services/Flight/src/Flight.Api/Flight.Api.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/src/Services/Flight/src/Flight/Aircrafts/Features/AircraftMappings.cs b/src/Services/Flight/src/Flight/Aircrafts/Features/AircraftMappings.cs
index bef0168..0da501b 100644
--- a/src/Services/Flight/src/Flight/Aircrafts/Features/AircraftMappings.cs
+++ b/src/Services/Flight/src/Flight/Aircrafts/Features/AircraftMappings.cs
@@ -11,11 +11,11 @@ public class AircraftMappings : IRegister
public void Register(TypeAdapterConfig config)
{
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.AircraftId, s => s.Id);
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.AircraftId, s => s.Id);
config.NewConfig()
diff --git a/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraft.cs b/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraft.cs
index 1760d14..64fa423 100644
--- a/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraft.cs
+++ b/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraft.cs
@@ -17,7 +17,7 @@ using Microsoft.EntityFrameworkCore;
public record CreateAircraft(string Name, string Model, int ManufacturingYear) : ICommand, IInternalCommand
{
- public long Id { get; init; } = SnowFlakIdGenerator.NewId();
+ public long Id { get; init; } = SnowflakeIdGenerator.NewId();
}
public record CreateAircraftResult(long Id);
diff --git a/src/Services/Flight/src/Flight/Airports/Features/AirportMappings.cs b/src/Services/Flight/src/Flight/Airports/Features/AirportMappings.cs
index fbd551c..75bbd32 100644
--- a/src/Services/Flight/src/Flight/Airports/Features/AirportMappings.cs
+++ b/src/Services/Flight/src/Flight/Airports/Features/AirportMappings.cs
@@ -10,11 +10,11 @@ public class AirportMappings : IRegister
public void Register(TypeAdapterConfig config)
{
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.AirportId, s => s.Id);
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.AirportId, s => s.Id);
config.NewConfig()
diff --git a/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirport.cs b/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirport.cs
index 08827e2..150ce60 100644
--- a/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirport.cs
+++ b/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirport.cs
@@ -16,7 +16,7 @@ using Microsoft.EntityFrameworkCore;
public record CreateAirport(string Name, string Address, string Code) : ICommand, IInternalCommand
{
- public long Id { get; init; } = SnowFlakIdGenerator.NewId();
+ public long Id { get; init; } = SnowflakeIdGenerator.NewId();
}
public record CreateAirportResult(long Id);
diff --git a/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs
index e0bada3..33bccff 100644
--- a/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs
+++ b/src/Services/Flight/src/Flight/Extensions/Infrastructure/InfrastructureExtensions.cs
@@ -31,7 +31,6 @@ using Serilog;
namespace Flight.Extensions.Infrastructure;
using BuildingBlocks.PersistMessageProcessor.Data;
-using Microsoft.AspNetCore.HttpOverrides;
public static class InfrastructureExtensions
{
@@ -40,6 +39,9 @@ public static class InfrastructureExtensions
var configuration = builder.Configuration;
var env = builder.Environment;
+ // https://github.com/tonerdo/dotnet-env
+ DotNetEnv.Env.TraversePath().Load();
+
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
@@ -86,8 +88,6 @@ public static class InfrastructureExtensions
options.Interceptors.Add();
});
- SnowFlakIdGenerator.Configure(1);
-
builder.Services.AddEasyCaching(options => { options.UseInMemory(configuration, "mem"); });
return builder;
diff --git a/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlight.cs b/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlight.cs
index c303057..e41b17b 100644
--- a/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlight.cs
+++ b/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlight.cs
@@ -19,7 +19,7 @@ public record CreateFlight(string FlightNumber, long AircraftId, long DepartureA
decimal DurationMinutes, DateTime FlightDate, Enums.FlightStatus Status,
decimal Price) : ICommand, IInternalCommand
{
- public long Id { get; init; } = SnowFlakIdGenerator.NewId();
+ public long Id { get; init; } = SnowflakeIdGenerator.NewId();
}
public record CreateFlightResult(long Id);
diff --git a/src/Services/Flight/src/Flight/Flights/Features/FlightMappings.cs b/src/Services/Flight/src/Flight/Flights/Features/FlightMappings.cs
index aa48632..e3c7541 100644
--- a/src/Services/Flight/src/Flight/Flights/Features/FlightMappings.cs
+++ b/src/Services/Flight/src/Flight/Flights/Features/FlightMappings.cs
@@ -19,11 +19,11 @@ public class FlightMappings : IRegister
x.ArriveDate, x.ArriveAirportId, x.DurationMinutes, x.FlightDate, x.Status, x.Price));
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.FlightId, s => s.Id);
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.FlightId, s => s.Id);
config.NewConfig()
diff --git a/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeat.cs b/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeat.cs
index 74ed128..fff3194 100644
--- a/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeat.cs
+++ b/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeat.cs
@@ -17,7 +17,7 @@ using Microsoft.EntityFrameworkCore;
public record CreateSeat(string SeatNumber, Enums.SeatType Type, Enums.SeatClass Class, long FlightId) : ICommand, IInternalCommand
{
- public long Id { get; init; } = SnowFlakIdGenerator.NewId();
+ public long Id { get; init; } = SnowflakeIdGenerator.NewId();
}
public record CreateSeatResult(long Id);
diff --git a/src/Services/Flight/src/Flight/Seats/Features/SeatMappings.cs b/src/Services/Flight/src/Flight/Seats/Features/SeatMappings.cs
index 3a80879..4321875 100644
--- a/src/Services/Flight/src/Flight/Seats/Features/SeatMappings.cs
+++ b/src/Services/Flight/src/Flight/Seats/Features/SeatMappings.cs
@@ -16,11 +16,11 @@ public class SeatMappings : IRegister
.ConstructUsing(x => new SeatDto(x.Id, x.SeatNumber, x.Type, x.Class, x.FlightId));
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.SeatId, s => s.Id);
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.SeatId, s => s.Id);
config.NewConfig()
diff --git a/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightCommand.cs b/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightCommand.cs
index f2875f5..1739ad4 100644
--- a/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightCommand.cs
+++ b/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightCommand.cs
@@ -10,7 +10,7 @@ public sealed class FakeCreateFlightCommand : AutoFaker
{
public FakeCreateFlightCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.FlightNumber, r => "12FF");
RuleFor(r => r.DepartureAirportId, _ => 1);
RuleFor(r => r.ArriveAirportId, _ => 2);
diff --git a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAircraftCommand.cs b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAircraftCommand.cs
index 9afddac..6b322db 100644
--- a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAircraftCommand.cs
+++ b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAircraftCommand.cs
@@ -9,6 +9,6 @@ public class FakeCreateAircraftCommand : AutoFaker
{
public FakeCreateAircraftCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
}
}
diff --git a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAirportCommand.cs b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAirportCommand.cs
index 5d3827e..8d746c2 100644
--- a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAirportCommand.cs
+++ b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateAirportCommand.cs
@@ -9,6 +9,6 @@ public class FakeCreateAirportCommand : AutoFaker
{
public FakeCreateAirportCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
}
}
diff --git a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightCommand.cs b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightCommand.cs
index 7a7248d..20a133f 100644
--- a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightCommand.cs
+++ b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightCommand.cs
@@ -10,7 +10,7 @@ public sealed class FakeCreateFlightCommand : AutoFaker
{
public FakeCreateFlightCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.FlightNumber, r => r.Random.Number(1000, 2000).ToString());
RuleFor(r => r.DepartureAirportId, _ => 1);
RuleFor(r => r.ArriveAirportId, _ => 2);
diff --git a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatCommand.cs b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatCommand.cs
index dbccc27..28a6fa7 100644
--- a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatCommand.cs
+++ b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatCommand.cs
@@ -10,7 +10,7 @@ public class FakeCreateSeatCommand : AutoFaker
{
public FakeCreateSeatCommand(long flightId)
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.FlightId, _ => flightId);
RuleFor(r => r.Class, _ => SeatClass.Economy);
RuleFor(r => r.Type, _ => SeatType.Middle);
diff --git a/src/Services/Flight/tests/UnitTest/Common/SnowFlakIdGeneratorFactory.cs b/src/Services/Flight/tests/UnitTest/Common/SnowFlakIdGeneratorFactory.cs
deleted file mode 100644
index 55f6062..0000000
--- a/src/Services/Flight/tests/UnitTest/Common/SnowFlakIdGeneratorFactory.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using BuildingBlocks.IdsGenerator;
-
-namespace Unit.Test.Common;
-
-public static class SnowFlakIdGeneratorFactory
-{
- public static void Create()
- {
- SnowFlakIdGenerator.Configure(1);
- }
-}
diff --git a/src/Services/Flight/tests/UnitTest/Common/UnitTestFixture.cs b/src/Services/Flight/tests/UnitTest/Common/UnitTestFixture.cs
index 3a8a181..0cfea73 100644
--- a/src/Services/Flight/tests/UnitTest/Common/UnitTestFixture.cs
+++ b/src/Services/Flight/tests/UnitTest/Common/UnitTestFixture.cs
@@ -13,7 +13,6 @@ namespace Unit.Test.Common
{
public UnitTestFixture()
{
- SnowFlakIdGeneratorFactory.Create();
Mapper = MapperFactory.Create();
DbContext = DbContextFactory.Create();
}
diff --git a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAircraftCommand.cs b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAircraftCommand.cs
index 7111fff..35326c3 100644
--- a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAircraftCommand.cs
+++ b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAircraftCommand.cs
@@ -9,6 +9,6 @@ public class FakeCreateAircraftCommand : AutoFaker
{
public FakeCreateAircraftCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
}
}
diff --git a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAirportCommand.cs b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAirportCommand.cs
index d9a079b..02c0be2 100644
--- a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAirportCommand.cs
+++ b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateAirportCommand.cs
@@ -9,6 +9,6 @@ public class FakeCreateAirportCommand : AutoFaker
{
public FakeCreateAirportCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
}
}
diff --git a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateFlightCommand.cs b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateFlightCommand.cs
index ad03ce9..7778b1d 100644
--- a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateFlightCommand.cs
+++ b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateFlightCommand.cs
@@ -9,7 +9,7 @@ public sealed class FakeCreateFlightCommand : AutoFaker
{
public FakeCreateFlightCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.FlightNumber, r => r.Random.Number(1000, 2000).ToString());
RuleFor(r => r.DepartureAirportId, _ => 1);
RuleFor(r => r.ArriveAirportId, _ => 2);
diff --git a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateSeatCommand.cs b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateSeatCommand.cs
index 6276482..edc3694 100644
--- a/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateSeatCommand.cs
+++ b/src/Services/Flight/tests/UnitTest/Fakes/FakeCreateSeatCommand.cs
@@ -10,7 +10,7 @@ public class FakeCreateSeatCommand : AutoFaker
{
public FakeCreateSeatCommand()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.FlightId, _ => 1);
RuleFor(r => r.SeatNumber, _ => "F99");
RuleFor(r => r.Type, _ => SeatType.Window);
diff --git a/src/Services/Identity/src/Identity.Api/.env b/src/Services/Identity/src/Identity.Api/.env
new file mode 100644
index 0000000..8f92016
--- /dev/null
+++ b/src/Services/Identity/src/Identity.Api/.env
@@ -0,0 +1 @@
+GENERATOR_ID=2
diff --git a/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs
index ca65770..fbb7205 100644
--- a/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs
+++ b/src/Services/Identity/src/Identity/Extensions/Infrastructure/InfrastructureExtensions.cs
@@ -37,6 +37,9 @@ public static class InfrastructureExtensions
var configuration = builder.Configuration;
var env = builder.Environment;
+ // https://github.com/tonerdo/dotnet-env
+ DotNetEnv.Env.TraversePath().Load();
+
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
@@ -76,8 +79,6 @@ public static class InfrastructureExtensions
builder.Services.AddCustomMassTransit(env, typeof(IdentityRoot).Assembly);
builder.Services.AddCustomOpenTelemetry();
- SnowFlakIdGenerator.Configure(4);
-
builder.AddCustomIdentityServer();
builder.Services.Configure(options =>
diff --git a/src/Services/Passenger/src/Passenger.Api/.env b/src/Services/Passenger/src/Passenger.Api/.env
new file mode 100644
index 0000000..2b3b264
--- /dev/null
+++ b/src/Services/Passenger/src/Passenger.Api/.env
@@ -0,0 +1 @@
+GENERATOR_ID=3
diff --git a/src/Services/Passenger/src/Passenger.Api/Passenger.Api.csproj b/src/Services/Passenger/src/Passenger.Api/Passenger.Api.csproj
index 347e509..91eafd6 100644
--- a/src/Services/Passenger/src/Passenger.Api/Passenger.Api.csproj
+++ b/src/Services/Passenger/src/Passenger.Api/Passenger.Api.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/src/Services/Passenger/src/Passenger/Extensions/Infrastructure/InfrastructureExtensions.cs b/src/Services/Passenger/src/Passenger/Extensions/Infrastructure/InfrastructureExtensions.cs
index 2228c13..8b58126 100644
--- a/src/Services/Passenger/src/Passenger/Extensions/Infrastructure/InfrastructureExtensions.cs
+++ b/src/Services/Passenger/src/Passenger/Extensions/Infrastructure/InfrastructureExtensions.cs
@@ -37,6 +37,9 @@ public static class InfrastructureExtensions
var configuration = builder.Configuration;
var env = builder.Environment;
+ // https://github.com/tonerdo/dotnet-env
+ DotNetEnv.Env.TraversePath().Load();
+
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
@@ -81,8 +84,6 @@ public static class InfrastructureExtensions
options.Interceptors.Add();
});
- SnowFlakIdGenerator.Configure(2);
-
return builder;
}
diff --git a/src/Services/Passenger/src/Passenger/Identity/Consumers/RegisteringNewUser/V1/RegisterNewUser.cs b/src/Services/Passenger/src/Passenger/Identity/Consumers/RegisteringNewUser/V1/RegisterNewUser.cs
index 590dd5f..08c417c 100644
--- a/src/Services/Passenger/src/Passenger/Identity/Consumers/RegisteringNewUser/V1/RegisterNewUser.cs
+++ b/src/Services/Passenger/src/Passenger/Identity/Consumers/RegisteringNewUser/V1/RegisterNewUser.cs
@@ -45,7 +45,7 @@ public class RegisterNewUserHandler : IConsumer
return;
}
- var passenger = Passengers.Models.Passenger.Create(SnowFlakIdGenerator.NewId(), context.Message.Name,
+ var passenger = Passengers.Models.Passenger.Create(SnowflakeIdGenerator.NewId(), context.Message.Name,
context.Message.PassportNumber);
await _passengerDbContext.AddAsync(passenger);
diff --git a/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassenger.cs b/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassenger.cs
index 95d03fe..62411ea 100644
--- a/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassenger.cs
+++ b/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassenger.cs
@@ -13,7 +13,7 @@ using Dtos;
public record CompleteRegisterPassenger(string PassportNumber, Enums.PassengerType PassengerType, int Age) : ICommand, IInternalCommand
{
- public long Id { get; init; } = SnowFlakIdGenerator.NewId();
+ public long Id { get; init; } = SnowflakeIdGenerator.NewId();
}
public record CompleteRegisterPassengerResult(PassengerDto PassengerDto);
diff --git a/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs b/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs
index 501183c..42bcbc3 100644
--- a/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs
+++ b/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs
@@ -11,7 +11,7 @@ public class PassengerMappings : IRegister
public void Register(TypeAdapterConfig config)
{
config.NewConfig()
- .Map(d => d.Id, s => SnowFlakIdGenerator.NewId())
+ .Map(d => d.Id, s => SnowflakeIdGenerator.NewId())
.Map(d => d.PassengerId, s => s.Id);
config.NewConfig()
diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerCommand.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerCommand.cs
index 4840817..1ce809b 100644
--- a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerCommand.cs
+++ b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerCommand.cs
@@ -10,7 +10,7 @@ public sealed class FakeCompleteRegisterPassengerCommand : AutoFaker r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.PassportNumber, _ => passportNumber);
RuleFor(r => r.PassengerType, _ => PassengerType.Male);
RuleFor(r => r.Age, _ => 30);
diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs
index 925d566..2a84a36 100644
--- a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs
+++ b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs
@@ -7,6 +7,6 @@ public static class FakePassengerCreated
{
public static global::Passenger.Passengers.Models.Passenger Generate(UserCreated userCreated)
{
- return global::Passenger.Passengers.Models.Passenger.Create(SnowFlakIdGenerator.NewId(), userCreated.Name, userCreated.PassportNumber);
+ return global::Passenger.Passengers.Models.Passenger.Create(SnowflakeIdGenerator.NewId(), userCreated.Name, userCreated.PassportNumber);
}
}
diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs
index 791bcdd..a525e8a 100644
--- a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs
+++ b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs
@@ -8,6 +8,6 @@ public class FakePassengerResponse : AutoFaker
{
public FakePassengerResponse()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
}
-}
\ No newline at end of file
+}
diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeUserCreated.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeUserCreated.cs
index 0ff69d0..e4b9fa3 100644
--- a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeUserCreated.cs
+++ b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeUserCreated.cs
@@ -8,7 +8,7 @@ public class FakeUserCreated : AutoFaker
{
public FakeUserCreated()
{
- RuleFor(r => r.Id, _ => SnowFlakIdGenerator.NewId());
+ RuleFor(r => r.Id, _ => SnowflakeIdGenerator.NewId());
RuleFor(r => r.Name, _ => "Sam");
RuleFor(r => r.PassportNumber, _ => "123456789");
}