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));
            }
        }
示例#2
0
        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" }));
            }
        }
示例#3
0
        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" }));
        }