public ActionResult <List <User> > GetAll(int pageSize, int pageNumber, UsersSortType sortType) { var currentUser = HttpContext.User; if (currentUser.HasClaim(claim => claim.Type == "Role")) { var role = currentUser.Claims.FirstOrDefault(c => c.Type == "Role").Value; if (role == "Admin") { // as no tracking for performance improvement when you do not need to track changes var usersQuery = _db.Users.AsNoTracking(); if (sortType == UsersSortType.FirstNameAscendent) { usersQuery = usersQuery.OrderBy(u => u.FirstName); } else if (sortType == UsersSortType.FirstNameDescendent) { usersQuery = usersQuery.OrderByDescending(u => u.FirstName); } else if (sortType == UsersSortType.LastNameAscendent) { usersQuery = usersQuery.OrderBy(u => u.LastName); } else if (sortType == UsersSortType.LastNameDescendent) { usersQuery = usersQuery.OrderByDescending(u => u.LastName); } else { usersQuery = usersQuery.OrderBy(u => u.FirstName); } usersQuery = usersQuery .Skip((pageNumber - 1) * pageSize) .Take(pageSize); var users = usersQuery.ToList(); return(users); } else { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } } else { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } }
public ActionResult <List <User> > GetAllUsers(int pageSize, int pageNum, UsersSortType sortType) { var currentUser = HttpContext.User; if (currentUser.HasClaim(claim => claim.Type == "Role")) { var role = currentUser.Claims.FirstOrDefault(c => c.Type == "Role").Value; if (role == "Admin") { var usersQuery = _db.Users.AsNoTracking(); if (sortType == UsersSortType.FirstNameAsc) { usersQuery = usersQuery.OrderBy(u => u.FirstName); } else if (sortType == UsersSortType.FirstNameDesc) { usersQuery = usersQuery.OrderByDescending(u => u.FirstName); } else if (sortType == UsersSortType.LastNameAsc) { usersQuery = usersQuery.OrderBy(u => u.LastName); } else if (sortType == UsersSortType.LastNameDesc) { usersQuery = usersQuery.OrderByDescending(u => u.LastName); } else { usersQuery = usersQuery.OrderBy(u => u.FirstName); } usersQuery = usersQuery .Skip((pageNum - 1) * pageSize) .Take(pageSize); var users = usersQuery.ToList(); return(users); } else { return(BadRequest(new { status = false, message = "user not authorised" })); } } else { return(BadRequest(new { status = false, message = "bad request" })); } }
public async Task <ActionResult <List <User> > > AllUsers(int pageSize, int pageNumber, UsersSortType sortType) { var currentUser = HttpContext.User; if (currentUser.HasClaim(claims => claims.Type == "Role")) { var role = currentUser.Claims.FirstOrDefault(c => c.Type == "Role").Value; if (role == "Admin") { var usersQuery = _db.Users.AsNoTracking().AsQueryable(); if (sortType == UsersSortType.FirstNameAscendent) { usersQuery = usersQuery.OrderBy(u => u.UserName); } else if (sortType == UsersSortType.FirstNameDescendent) { usersQuery = usersQuery.OrderBy(u => u.UserName); } else if (sortType == UsersSortType.LastNameAscendent) { usersQuery = usersQuery.OrderBy(u => u.UserName); } else if (sortType == UsersSortType.LastNameDescendent) { usersQuery = usersQuery.OrderBy(u => u.UserName); } else { usersQuery = usersQuery.OrderBy(u => u.UserName); } usersQuery = usersQuery .Skip((pageNumber - 1) * pageSize) .Take(pageSize); var users = usersQuery.ToList(); return(users); } } return(new JsonResult(new { status = "false" })); }