public async Task <IActionResult> GetAll([FromQuery] NhanVienParams userParams) { try { var result = await _repo.GetAll(userParams); var resultToReturn = _mapper.Map <IEnumerable <NhanVienForListDto> >(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 async Task <PagedList <NhanVien> > GetAll(NhanVienParams userParams) { var result = _context.DanhSachNhanVien.AsQueryable(); var sortField = userParams.SortField; var sortOrder = userParams.SortOrder; var maNhanVien = userParams.MaNhanVien; var tenNhanVien = userParams.TenNhanVien; var gioiTinh = userParams.GioiTinh; var ngaySinhBatDau = userParams.NgaySinhBatDau; var ngaySinhKetThuc = userParams.NgaySinhKetThuc; var chucVu = userParams.ChucVu; var soDienThoai = userParams.SoDienThoai; var soCMND = userParams.SoCMND; var luongBatDau = userParams.LuongBatDau; var luongKetThuc = userParams.LuongKetThuc; var ghiChu = userParams.GhiChu; var diaChi = userParams.DiaChi; var thoiGianTaoBatDau = userParams.ThoiGianTaoBatDau; var thoiGianTaoKetThuc = userParams.ThoiGianTaoKetThuc; var thoiGianCapNhatBatDau = userParams.ThoiGianCapNhatBatDau; var thoiGianCapNhatKetThuc = userParams.ThoiGianCapNhatKetThuc; var trangThai = userParams.TrangThai; var daXoa = userParams.DaXoa; // NhanVien if (!string.IsNullOrEmpty(maNhanVien)) { result = result.Where(x => x.MaNhanVien.ToLower().Contains(maNhanVien.ToLower())); } if (!string.IsNullOrEmpty(tenNhanVien)) { result = result.Where(x => x.TenNhanVien.ToLower().Contains(tenNhanVien.ToLower())); } if (!string.IsNullOrEmpty(gioiTinh)) { result = result.Where(x => x.GioiTinh.ToLower().Contains(gioiTinh.ToLower())); } if (ngaySinhBatDau.GetHashCode() != 0 && ngaySinhKetThuc.GetHashCode() != 0) { result = result.Where(x => x.NgaySinh >= ngaySinhBatDau && x.NgaySinh <= ngaySinhKetThuc); } if (!string.IsNullOrEmpty(chucVu)) { result = result.Where(x => x.ChucVu.ToLower().Contains(chucVu.ToLower())); } if (!string.IsNullOrEmpty(soDienThoai)) { result = result.Where(x => x.SoDienThoai.ToLower().Contains(soDienThoai.ToLower())); } if (!string.IsNullOrEmpty(soCMND)) { result = result.Where(x => x.SoCMND.ToLower().Contains(soCMND.ToLower())); } if (luongBatDau > 0 && luongKetThuc > 0) { result = result.Where(x => x.Luong >= luongBatDau && x.Luong <= luongKetThuc); } if (!string.IsNullOrEmpty(ghiChu)) { result = result.Where(x => x.GhiChu.ToLower().Contains(ghiChu.ToLower())); } if (!string.IsNullOrEmpty(diaChi)) { result = result.Where(x => x.DiaChi.ToLower().Contains(diaChi.ToLower())); } // Base 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 || trangThai == 1) { result = result.Where(x => x.TrangThai == trangThai); } if (daXoa == 1 || daXoa == 0) { result = result.Where(x => x.DaXoa == daXoa); } if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortOrder)) { switch (sortField) { case "MaNhanVien": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaNhanVien); } else { result = result.OrderByDescending(x => x.MaNhanVien); } break; case "TenNhanVien": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.TenNhanVien); } else { result = result.OrderByDescending(x => x.TenNhanVien); } break; case "GioiTinh": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.GioiTinh); } else { result = result.OrderByDescending(x => x.GioiTinh); } break; case "DiaChi": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.DiaChi); } else { result = result.OrderByDescending(x => x.DiaChi); } break; case "NgaySinh": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.NgaySinh); } else { result = result.OrderByDescending(x => x.NgaySinh); } break; case "ChucVu": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.ChucVu); } else { result = result.OrderByDescending(x => x.ChucVu); } break; case "SoDienThoai": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.SoDienThoai); } else { result = result.OrderByDescending(x => x.SoDienThoai); } break; case "SoCMND": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.SoCMND); } else { result = result.OrderByDescending(x => x.SoCMND); } break; case "Luong": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.Luong); } else { result = result.OrderByDescending(x => x.Luong); } 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 <NhanVien> .CreateAsync(result, userParams.PageNumber, userParams.PageSize)); }
public object GetStatusStatistics(NhanVienParams userParams) { var result = _context.DanhSachNhanVien.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 ngaySinhBatDau = userParams.NgaySinhBatDau; var ngaySinhKetThuc = userParams.NgaySinhKetThuc; var chucVu = userParams.ChucVu; if (!string.IsNullOrEmpty(keyword)) { result = result.Where(x => x.TenNhanVien.ToLower().Contains(keyword.ToLower()) || x.MaNhanVien.ToLower().Contains(keyword.ToLower()) || x.SoDienThoai.ToLower().Contains(keyword.ToLower()) || x.GioiTinh.ToLower().Contains(keyword.ToLower())); } if (!string.IsNullOrEmpty(chucVu)) { result = result.Where(x => x.ChucVu.ToLower().Contains(chucVu.ToLower())); } 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 (ngaySinhBatDau.GetHashCode() != 0 && ngaySinhKetThuc.GetHashCode() != 0) { result = result.Where(x => x.NgaySinh >= ngaySinhBatDau && x.NgaySinh <= ngaySinhKetThuc); } if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortOrder)) { switch (sortField) { case "MaNhanVien": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.MaNhanVien); } else { result = result.OrderByDescending(x => x.MaNhanVien); } break; case "TenNhanVien": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.TenNhanVien); } else { result = result.OrderByDescending(x => x.TenNhanVien); } break; case "GioiTinh": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.GioiTinh); } else { result = result.OrderByDescending(x => x.GioiTinh); } break; case "NgaySinh": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.NgaySinh); } else { result = result.OrderByDescending(x => x.NgaySinh); } break; case "ChucVu": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.ChucVu); } else { result = result.OrderByDescending(x => x.ChucVu); } break; case "SoDienThoai": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.SoDienThoai); } else { result = result.OrderByDescending(x => x.SoDienThoai); } break; case "SoCMND": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.SoCMND); } else { result = result.OrderByDescending(x => x.SoCMND); } break; case "Luong": if (string.Equals(sortOrder, "ASC", StringComparison.OrdinalIgnoreCase)) { result = result.OrderBy(x => x.Luong); } else { result = result.OrderByDescending(x => x.Luong); } 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.DaXoa == 0); var inactive = result.Count(x => x.DaXoa == 1); return(new { All = all, Active = active, Inactive = inactive }); }