예제 #1
0
        /// <summary>
        /// The get all paged.
        /// </summary>
        /// <param name="searchPattern">
        /// The name.
        /// </param>
        /// <param name="companyId">
        /// The company Id.
        /// </param>
        /// <param name="pageIndex">
        /// The page index.
        /// </param>
        /// <param name="pageSize">
        /// The page size.
        /// </param>
        /// <param name="totalCount">
        /// The total count.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{T}"/>.
        /// </returns>
        public IEnumerable <Category> GetAllByCompanyAndNamePaged(string searchPattern, int companyId, int pageIndex, int pageSize, out int totalCount)
        {
            var searchIds = new List <int>();

            if (pageIndex <= default(int))
            {
                pageIndex = 1;
            }

            var queryOver = new DefaultQueryOver <Category, int>().GetQueryOver();

            if (companyId != 0)
            {
                queryOver = queryOver.Where(x => x.Company.Id == companyId);
            }

            if (!string.IsNullOrWhiteSpace(searchPattern))
            {
                searchIds = this.fullTextModel.Search(searchPattern, typeof(Category), int.MaxValue).ToList();
                queryOver = queryOver.AndRestrictionOn(x => x.Id).IsIn(searchIds);
            }

            QueryOver <Category, Category> rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            QueryOver <Category> pagedQuery = queryOver.OrderBy(x => x.CategoryName).Asc;

            if (pageSize > 0)
            {
                pagedQuery = pagedQuery.Take(pageSize).Skip((pageIndex - 1) * pageSize);
            }

            return(searchIds.Any() ? this.Repository.FindAll(pagedQuery).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(pagedQuery));
        }
예제 #2
0
        /// <summary>
        /// The get all paged.
        /// </summary>
        /// <param name="pageIndex">
        /// The page index.
        /// </param>
        /// <param name="pageSize">
        /// The page items.
        /// </param>
        /// <param name="totalCount">
        /// The total Count.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{AppletItem}"/>.
        /// </returns>
        public IEnumerable <AppletItem> GetAllPaged(int pageIndex, int pageSize, out int totalCount)
        {
            QueryOver <AppletItem, AppletItem> queryOver     = new DefaultQueryOver <AppletItem, int>().GetQueryOver();
            QueryOver <AppletItem, AppletItem> rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            QueryOver <AppletItem> pagedQuery = queryOver.Take(pageSize).Skip((pageIndex - 1) * pageSize);

            return(this.Repository.FindAll(pagedQuery));
        }
예제 #3
0
        /// <summary>
        /// The get all paged.
        /// </summary>
        /// <param name="pageIndex">
        /// The page index.
        /// </param>
        /// <param name="pageSize">
        /// The page items.
        /// </param>
        /// <param name="totalCount">
        /// The total Count.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{Distractor}"/>.
        /// </returns>
        public IEnumerable <Distractor> GetAllPaged(int pageIndex, int pageSize, out int totalCount)
        {
            var queryOver     = new DefaultQueryOver <Distractor, int>().GetQueryOver();
            var rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            var pagedQuery = queryOver.Fetch(x => x.Image).Eager.Fetch(x => x.LeftImage).Eager.Fetch(x => x.RightImage).Eager.Take(pageSize).Skip((pageIndex - 1) * pageSize);

            return(this.Repository.FindAll(pagedQuery));
        }
예제 #4
0
        /// <summary>
        /// The get all paged.
        /// </summary>
        /// <param name="pageIndex">
        /// The page index.
        /// </param>
        /// <param name="pageSize">
        /// The page items.
        /// </param>
        /// <param name="totalCount">
        /// The total Count.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{SubModuleCategory}"/>.
        /// </returns>
        public IEnumerable <SubModuleCategory> GetAllPaged(int pageIndex, int pageSize, out int totalCount)
        {
            var queryOver     = new DefaultQueryOver <SubModuleCategory, int>().GetQueryOver();
            var rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            var pagedQuery = queryOver.Take(pageSize).Skip((pageIndex - 1) * pageSize);

            return(this.Repository.FindAll(pagedQuery));
        }
예제 #5
0
        /// <summary>
        /// The get all paged.
        /// </summary>
        /// <param name="pageIndex">
        /// The page index.
        /// </param>
        /// <param name="pageSize">
        /// The page items.
        /// </param>
        /// <param name="totalCount">
        /// The total Count.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{Question}"/>.
        /// </returns>
        public IEnumerable <Question> GetAllPaged(int pageIndex, int pageSize, out int totalCount)
        {
            var queryOver     = new DefaultQueryOver <Question, int>().GetQueryOver().Where(x => x.IsActive == true);
            var rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            var pagedQuery = queryOver.Fetch(x => x.Image).Eager.Take(pageSize).Skip((pageIndex - 1) * pageSize);

            return(this.Repository.FindAll(pagedQuery));
        }
