public async Task <IActionResult> GetAll([FromQuery] DoAnParams userParams) { try { var result = await _repo.GetAll(userParams); var resultToReturn = _mapper.Map <IEnumerable <DoAnForListDto> >(result); Response.AddPagination(result.CurrentPage, result.PageSize, result.TotalCount, result.TotalPages); return(StatusCode(200, new SuccessResponseDto { Message = "Lấy danh sách tất cả các " + _entityName + " thành công!", Result = new SuccessResponseResultWithMultipleDataDto { Data = resultToReturn, TotalItems = _repo.GetTotalItems(), TotalPages = _repo.GetTotalPages(), PageNumber = userParams.PageNumber, PageSize = userParams.PageSize, StatusStatistics = _repo.GetStatusStatistics(userParams) } })); } catch (Exception e) { return(StatusCode(500, new FailedResponseDto { Message = "Lấy danh sách tất cả các " + _entityName + " thất bại!", Result = new FailedResponseResultDto { Errors = e } })); } }
public Object GetStatusStatistics(DoAnParams userParams) { var result = _context.DanhSachDoAn.Include(x => x.HuongNghienCuu) .Include(x => x.PhanBienDoAn) .Include(x => x.HuongDanDoAn) .Include(x => x.DiemDoAn) .Include(x => x.SinhVien).AsQueryable(); var sortField = userParams.SortField; var sortOrder = userParams.SortOrder; var keyword = userParams.Keyword; var thoiGianTaoBatDau = userParams.ThoiGianTaoBatDau; var thoiGianTaoKetThuc = userParams.ThoiGianTaoKetThuc; var thoiGianCapNhatBatDau = userParams.ThoiGianCapNhatBatDau; var thoiGianCapNhatKetThuc = userParams.ThoiGianCapNhatKetThuc; var trangThai = userParams.TrangThai; var maHuongNghienCuu = userParams.MaHuongNghienCuu; var thoiGianBaoCaoBatDau = userParams.ThoiGianBaoCaoBatDau; var thoiGianBaoCaoKetThuc = userParams.ThoiGianBaoCaoKetThuc; if (!string.IsNullOrEmpty(keyword)) { result = result.Where(x => x.TenDoAn.ToLower().Contains(keyword.ToLower()) || x.LienKetTaiDoAn.ToLower().Contains(keyword.ToLower()) || x.MaDoAn.ToString() == keyword); } 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 (maHuongNghienCuu > -1) { result = result.Where(x => x.MaHuongNghienCuu == maHuongNghienCuu); } if (trangThai == -1 || trangThai == 1) { result = result.Where(x => x.TrangThai == trangThai); } if (thoiGianBaoCaoBatDau.GetHashCode() != 0 && thoiGianBaoCaoKetThuc.GetHashCode() != 0) { result = result.Where(x => x.ThoiGianBaoCao >= thoiGianBaoCaoBatDau && x.ThoiGianBaoCao <= thoiGianBaoCaoKetThuc); } if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortOrder)) { switch (sortField) { case "MaDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaDoAn); } else { result = result.OrderByDescending(x => x.MaDoAn); } break; case "TenDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.TenDoAn); } else { result = result.OrderByDescending(x => x.TenDoAn); } break; case "MoTa": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MoTa); } else { result = result.OrderByDescending(x => x.MoTa); } break; case "MaHuongNghienCuu": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaHuongNghienCuu); } else { result = result.OrderByDescending(x => x.MaDoAn); } break; case "LienKetTaiDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.LienKetTaiDoAn); } else { result = result.OrderByDescending(x => x.LienKetTaiDoAn); } break; case "ThoiGianBaoCao": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.ThoiGianBaoCao); } else { result = result.OrderByDescending(x => x.ThoiGianBaoCao); } break; case "MaHocKy": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaHocKy); } else { result = result.OrderByDescending(x => x.MaHocKy); } break; case "DiemTongKet": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.DiemTongKet); } else { result = result.OrderByDescending(x => x.DiemTongKet); } break; case "NhanXetChung": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.NhanXetChung); } else { result = result.OrderByDescending(x => x.NhanXetChung); } break; case "DiaDiemBaoCao": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.DiaDiemBaoCao); } else { result = result.OrderByDescending(x => x.DiaDiemBaoCao); } 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; } } var all = result.Count(); var active = result.Count(x => x.TrangThai == 1); var inactive = result.Count(x => x.TrangThai == -1); return(new { All = all, Active = active, Inactive = inactive }); }
public async Task <PagedList <DoAn> > GetAll(DoAnParams userParams) { var result = _context.DanhSachDoAn .Include(x => x.HuongNghienCuu) .Include(x => x.HuongDanDoAn) .Include(x => x.PhanBienDoAn) .Include(x => x.ThanhVienHDBV) .AsQueryable(); var sortField = userParams.SortField; var sortOrder = userParams.SortOrder; var keyword = userParams.Keyword; var thoiGianTaoBatDau = userParams.ThoiGianTaoBatDau; var thoiGianTaoKetThuc = userParams.ThoiGianTaoKetThuc; var thoiGianCapNhatBatDau = userParams.ThoiGianCapNhatBatDau; var thoiGianCapNhatKetThuc = userParams.ThoiGianCapNhatKetThuc; var trangThai = userParams.TrangThai; var maHuongNghienCuu = userParams.MaHuongNghienCuu; var thoiGianBaoCaoBatDau = userParams.ThoiGianBaoCaoBatDau; var thoiGianBaoCaoKetThuc = userParams.ThoiGianBaoCaoKetThuc; if (!string.IsNullOrEmpty(keyword)) { result = result.Where(x => x.TenDoAn.ToLower().Contains(keyword.ToLower()) || x.LienKetTaiDoAn.ToLower().Contains(keyword.ToLower()) || x.MaDoAn.ToString() == keyword); } 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 (maHuongNghienCuu > -1) { result = result.Where(x => x.MaHuongNghienCuu == maHuongNghienCuu); } if (trangThai == -1 || trangThai == 1) { result = result.Where(x => x.TrangThai == trangThai); } if (thoiGianBaoCaoBatDau.GetHashCode() != 0 && thoiGianBaoCaoKetThuc.GetHashCode() != 0) { result = result.Where(x => x.ThoiGianBaoCao >= thoiGianBaoCaoBatDau && x.ThoiGianBaoCao <= thoiGianBaoCaoKetThuc); } if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortOrder)) { switch (sortField) { case "MaDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaDoAn); } else { result = result.OrderByDescending(x => x.MaDoAn); } break; case "TenDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.TenDoAn); } else { result = result.OrderByDescending(x => x.TenDoAn); } break; case "MoTa": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MoTa); } else { result = result.OrderByDescending(x => x.MoTa); } break; case "MaHuongNghienCuu": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaHuongNghienCuu); } else { result = result.OrderByDescending(x => x.MaDoAn); } break; case "LienKetTaiDoAn": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.LienKetTaiDoAn); } else { result = result.OrderByDescending(x => x.LienKetTaiDoAn); } break; case "ThoiGianBaoCao": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.ThoiGianBaoCao); } else { result = result.OrderByDescending(x => x.ThoiGianBaoCao); } break; case "MaHocKy": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaHocKy); } else { result = result.OrderByDescending(x => x.MaHocKy); } break; case "DiemTongKet": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.DiemTongKet); } else { result = result.OrderByDescending(x => x.DiemTongKet); } break; case "NhanXetChung": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.NhanXetChung); } else { result = result.OrderByDescending(x => x.NhanXetChung); } break; case "DiaDiemBaoCao": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.DiaDiemBaoCao); } else { result = result.OrderByDescending(x => x.DiaDiemBaoCao); } 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; } } _totalItems = result.Count(); _totalPages = (int)Math.Ceiling((double)_totalItems / (double)userParams.PageSize); return(await PagedList <DoAn> .CreateAsync(result, userParams.PageNumber, userParams.PageSize)); }