Added Primary organization of tenant in get organization list
This commit is contained in:
parent
1cd8203d27
commit
c3670eaab9
@ -74,10 +74,36 @@ namespace Marco.Pms.Services.Controllers
|
||||
else
|
||||
{
|
||||
// Get organization IDs mapped to current tenant that are active
|
||||
var organizationIds = await _context.TenantOrgMappings
|
||||
var organizationIdsTask = Task.Run(async () =>
|
||||
{
|
||||
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
||||
return await context.TenantOrgMappings
|
||||
.Where(to => to.TenantId == tenantId && to.IsActive)
|
||||
.Select(to => to.OrganizationId)
|
||||
.ToListAsync();
|
||||
});
|
||||
|
||||
var tenantTask = Task.Run(async () =>
|
||||
{
|
||||
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
||||
return await context.Tenants
|
||||
.FirstOrDefaultAsync(t => t.Id == tenantId && t.IsActive);
|
||||
});
|
||||
|
||||
await Task.WhenAll(organizationIdsTask, tenantTask);
|
||||
|
||||
var organizationIds = organizationIdsTask.Result;
|
||||
var tenant = tenantTask.Result;
|
||||
|
||||
if (tenant == null)
|
||||
{
|
||||
_logger.LogWarning("Tenant {TenantId} is not found", tenantId);
|
||||
return NotFound(ApiResponse<object>.ErrorResponse("Tenant not found", "Tenant not found in database", 404));
|
||||
}
|
||||
|
||||
organizationIds.Add(tenant.OrganizationId);
|
||||
|
||||
organizationIds = organizationIds.Distinct().ToList();
|
||||
|
||||
organizationQuery = organizationQuery.Where(o => organizationIds.Contains(o.Id));
|
||||
_logger.LogDebug("Filtering organizations by tenant's mapped IDs count: {Count}", organizationIds.Count);
|
||||
@ -101,6 +127,14 @@ namespace Marco.Pms.Services.Controllers
|
||||
.Take(pageSize)
|
||||
.ToListAsync();
|
||||
|
||||
if (organizations.Any())
|
||||
{
|
||||
organizations = await _context.Tenants.AsNoTracking()
|
||||
.Include(t => t.Organization)
|
||||
.Where(t => t.Id == tenantId && t.OrganizationId == loggedInEmployee.OrganizationId && t.Organization != null && t.IsActive)
|
||||
.Select(t => t.Organization!).ToListAsync();
|
||||
}
|
||||
|
||||
// Collect creator and updater employee IDs
|
||||
var createdByIds = organizations.Where(o => o.CreatedById != null).Select(o => o.CreatedById!.Value).Distinct().ToList();
|
||||
var updatedByIds = organizations.Where(o => o.UpdatedById != null).Select(o => o.UpdatedById!.Value).Distinct().ToList();
|
||||
|
Loading…
x
Reference in New Issue
Block a user