/// <summary> /// Возвращает список журналов пользователя согласно параметрам фильтра /// </summary> /// <param name="filterAndSortModel"></param> /// <param name="userName"></param> /// <returns></returns> public async Task <List <ElGradebook> > GetElGradebooks(ElGradebooksFilterAndSortModel filterAndSortModel, string userName) { if (userName == null) { return(null); } var appUser = await GetAppUserAsync(userName); if (appUser == null) { return(null); } var query = GetElGradebooks(filterAndSortModel); var cmp = new ElGradebookTeacherComparer(); var st = new ElGradebookTeacher(); st.UserId = appUser.Id; query = query.Where(g => g.ElGradebookTeachers.Contains(st, cmp)); query = query.OrderByDescending(g => g.GroupName); var result = query.ToList(); return(result); }
/// <summary> /// Возвращает запрос на список журналов согласно параметрам фильтра /// </summary> /// <param name="filterAndSortModel"></param> /// <returns></returns> public IQueryable <ElGradebook> GetElGradebooks(ElGradebooksFilterAndSortModel filterAndSortModel) { IQueryable <ElGradebook> query = GetElGradebooks(); if (filterAndSortModel != null) { if (!string.IsNullOrWhiteSpace(filterAndSortModel.FilterEduYear)) { query = query.Where(g => g.EduYear == filterAndSortModel.FilterEduYear); } if (!string.IsNullOrWhiteSpace(filterAndSortModel.FilterFaculty)) { filterAndSortModel.FilterFaculty = filterAndSortModel.FilterFaculty.Trim(); query = query.Where(g => g.Faculty.ToLower().Contains(filterAndSortModel.FilterFaculty.ToLower())); } if (!string.IsNullOrWhiteSpace(filterAndSortModel.FilterDepartment)) { filterAndSortModel.FilterDepartment = filterAndSortModel.FilterDepartment.Trim(); query = query.Where(g => g.Department.ToLower().Contains(filterAndSortModel.FilterDepartment.ToLower())); } if (!string.IsNullOrWhiteSpace(filterAndSortModel.FilterDisciplineName)) { filterAndSortModel.FilterDisciplineName = filterAndSortModel.FilterDisciplineName.Trim(); query = query.Where(g => g.DisciplineName.ToLower().Contains(filterAndSortModel.FilterDisciplineName.ToLower())); } if (!string.IsNullOrWhiteSpace(filterAndSortModel.FilterGroupName)) { filterAndSortModel.FilterGroupName = filterAndSortModel.FilterGroupName.Trim(); query = query.Where(g => g.GroupName.ToLower().Contains(filterAndSortModel.FilterGroupName.ToLower())); } if (filterAndSortModel.FilterCourse > 0 && filterAndSortModel.FilterCourse <= 6) { query = query.Where(g => g.Course == filterAndSortModel.FilterCourse); } else { filterAndSortModel.FilterCourse = 0; } if (filterAndSortModel.FilterSemesterNumber > 0 && filterAndSortModel.FilterSemesterNumber <= 12) { query = query.Where(g => g.SemesterNumber == filterAndSortModel.FilterSemesterNumber); } else { filterAndSortModel.FilterSemesterNumber = 0; } } return(query); }