示例#1
0
        public IEnumerable <UserGroupMembership> GetMembers(UserGroupsSearchRequest request)
        {
            var result = new List <UserGroupMembership>();

            //Build Query
            if (request.OrganizationId.HasValue)
            {
                var query = _userGroupRepo.FindAll().OfType <Olma.OrganizationUserGroup>()
                            .Include(i => i.Users)
                            .AsNoTracking()
                            .IgnoreQueryFilters()
                            .Where(q => !q.IsDeleted && q.OrganizationId == request.OrganizationId);
                result = query.ProjectTo <UserGroupMembership>(Mapper.ConfigurationProvider).ToList();
            }
            if (request.CustomerId.HasValue)
            {
                var query = _userGroupRepo.FindAll().OfType <Olma.CustomerUserGroup>()
                            .Include(i => i.Users)
                            .AsNoTracking()
                            .IgnoreQueryFilters()
                            .Where(q => !q.IsDeleted && q.CustomerId == request.CustomerId);
                result = query.ProjectTo <UserGroupMembership>(Mapper.ConfigurationProvider).ToList();
            }
            if (request.CustomerDivisionId.HasValue)
            {
                var query = _userGroupRepo.FindAll().OfType <Olma.CustomerDivisionUserGroup>()
                            .Include(i => i.Users)
                            .AsNoTracking()
                            .IgnoreQueryFilters()
                            .Where(q => !q.IsDeleted && q.CustomerDivisionId == request.CustomerDivisionId);
                result = query.ProjectTo <UserGroupMembership>(Mapper.ConfigurationProvider).ToList();
            }
            return(result);
        }
示例#2
0
        public IEnumerable <UserGroupListItem> Search(UserGroupsSearchRequest request)
        {
            //Build Query
            if (request.OrganizationId.HasValue)
            {
                var query = _userGroupRepo.FindAll().OfType <Olma.OrganizationUserGroup>()
                            .Include(i => i.Permissions)
                            .AsNoTracking()
                            .IgnoreQueryFilters()
                            .Where(q => !q.IsDeleted && q.OrganizationId == request.OrganizationId);
                return(query.ProjectTo <UserGroupListItem>(Mapper.ConfigurationProvider).ToList());
            }

            if (request.CustomerId.HasValue)
            {
                var query = _userGroupRepo.FindAll().OfType <Olma.CustomerUserGroup>()
                            .Include(i => i.Permissions)
                            .AsNoTracking()
                            .IgnoreQueryFilters()
                            .Where(q => !q.IsDeleted && q.CustomerId == request.CustomerId);
                return(query.ProjectTo <UserGroupListItem>(Mapper.ConfigurationProvider).ToList());
            }
            if (request.CustomerDivisionId.HasValue)
            {
                var query = _userGroupRepo.FindAll().OfType <Olma.CustomerDivisionUserGroup>()
                            .Include(i => i.Permissions)
                            .AsNoTracking()
                            .IgnoreQueryFilters()
                            .Where(q => !q.IsDeleted && q.CustomerDivisionId == request.CustomerDivisionId);

                return(query.ProjectTo <UserGroupListItem>(Mapper.ConfigurationProvider).ToList());
            }
            if (request.PostingAccountId.HasValue)
            {
                throw new NotImplementedException(); //TODO: Get Usergroups by PostingAccountId
            }
            return(null);
        }
 //[HasPermission(typeof(CanReadVoucherRequirement))] TODO User management Permissions
 public object Members(DataSourceLoadOptions loadOptions, [FromQuery] UserGroupsSearchRequest request)
 {
     return(DataSourceLoader.Load(this._userGroupService.GetMembers(request), loadOptions));
 }