Enhance EF UserRepository to improve premium access retrieval by including related organization data.

This commit is contained in:
Rui Tome 2025-12-08 17:22:27 +00:00
parent da9f0a1c20
commit df7bd08dda
No known key found for this signature in database
GPG Key ID: 526239D96A8EC066

View File

@ -281,18 +281,22 @@ public class UserRepository : Repository<Core.Entities.User, User, Guid>, IUserR
using (var scope = ServiceScopeFactory.CreateScope())
{
var dbContext = GetDatabaseContext(scope);
var users = dbContext.Users.Where(x => ids.Contains(x.Id));
return await users.Select(user => new UserPremiumAccess
var users = await dbContext.Users
.Where(x => ids.Contains(x.Id))
.Include(u => u.OrganizationUsers)
.ThenInclude(ou => ou.Organization)
.ToListAsync();
return users.Select(user => new UserPremiumAccess
{
Id = user.Id,
PersonalPremium = user.Premium,
OrganizationPremium = dbContext.OrganizationUsers
.Any(ou => ou.UserId == user.Id &&
dbContext.Organizations
.Any(o => o.Id == ou.OrganizationId &&
o.Enabled == true &&
o.UsersGetPremium == true))
}).ToListAsync();
OrganizationPremium = user.OrganizationUsers
.Any(ou => ou.Organization != null &&
ou.Organization.Enabled == true &&
ou.Organization.UsersGetPremium == true)
}).ToList();
}
}