public IPageableList <Question> GetPageableQuestions(int testId, string searchString = null,
                                                             IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Question>(pageInfo, question => question.TestId == testId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(question => question.Description.ToLower().Contains(searchString) ||
                                      question.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.QuestionsRepository.GetPageableBy(query));
        }
示例#2
0
        public IPageableList <Subject> GetSubjectsLecturer(int lecturerId, string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Subject>(pageInfo, e => e.SubjectLecturers.Any(x => x.LecturerId == lecturerId && !e.IsArchive));

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return(repositoriesContainer.SubjectRepository.GetPageableBy(query));
            }
        }
        public IPageableList<ProjectUser> GetProjectUsers(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<ProjectUser>(pageInfo);
            query.Include(e => e.User);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.User.FullName.ToLower().StartsWith(searchString) || e.User.FullName.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.ProjectUsersRepository.GetPageableBy(query);
            }
        }
        public IPageableList <Test> GetPageableTests(int subjectId, string searchString = null,
                                                     IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Test>(pageInfo, test => test.SubjectId == subjectId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(test => test.Description.ToLower().Contains(searchString) ||
                                      test.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            query.Include(test => test.TestUnlocks);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.TestsRepository.GetPageableBy(query));
        }
示例#5
0
        public IPageableList <Group> GetGroupsPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Group>(pageInfo);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias).Include(g => g.Students);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var groups = repositoriesContainer.GroupsRepository.GetPageableBy(query);
                return(groups);
            }
        }
示例#6
0
        public IPageableList <Project> GetProjects(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Project>(pageInfo);

            query.Include(e => e.Creator);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Title.ToLower().StartsWith(searchString) || e.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return(repositoriesContainer.ProjectsRepository.GetPageableBy(query));
            }
        }
        public IPageableList<Group> GetGroupsPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Group>(pageInfo);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias).Include(g => g.Students);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var groups = repositoriesContainer.GroupsRepository.GetPageableBy(query);
                return groups;
            }
        }
        public IPageableList <Bug> GetAllBugs(string searchString = null, IPageInfo pageInfo = null,
                                              IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Bug>(pageInfo);

            query.Include(e => e.Status);
            query.Include(e => e.Severity);
            query.Include(e => e.Symptom);
            query.Include(e => e.Project);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Summary.ToLower().StartsWith(searchString) || e.Summary.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.BugsRepository.GetPageableBy(query));
        }
        public IPageableList <Project> GetUserProjects(int userId, string searchString           = null, IPageInfo pageInfo = null,
                                                       IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Project>(pageInfo);

            query.Include(e => e.Creator.Lecturer)
            .Include(e => e.Creator.Student)
            .Include(e => e.ProjectUsers)
            .AddFilterClause(e => e.ProjectUsers.Any(e2 => e2.UserId == userId));
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Title.ToLower().StartsWith(searchString) || e.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.ProjectsRepository.GetPageableBy(query));
        }
示例#10
0
        public IPageableList<Bug> GetAllBugs(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Bug>(pageInfo);

            query.Include(e => e.Status);
            query.Include(e => e.Severity);
            query.Include(e => e.Symptom);
            query.Include(e => e.Project);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Summary.ToLower().StartsWith(searchString) || e.Summary.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.BugsRepository.GetPageableBy(query);
            }
        }
        public IPageableList<Lecturer> GetLecturersPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Lecturer>(pageInfo);
            query.Include(l => l.SubjectLecturers).Include(e => e.User);

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                searchString = searchString.Replace(" ", string.Empty);

                //search by full name
                query.AddFilterClause(
                    e => (e.LastName + e.FirstName + e.MiddleName).Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var lecturers = repositoriesContainer.LecturerRepository.GetPageableBy(query);
                return lecturers;
            }
        }
示例#12
0
        public IPageableList <Lecturer> GetLecturersPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Lecturer>(pageInfo);

            query.Include(l => l.SubjectLecturers).Include(e => e.User);

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                searchString = searchString.Replace(" ", string.Empty);

                //search by full name
                query.AddFilterClause(
                    e => (e.LastName + e.FirstName + e.MiddleName).Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var lecturers = repositoriesContainer.LecturerRepository.GetPageableBy(query);
                return(lecturers);
            }
        }
        public IPageableList <UserMessages> GetUserMessagesPageable(int userId, bool?incoming = null,
                                                                    string searchString       = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <UserMessages>(pageInfo);

            if (!incoming.HasValue)
            {
                query.AddFilterClause(e => e.AuthorId == userId || e.Recipient.Id == userId);
            }
            else
            {
                if (incoming.Value)
                {
                    query.AddFilterClause(e => e.Recipient.Id == userId);
                }
                else
                {
                    query.AddFilterClause(e => e.AuthorId == userId);
                }
            }

            query.Include(e => e.Message.Attachments).Include(e => e.Recipient)
            .Include(e => e.Author.Lecturer).Include(e => e.Author.Student);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Message.Text.ToLower().StartsWith(searchString) ||
                    e.Message.Text.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            var userMessages = repositoriesContainer.RepositoryFor <UserMessages>().GetPageableBy(query);

            return(userMessages);
        }
示例#14
0
        public IPageableList<Test> GetPageableTests(int subjectId, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Test>(pageInfo, test => test.SubjectId == subjectId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(test => test.Description.ToLower().Contains(searchString) || 
                    test.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            query.Include(test => test.TestUnlocks);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.TestsRepository.GetPageableBy(query);
            }
        }
        public IPageableList<Question> GetPageableQuestions(int testId, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Question>(pageInfo, question => question.TestId == testId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(question => question.Description.ToLower().Contains(searchString) ||
                    question.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.QuestionsRepository.GetPageableBy(query);
            }
        }
示例#16
0
        public IPageableList<Subject> GetSubjectsLecturer(int lecturerId, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Subject>(pageInfo, e => e.SubjectLecturers.Any(x => x.LecturerId == lecturerId && !e.IsArchive));

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.SubjectRepository.GetPageableBy(query);
            }
        }
        public IPageableList<UserMessages> GetUserMessagesPageable(int userId, bool? incoming = null, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<UserMessages>(pageInfo);

            if (!incoming.HasValue)
            {
                query.AddFilterClause(e => e.AuthorId == userId || e.Recipient.Id == userId);
            }
            else
            {
                if (incoming.Value)
                {
                    query.AddFilterClause(e => e.Recipient.Id == userId);
                }
                else
                {
                    query.AddFilterClause(e => e.AuthorId == userId);
                }
            }

            query.Include(e => e.Message.Attachments).Include(e => e.Recipient)
              .Include(e => e.Author.Lecturer).Include(e => e.Author.Student);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Message.Text.ToLower().StartsWith(searchString) || e.Message.Text.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var userMessages = repositoriesContainer.RepositoryFor<UserMessages>().GetPageableBy(query);
                return userMessages;
            }
        }