コード例 #1
0
        public virtual ListWithTotalCountResult <UserGroup> FindGroupsByBook(long bookId, int start, int count, string filterByName, bool fetchUser = false)
        {
            Project    projectAlias    = null;
            Permission permissionAlias = null;
            UserGroup  groupAlias      = null;

            var query = GetSession().QueryOver(() => groupAlias)
                        .JoinAlias(x => groupAlias.Permissions, () => permissionAlias)
                        .JoinAlias(x => permissionAlias.Project, () => projectAlias)
                        .Where(() => projectAlias.Id == bookId && projectAlias.IsRemoved == false);

            if (!string.IsNullOrEmpty(filterByName))
            {
                query.WhereRestrictionOn(() => groupAlias.Name).IsInsensitiveLike(filterByName, MatchMode.Anywhere);
            }

            query.OrderBy(x => x.GroupType).Asc
            .OrderBy(x => x.Name).Asc
            .Skip(start)
            .Take(count);

            var list       = query.Future();
            var totalCount = query.ToRowCountQuery().FutureValue <int>();

            var result = new ListWithTotalCountResult <UserGroup>
            {
                List  = list.ToList(),
                Count = totalCount.Value
            };

            if (fetchUser)
            {
                GetSession().QueryOver <SingleUserGroup>()
                .WhereRestrictionOn(x => x.Id).IsInG(result.List.Select(x => x.Id))
                .Fetch(SelectMode.Fetch, x => x.User)
                .List();
            }

            return(result);
        }
コード例 #2
0
ファイル: ProjectManager.cs プロジェクト: RIDICS/ITJakub
        private PagedResultList <ProjectDetailContract> MapPagedProjectsToContractList(ListWithTotalCountResult <MetadataResource> dbResult)
        {
            var resultContractList = MapProjectsToContractList(dbResult.List);

            return(new PagedResultList <ProjectDetailContract>
            {
                List = resultContractList,
                TotalCount = dbResult.Count,
            });
        }