/// <summary> /// Возвращает отфильтрованный запрос на выборку всех заявлений о приёме /// </summary> /// <param name="filterAndSortModel"></param> /// <returns></returns> public IQueryable <ApplicationForAdmission> GetApplicationForAdmissions(ApplicationForAdmissionsFilterAndSortModel filterAndSortModel) { var applicationForAdmissions = GetApplicationForAdmissions(); if (!string.IsNullOrWhiteSpace(filterAndSortModel.FilterLastNameFragment)) { applicationForAdmissions = applicationForAdmissions.Where(a => a.Abiturient.AppUser.LastName.Contains(filterAndSortModel.FilterLastNameFragment)); } if (filterAndSortModel.EducationDocumentFileDataTypeId != 0) { applicationForAdmissions = applicationForAdmissions.Where(a => a.Abiturient.AppUser.UserDocuments.Any(ud => ud.FileDataTypeId == filterAndSortModel.EducationDocumentFileDataTypeId)); } if (filterAndSortModel.EduFormId != 0) { applicationForAdmissions = applicationForAdmissions.Where(a => a.EduFormId == filterAndSortModel.EduFormId); } if (filterAndSortModel.EduProfileId != 0) { applicationForAdmissions = applicationForAdmissions.Where(a => a.EduProfileId == filterAndSortModel.EduProfileId); } if (filterAndSortModel.QuotaTypeId != 0) { applicationForAdmissions = applicationForAdmissions.Where(a => a.QuotaTypeId == filterAndSortModel.QuotaTypeId); } if (filterAndSortModel.PriorityId != 0) { applicationForAdmissions = applicationForAdmissions.Where(a => a.PriorityId == filterAndSortModel.PriorityId); } if (filterAndSortModel.RowStatusId != 0) { applicationForAdmissions = applicationForAdmissions.Where(a => a.RowStatusId == filterAndSortModel.RowStatusId); } applicationForAdmissions = applicationForAdmissions.OrderByDescending(q => q.FileModel.UploadDate); return(applicationForAdmissions); }
public async Task <IActionResult> Index(ApplicationForAdmissionsFilterAndSortModel filterAndSortModel) { var applicationForAdmissions = _applicationForAdmissionRepository.GetApplicationForAdmissions(filterAndSortModel); ViewBag.FilterAndSortModel = filterAndSortModel; ViewBag.EduForms = _selectListRepository.GetSelectListEduForms(filterAndSortModel.EduFormId); ViewBag.EducationDocuments = _selectListRepository.GetSelectListEducationDocumentsForAbiturients(filterAndSortModel.EducationDocumentFileDataTypeId); ViewBag.EduProfiles = _selectListRepository.GetSelectListEduProfileFullNames(filterAndSortModel.EduProfileId); ViewBag.QuotaTypes = _selectListRepository.GetSelectListQuotaTypes(filterAndSortModel.QuotaTypeId); ViewBag.Priorities = _selectListRepository.GetSelectListPriorities(filterAndSortModel.PriorityId); ViewBag.RowStatuses = _selectListRepository.GetSelectListRowStatuses(filterAndSortModel.RowStatusId); if (filterAndSortModel.IsRequestDataImmediately) { return(View(await applicationForAdmissions.ToListAsync())); } else { return(View(new List <ApplicationForAdmission>())); } }