Package Description
$ dotnet add package Reo.Core.SequenceGeneratorReo.Core.SequenceGenerator — это библиотека, которая обеспечивает генерацию и управление последовательностями данных в .NET-приложениях. Пакет решает проблему автоматического создания и проверки существования необходимых последовательностей (например, для генерации уникальных идентификаторов, счетчиков или других сценариев, требующих упорядоченных данных).
Основные функции:
appsettings.json.CreateAsync, GetAllAsync, UpdateAsync и др.Tenant, Name, Value, Timestamp.ISequenceGeneratorClient.Host: URL сервиса генерации последовательностей.AdminUser, AdminPassword: учетные данные администратора.Tenant: идентификатор тенанта.Names: список имен последовательностей, которые должны существовать.Microsoft.Extensions.Hosting (для фоновых сервисов).Microsoft.Extensions.Logging (для логирования).Microsoft.Extensions.Options (для конфигурации).Reo.Core.Extensions.EnumerableExtensions (для расширений LINQ).Install-Package Reo.Core.SequenceGenerator
dotnet add package Reo.Core.SequenceGenerator
// Startup.cs или Program.cs
services.AddOptions<SequenceGeneratorOptions>()
.Bind(Configuration.GetSection("SequenceGenerator"));
services.AddSingleton<ISequenceGeneratorClient, SequenceGeneratorClient>();
services.AddHostedService<SequenceNameCheckService>();
appsettings.json:{
"SequenceGenerator": {
"Host": "https://api.sequence.example.com",
"AdminUser": "admin",
"AdminPassword": "securepassword",
"Tenant": "my-tenant",
"Names": ["order-id", "user-code"]
}
}
var client = new SequenceGeneratorClient("https://api.sequence.example.com", "admin", "securepassword", "my-tenant");
var sequence = await client.CreateAsync("order-id");
Console.WriteLine($"Создана последовательность: {sequence.Name} (Value: {sequence.Value})");
var options = new SequenceGeneratorOptions
{
Host = "https://api.sequence.example.com",
AdminUser = "admin",
AdminPassword = "securepassword",
Tenant = "my-tenant",
Names = new List<string> { "order-id", "user-code" }
};
var service = new SequenceNameCheckService(new SequenceGeneratorClient(options), logger, options);
await service.ExecuteAsync(CancellationToken.None);
var sequences = await client.GetAllAsync();
foreach (var seq in sequences)
{
Console.WriteLine($"Последовательность: {seq.Name} (Value: {seq.Value}, Timestamp: {seq.Timestamp})");
}
Данный пакет распространяется под лицензией MIT.