/// <summary> /// The get quizzes by user id. /// </summary> /// <param name="userId"> /// The user id. /// </param> /// <param name="showLms"> /// The show lms. /// </param> /// <returns> /// The <see cref="IEnumerable{QuizFromStoredProcedureDTO}"/>. /// </returns> public IEnumerable <QuizFromStoredProcedureExDTO> GetQuizzesByUserId(int userId, bool showLms) { Quiz q = null; SubModuleItem smi = null; SubModuleCategory smc = null; User u = null; User u2 = null; QuizFromStoredProcedureExDTO dto = null; QueryOver <Quiz, User> queryOver = new DefaultQueryOver <Quiz, int>().GetQueryOver(() => q) .JoinQueryOver(x => x.SubModuleItem, () => smi, JoinType.InnerJoin) .Where(() => smi.IsActive == true) .And(() => q.LmsQuizId == null || showLms == true) .JoinQueryOver(() => smi.SubModuleCategory, () => smc, JoinType.InnerJoin) .Where(() => smc.IsActive == true) .JoinQueryOver(() => smc.User, () => u, JoinType.InnerJoin) .JoinQueryOver(() => smi.CreatedBy, () => u2, JoinType.LeftOuterJoin) .Where(() => u2.Id == userId) .SelectList( res => res.Select(() => q.Description) .WithAlias(() => dto.description) .Select(() => q.QuizName) .WithAlias(() => dto.quizName) .Select(() => q.LmsQuizId) .WithAlias(() => dto.lmsQuizId) .Select(() => q.Id) .WithAlias(() => dto.quizId) .Select(() => u.LastName) .WithAlias(() => dto.lastName) .Select(() => q.IsPostQuiz) .WithAlias(() => dto.isPostQuiz) .Select(() => q.PassingScore) .WithAlias(() => dto.PassingScore) .Select(() => u.FirstName) .WithAlias(() => dto.firstName) .Select(() => u.Id) .WithAlias(() => dto.userId) .Select(() => u2.LastName) .WithAlias(() => dto.createdByLastName) .Select(() => u2.FirstName) .WithAlias(() => dto.createdByName) .Select(() => smi.CreatedBy.Id) .WithAlias(() => dto.createdBy) .Select(() => smi.DateModified) .WithAlias(() => dto.dateModified) .Select(() => smi.Id) .WithAlias(() => dto.subModuleItemId) .Select(() => smc.CategoryName) .WithAlias(() => dto.categoryName) .Select(() => smc.Id) .WithAlias(() => dto.subModuleCategoryId)) .TransformUsing(Transformers.AliasToBean <QuizFromStoredProcedureExDTO>()); List <QuizFromStoredProcedureExDTO> result = this.Repository.FindAll <QuizFromStoredProcedureExDTO>(queryOver).ToList(); return(result); }
/// <summary> /// The get shared for user quizzes by user id. /// </summary> /// <param name="userId"> /// The user id. /// </param> /// <returns> /// The <see cref="IEnumerable{QuizFromStoredProcedureDTO}"/>. /// </returns> public IEnumerable <QuizFromStoredProcedureExDTO> GetSharedForUserQuizzesByUserId(int userId) { QueryOver <User, User> query = new DefaultQueryOver <User, int>().GetQueryOver() .Where(x => x.Id == userId) .Select(res => res.Company.Id); IFutureValue <int> id = this.userRepository.FindOne <int>(query); Quiz q = null; SubModuleItem smi = null; SubModuleCategory smc = null; User u = null; User u2 = null; QuizFromStoredProcedureExDTO dto = null; QueryOver <Quiz, User> queryOver = new DefaultQueryOver <Quiz, int>().GetQueryOver(() => q) .JoinQueryOver(x => x.SubModuleItem, () => smi, JoinType.InnerJoin) .Where(() => smi.IsActive == true && smi.IsShared == true && q.LmsQuizId == null) .JoinQueryOver(() => smi.SubModuleCategory, () => smc, JoinType.InnerJoin) .Where(() => smc.IsActive == true) .JoinQueryOver(() => smc.User, () => u, JoinType.InnerJoin) .JoinQueryOver(() => smi.CreatedBy, () => u2, JoinType.InnerJoin) .Where(() => u2.Id != userId && u2.Company.Id == id.Value && (int)u2.Status == 1) .SelectList( res => res.Select(() => q.Description) .WithAlias(() => dto.description) .Select(() => q.QuizName) .WithAlias(() => dto.quizName) .Select(() => q.Id) .WithAlias(() => dto.quizId) .Select(() => u.LastName) .WithAlias(() => dto.lastName) .Select(() => u.FirstName) .WithAlias(() => dto.firstName) .Select(() => q.IsPostQuiz) .WithAlias(() => dto.isPostQuiz) .Select(() => q.PassingScore) .WithAlias(() => dto.PassingScore) .Select(() => u.Id) .WithAlias(() => dto.userId) .Select(() => u2.LastName) .WithAlias(() => dto.createdByLastName) .Select(() => u2.FirstName) .WithAlias(() => dto.createdByName) .Select(() => smi.CreatedBy.Id) .WithAlias(() => dto.createdBy) .Select(() => smi.DateModified) .WithAlias(() => dto.dateModified) .Select(() => smi.Id) .WithAlias(() => dto.subModuleItemId) .Select(() => smc.CategoryName) .WithAlias(() => dto.categoryName) .Select(() => smc.Id) .WithAlias(() => dto.subModuleCategoryId)) .TransformUsing(Transformers.AliasToBean <QuizFromStoredProcedureExDTO>()); List <QuizFromStoredProcedureExDTO> result = this.Repository.FindAll <QuizFromStoredProcedureExDTO>(queryOver).ToList(); return(result); }