fix ยืมคืนเครื่องราชย?มาใช้่ RootDnaId แทน rootId

This commit is contained in:
Suphonchai Phoonsawat 2025-11-21 09:45:55 +07:00
parent 65e85b7194
commit 14fd93ae95
9 changed files with 21340 additions and 22 deletions

View file

@ -16,11 +16,9 @@ namespace BMA.EHR.Infrastructure.MessageQueue
{
#region " Fields "
private readonly UserProfileRepository _userProfileRepository;
private readonly InsigniaPeriodsRepository _insigniaPeriodsRepository;
private readonly IHttpContextAccessor _httpContextAccessor;
private const string INSIGNIA_QUEUE = "bma_insignia_request";
private readonly IServiceScopeFactory _serviceScopeFactory;
private readonly IConfiguration _configuration;
private IConnection _connection;
@ -30,33 +28,29 @@ namespace BMA.EHR.Infrastructure.MessageQueue
#region " Constructor and Destructor "
public RabbitMQConsumer(UserProfileRepository userProfileRepository,
InsigniaPeriodsRepository insigniaPeriodsRepository,
IHttpContextAccessor httpContextAccessor,
public RabbitMQConsumer(IHttpContextAccessor httpContextAccessor,
IServiceScopeFactory serviceScopeFactory,
IConfiguration configuration)
{
_serviceScopeFactory = serviceScopeFactory;
_configuration = configuration;
_userProfileRepository = userProfileRepository;
_insigniaPeriodsRepository = insigniaPeriodsRepository;
_httpContextAccessor = httpContextAccessor;
var host = _configuration["RabbitMQ:URL"];
var userName = _configuration["RabbitMQ:UserName"];
var password = _configuration["RabbitMQ:Password"];
var factory = new ConnectionFactory()
{
HostName = host,
UserName = userName,
Password = password
};
_connection = factory.CreateConnection();
_channel = _connection.CreateModel();
_channel.QueueDeclare(queue: INSIGNIA_QUEUE, durable: false, exclusive: false, autoDelete: false, arguments: null);
}
public override void Dispose()
@ -85,19 +79,19 @@ namespace BMA.EHR.Infrastructure.MessageQueue
var userRepo = scope.ServiceProvider.GetRequiredService<UserProfileRepository>();
var insigniaRepo = scope.ServiceProvider.GetRequiredService<InsigniaPeriodsRepository>();
var selectPeriod = await _insigniaPeriodsRepository.GetByIdAsync(periodId);
var selectPeriod = await insigniaRepo.GetByIdAsync(periodId);
if (selectPeriod == null)
{
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
}
var organizations = await userRepo.GetActiveRootAsync(AccessToken, selectPeriod.RevisionId);
foreach (var organization in organizations)
{
if (organization == null)
continue;
var result = await insigniaRepo.GetInsigniaRequest(periodId, organization.Id);
if (result != null)
{