예제 #6
0
        public IEnumerable <Contact> GetAllPaged(int pageIndex, int pageSize, out int totalCount)
        {
            if (pageIndex <= default(int))
            {
                pageIndex = 1;
            }

            var queryOver     = new DefaultQueryOver <Contact, int>().GetQueryOver();
            var rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            var pagedQuery = queryOver.OrderBy(x => x.FirstName).Asc.ThenBy(x => x.LastName).Asc.Take(pageSize).Skip((pageIndex - 1) * pageSize);

            return(this.Repository.FindAll(pagedQuery));
        }
예제 #7
0
        public IEnumerable <Contact> GetAllByCompanyAndNamePaged(string searchPattern, int companyId, int pageIndex, int pageSize, out int totalCount)
        {
            var searchIds = new List <int>();

            if (pageIndex <= default(int))
            {
                pageIndex = 1;
            }

            var queryOver = new DefaultQueryOver <Contact, int>().GetQueryOver();


            if (!string.IsNullOrWhiteSpace(searchPattern))
            {
                searchIds = this._fullTextModel.Search(searchPattern, typeof(Contact), int.MaxValue).ToList();
                queryOver = queryOver.AndRestrictionOn(x => x.Id).IsIn(searchIds);
            }

            if (companyId != 0)
            {
                CompanyContact companyContact = null;
                var            queryOver2     = queryOver.JoinQueryOver(x => x.CompanyContacts, () => companyContact).Where(() => companyContact.Company.Id == companyId);
                var            rowCountQuery  = queryOver2.ToRowCountQuery();
                totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;

                if (pageSize > 0)
                {
                    var pagedQueryOver = queryOver2.Take(pageSize).Skip((pageIndex - 1) * pageSize);
                    return(searchIds.Any() ? this.Repository.FindAll(pagedQueryOver).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(pagedQueryOver));
                }

                return(searchIds.Any() ? this.Repository.FindAll(queryOver2).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(queryOver2));
            }
            else
            {
                var rowCountQuery = queryOver.ToRowCountQuery();
                totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;

                if (pageSize > 0)
                {
                    var pagedQueryOver = queryOver.Take(pageSize).Skip((pageIndex - 1) * pageSize);
                    return(searchIds.Any() ? this.Repository.FindAll(pagedQueryOver).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(pagedQueryOver));
                }

                return(searchIds.Any() ? this.Repository.FindAll(queryOver).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(queryOver));
            }
        }
예제 #8
0
        /// <summary>
        /// The get recent splash screen reports paged.
        /// </summary>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="pageIndex">
        /// The page index.
        /// </param>
        /// <param name="pageSize">
        /// The page size.
        /// </param>
        /// <param name="totalCount">
        /// The total count.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{RecentReportDTO}"/>.
        /// </returns>
        // ReSharper disable ImplicitlyCapturedClosure
        public IEnumerable <RecentReportDTO> GetRecentSplashScreenReportsPaged(
            int userId, int pageIndex, int pageSize, out int totalCount)
        {
            RecentReportFromStoredProcedureDTO dto             = null;
            SubModuleCategory category                         = null;
            QueryOver <SubModuleItem, SubModuleItem> queryOver =
                new DefaultQueryOver <SubModuleItem, int>().GetQueryOver()
                .Where(x => x.CreatedBy.Id == userId)
                .JoinAlias(x => x.SubModuleCategory, () => category)
                .OrderBy(x => x.DateModified)
                .Desc.SelectList(
                    list =>
                    list.Select(x => x.DateModified)
                    .WithAlias(() => dto.dateModified)
                    .Select(() => category.Id)
                    .WithAlias(() => dto.subModuleCategoryId)
                    .Select(x => x.Id)
                    .WithAlias(() => dto.subModuleItemId)
                    .Select(() => category.SubModule.Id)
                    .WithAlias(() => dto.type))
                .TransformUsing(Transformers.AliasToBean <RecentReportFromStoredProcedureDTO>());

            QueryOver <SubModuleItem, SubModuleItem> rowCountQuery = queryOver.ToRowCountQuery();

            totalCount = this.Repository.FindOne <int>(rowCountQuery).Value;
            QueryOver <SubModuleItem> pagedQuery = queryOver.Take(pageSize).Skip((pageIndex - 1) * pageSize);
            var reports =
                this.Repository.FindAll <RecentReportFromStoredProcedureDTO>(pagedQuery)
                .ToList()
                .Select(x => new RecentReportDTO(x))
                .ToList();

            List <int> reportsIds = reports.Select(x => x.subModuleItemId).ToList();
            Dictionary <int, RecentReportDTO> crosswords     = this.appletItemModel.GetCrosswords(reportsIds);
            Dictionary <int, RecentReportDTO> quizes         = this.quizModel.GetQuizes(reportsIds);
            Dictionary <int, RecentReportDTO> surveys        = this.surveyModel.GetSurveys(reportsIds);
            Dictionary <int, RecentReportDTO> tests          = this.testModel.GetTests(reportsIds);
            Dictionary <int, RecentReportDTO> socialProfiles = this.socialProfileModel.GetSNProfiles(reportsIds);

            return(this.MergeData(reports, new List <Dictionary <int, RecentReportDTO> > {
                crosswords, quizes, surveys, socialProfiles, tests
            }));
        }