Beispiel #1
0
        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);
        }