public IHttpActionResult GetDocuments([FromBody] DocumentConditionSearch conditionSearch) { try { return(Ok(_documentManagementService.GetListDocuments(conditionSearch))); } catch (System.Exception e) { return(InternalServerError(e)); } }
public DocumentResponseDto GetListDocuments(DocumentConditionSearch conditionSearch) { if (conditionSearch == null) { conditionSearch = new DocumentConditionSearch(); } var ListClassId = conditionSearch.ProgramId == 0 ? new List <int>() : GetClassIdByProgramId(conditionSearch.ProgramId); var ListStudentId = (conditionSearch.DocumentTypeId == 0 && conditionSearch.StatusId == 0) ? new List <int>() : GetStudentIdByDocument(conditionSearch.DocumentTypeId, conditionSearch.StatusId); // Lấy các thông tin dùng để phân trang var paging = new Paging(db.Students.Include(x => x.UserInfo).Include(d => d.Class) .Count(x => !x.DelFlag && //Search tên hoặc cmnd (conditionSearch.Keyword == null || (conditionSearch.Keyword != null && (x.UserInfo.FirstName.Contains(conditionSearch.Keyword) || x.UserInfo.LastName.Contains(conditionSearch.Keyword) || x.IdentificationNumber.Contains(conditionSearch.Keyword)))) //Search lớp && (conditionSearch.ClassId == 0 || (conditionSearch.ClassId != 0 && (x.ClassId == conditionSearch.ClassId))) //Search ngành && (conditionSearch.DepartmentId == 0 || (conditionSearch.DepartmentId != 0 && (x.Class.DepartmentId == conditionSearch.DepartmentId))) //search chương trình && (conditionSearch.ProgramId == 0 || (conditionSearch.ProgramId != 0 && ListClassId.Contains(x.ClassId))) //Search loại và trạng thái && (conditionSearch.DocumentTypeId == 0 || conditionSearch.StatusId == 0 || ((conditionSearch.DocumentTypeId != 0 || conditionSearch.StatusId != 0) && ListStudentId.Contains(x.Id))) ) , conditionSearch.CurrentPage, conditionSearch.PageSize); // Tìm kiếm và lấy dữ liệu theo trang var listOfstudent = db.Students.Include(x => x.UserInfo).Include(d => d.Class) .Where(x => !x.DelFlag && //Search tên hoặc cmnd (conditionSearch.Keyword == null || (conditionSearch.Keyword != null && (x.UserInfo.FirstName.Contains(conditionSearch.Keyword) || x.UserInfo.LastName.Contains(conditionSearch.Keyword) || x.IdentificationNumber.Contains(conditionSearch.Keyword)))) //Search lớp && (conditionSearch.ClassId == 0 || (conditionSearch.ClassId != 0 && (x.ClassId == conditionSearch.ClassId))) //Search ngành && (conditionSearch.DepartmentId == 0 || (conditionSearch.DepartmentId != 0 && (x.Class.DepartmentId == conditionSearch.DepartmentId))) //search chương trình && (conditionSearch.ProgramId == 0 || (conditionSearch.ProgramId != 0 && ListClassId.Contains(x.ClassId))) //Search loại và trạng thái && (conditionSearch.DocumentTypeId == 0 || conditionSearch.StatusId == 0 || ((conditionSearch.DocumentTypeId != 0 || conditionSearch.StatusId != 0) && ListStudentId.Contains(x.Id)))).ToList() .OrderBy(x => x.Id) .Skip((paging.CurrentPage - 1) * paging.PageSize) .Take(paging.PageSize) .Select(x => new StudentForDocumentDto(x, GetListDocumentByStudentId(x.Id))) .ToList(); return(new DocumentResponseDto(listOfstudent ?? null, GetListClasses(), GetListDepartments(), GetListPrograms(), GetListDocumentTypes(), GetListStatuses(), paging)); }