Example #1
0
        /// <summary>
        /// The get applet sub module items by user id.
        /// </summary>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{SubModuleItem}"/>.
        /// </returns>
        public IEnumerable <SubModuleItemDTO> GetQuizSMItemsByUserId(int userId)
        {
            QueryOver <User, User> query =
                new DefaultQueryOver <User, int>().GetQueryOver()
                .Where(x => x.Id == userId)
                .Select(res => res.Company.Id);
            IFutureValue <int> companyId = this.userRepository.FindOne <int>(query);

            SubModuleItemFromStoredProcedureDTO dto = null;
            SubModuleItem     smi    = null;
            SubModuleCategory smc    = null;
            Quiz quiz                = null;
            SubModuleItemTheme theme = null;
            User u         = null;
            var  queryOver =
                new DefaultQueryOver <SubModuleItem, int>().GetQueryOver(() => smi)
                .JoinQueryOver(x => x.SubModuleCategory, () => smc)
                .JoinQueryOver(() => smi.Quizes, () => quiz)
                .JoinQueryOver(() => smi.Themes, () => theme, JoinType.LeftOuterJoin)
                .JoinQueryOver(() => smc.User, () => u, JoinType.InnerJoin)
                .Where(() => smi.CreatedBy != null && smc.User != null && ((smi.CreatedBy.Id == userId && smc.User.Id == userId) ||
                                                                           (u.Company.Id == companyId.Value && quiz.LmsQuizId != null)))
                .SelectList(res =>
                            res.Select(() => smi.CreatedBy.Id)
                            .WithAlias(() => dto.createdBy)
                            .Select(() => smi.Id)
                            .WithAlias(() => dto.subModuleItemId)
                            .Select(() => smc.SubModule.Id)
                            .WithAlias(() => dto.subModuleId)
                            .Select(() => smi.SubModuleCategory.Id)
                            .WithAlias(() => dto.subModuleCategoryId)
                            .Select(() => smi.IsShared)
                            .WithAlias(() => dto.isShared)
                            .Select(() => smi.ModifiedBy.Id)
                            .WithAlias(() => dto.modifiedBy)
                            .Select(() => smi.DateCreated)
                            .WithAlias(() => dto.dateCreated)
                            .Select(() => smi.DateModified)
                            .WithAlias(() => dto.dateModified)
                            .Select(() => smi.IsActive)
                            .WithAlias(() => dto.isActive)
                            .Select(() => theme.Id)
                            .WithAlias(() => dto.themeId))
                .TransformUsing(Transformers.AliasToBean <SubModuleItemFromStoredProcedureDTO>());
            var result =
                this.Repository.FindAll <SubModuleItemFromStoredProcedureDTO>(queryOver)
                .ToList()
                .Select(x => new SubModuleItemDTO(x))
                .ToList();
            var themeIds   = result.Where(x => x.themeId.HasValue).Select(x => x.themeId.Value).ToList();
            var themeQuery = new DefaultQueryOver <SubModuleItemTheme, int>().GetQueryOver().WhereRestrictionOn(x => x.Id).IsIn(themeIds);
            var themes     = this.themeRepository.FindAll(themeQuery).ToList();

            result.ForEach(x => x.themeVO = x.themeId.HasValue ? themes.FirstOrDefault(t => t.Id == x.themeId).Return(tt => new SubModuleItemThemeDTO(tt), null) : null);
            return(result);
        }
Example #2
0
        /// <summary>
        /// The get quiz sub module items by user id.
        /// </summary>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{SubModuleItemDTO}"/>.
        /// </returns>
        public IEnumerable <SubModuleItemDTO> GetQuizSubModuleItemsByUserId(int userId)
        {
            SubModuleItem     smi = null;
            SubModuleCategory smc = null;
            Quiz q = null;
            SubModuleItemFromStoredProcedureDTO dto = null;
            var queryOver = new DefaultQueryOver <SubModuleItem, int>().GetQueryOver(() => smi)
                            .JoinQueryOver(x => x.SubModuleCategory, () => smc, JoinType.InnerJoin)
                            .JoinQueryOver(() => smi.Quizes, () => q, JoinType.LeftOuterJoin)
                            .Where(() => smi.CreatedBy.Id == userId && smc.User.Id == userId && q.Id != 0)
                            .SelectList(res =>
                                        res.Select(() => smi.IsActive)
                                        .WithAlias(() => dto.isActive)
                                        .Select(() => smi.DateModified)
                                        .WithAlias(() => dto.dateModified)
                                        .Select(() => smi.DateCreated)
                                        .WithAlias(() => dto.dateCreated)
                                        .Select(() => smi.ModifiedBy.Id)
                                        .WithAlias(() => dto.modifiedBy)
                                        .Select(() => smi.IsShared)
                                        .WithAlias(() => dto.isShared)
                                        .Select(() => smi.CreatedBy.Id)
                                        .WithAlias(() => dto.createdBy)
                                        .Select(() => smi.SubModuleCategory.Id)
                                        .WithAlias(() => dto.subModuleCategoryId)
                                        .Select(() => smc.SubModule.Id)
                                        .WithAlias(() => dto.subModuleId)
                                        .Select(() => smi.Id)
                                        .WithAlias(() => dto.subModuleItemId))
                            .TransformUsing(Transformers.AliasToBean <SubModuleItemFromStoredProcedureDTO>());
            var result = Repository.FindAll <SubModuleItemFromStoredProcedureDTO>(queryOver).ToList()
                         .Select(x => new SubModuleItemDTO(x))
                         .ToList();

            return(result);
        }