public async Task <IActionResult> GetAll([FromQuery] HuongDanDoAnParams userParams) { var result = await _repo.GetAll(userParams); var resultToReturn = _mapper.Map <IEnumerable <HuongDanDoAnForListDto> >(result); Response.AddPagination(result.CurrentPage, result.PageSize, result.TotalCount, result.TotalPages); return(Ok(resultToReturn)); }
public async Task <PagedList <HuongDanDoAn> > GetAll(HuongDanDoAnParams userParams) { var result = _context.DanhSachHuongDanDoAn.Include(x => x.GiangVien).Include(x => x.DoAn).AsQueryable(); var sortField = userParams.SortField; var sortOrder = userParams.SortOrder; var maGiangVien = userParams.MaGiangVien; var maDoAn = userParams.MaDoAn; var keyword = userParams.Keyword; var thoiGianTaoBatDau = userParams.ThoiGianTaoBatDau; var thoiGianTaoKetThuc = userParams.ThoiGianTaoKetThuc; var thoiGianCapNhatBatDau = userParams.ThoiGianCapNhatBatDau; var thoiGianCapNhatKetThuc = userParams.ThoiGianCapNhatKetThuc; var trangThai = userParams.TrangThai; if (!string.IsNullOrEmpty(keyword)) { result = result.Where(x => x.NhanXet.ToLower().Contains(keyword.ToLower())); } if (!string.IsNullOrEmpty(maGiangVien)) { result = result.Where(x => x.MaGiangVien.ToLower().Contains(keyword.ToLower())); } if (maDoAn > -1) { result = result.Where(x => x.MaDoAn == maDoAn); } if (thoiGianTaoBatDau.GetHashCode() != 0 && thoiGianTaoKetThuc.GetHashCode() != 0) { result = result.Where(x => x.ThoiGianTao >= thoiGianTaoBatDau && x.ThoiGianTao <= thoiGianTaoKetThuc); } if (thoiGianCapNhatBatDau.GetHashCode() != 0 && thoiGianCapNhatKetThuc.GetHashCode() != 0) { result = result.Where(x => x.ThoiGianCapNhat >= thoiGianCapNhatBatDau && x.ThoiGianCapNhat <= thoiGianCapNhatKetThuc); } if (trangThai > -1) { result = result.Where(x => x.TrangThai == trangThai); } if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortOrder)) { switch (sortField) { case "MaGiangVien": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaGiangVien); } else { result = result.OrderByDescending(x => x.MaGiangVien); } break; case "MaDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaDoAn); } else { result = result.OrderByDescending(x => x.MaDoAn); } break; /* //case "Diem": * // if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) * { * result = result.OrderBy(x => x.Diem); * } * else * { * result = result.OrderByDescending(x => x.Diem); * } * break;*/ case "NhanXet": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.NhanXet); } else { result = result.OrderByDescending(x => x.NhanXet); } break; case "ThoiGianTao": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.ThoiGianTao); } else { result = result.OrderByDescending(x => x.ThoiGianTao); } break; case "ThoiGianCapNhat": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.ThoiGianCapNhat); } else { result = result.OrderByDescending(x => x.ThoiGianCapNhat); } break; case "TrangThai": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.TrangThai); } else { result = result.OrderByDescending(x => x.TrangThai); } break; default: result = result.OrderByDescending(x => x.ThoiGianTao); break; } } _total = result.Count(); var totalPages = (_total / userParams.PageSize) + 1; var hasNextPage = userParams.PageNumber < totalPages ? true : false; _hasNextPage = hasNextPage; return(await PagedList <HuongDanDoAn> .CreateAsync(result, userParams.PageNumber, userParams.PageSize)); }