1
0
mirror of https://github.com/bitwarden/server synced 2025-12-25 04:33:26 +00:00
Files
server/src/Infrastructure.EntityFramework/AdminConsole/Repositories/Queries/OrganizationUserReadCountByOrganizationIdEmailQuery.cs
Thomas Rittson 09d07d864e [AC-1751] AC Team code ownership moves: OrganizationUser (part 1) (#3487)
* Move OrganizationUser domain to AC Team ownership

* Namespaces will be updated in a separate commit
2023-11-30 07:04:56 +10:00

31 lines
1.1 KiB
C#

using Bit.Infrastructure.EntityFramework.Models;
namespace Bit.Infrastructure.EntityFramework.Repositories.Queries;
public class OrganizationUserReadCountByOrganizationIdEmailQuery : IQuery<OrganizationUser>
{
private readonly Guid _organizationId;
private readonly string _email;
private readonly bool _onlyUsers;
public OrganizationUserReadCountByOrganizationIdEmailQuery(Guid organizationId, string email, bool onlyUsers)
{
_organizationId = organizationId;
_email = email;
_onlyUsers = onlyUsers;
}
public IQueryable<OrganizationUser> Run(DatabaseContext dbContext)
{
var query = from ou in dbContext.OrganizationUsers
join u in dbContext.Users
on ou.UserId equals u.Id into u_g
from u in u_g.DefaultIfEmpty()
where ou.OrganizationId == _organizationId &&
((!_onlyUsers && (ou.Email == _email || u.Email == _email))
|| (_onlyUsers && u.Email == _email))
select ou;
return query;
}
}