public async Task <List <Organization> > ListOrganizationsAsync( OrganizationListRequest request, OrganizationFilter filter, OrganizationRetrievalOptions options, CancellationToken cancellationToken) { var user = _httpContextAccessor.HttpContext.User; if (!user.Identity.IsAuthenticated) { return(new List <Organization>()); } var query = _context.Organizations.AsNoTracking(); if (!user.IsPowerAdmin()) // Power admin can see all orgs. { query = query.HasOrganizationMember(user); } return(await query .AddFilter(filter ?? new OrganizationFilter()) .AddOrder(request.OrderBy, request.Descending) .WithOptions(options ?? new OrganizationRetrievalOptions()) .ToListAsync(cancellationToken)); }
public async Task <List <Organization> > ListOrganizationsAsync( OrganizationFilter filter, OrganizationRetrievalOptions options) { var user = _httpContextAccessor.HttpContext.User; if (!user.Identity.IsAuthenticated) { return(new List <Organization>()); } var query = _context.Organizations.AsNoTracking(); if (!user.IsInRole(Roles.SuperAdmin)) // Super admin can see all orgs. { query = query.HasOrganizationMember(user); } return(await query .UseFilter(filter ?? new OrganizationFilter()) .UseOptions(options ?? new OrganizationRetrievalOptions()) .ToListAsync()); }
public static IQueryable <Organization> UseFilter(this IQueryable <Organization> query, OrganizationFilter filter) { if (filter == null) { throw new ArgumentNullException(nameof(filter)); } if (filter.InactiveOnly) { query = query.Where(o => !o.Active); } else if (!filter.IncludeInactive) { query = query.Where(o => o.Active); } return(query); }