Exemplo n.º 1
0
        public (IEnumerable <UserViewModel>, int) UsersFilter(UserSeachModel search)
        {
            var query = from user in Context.Users
                        join userRole in Context.UserRoles
                        on user.Id equals userRole.UserId
                        join role in Context.Roles
                        on userRole.RoleId equals role.Id
                        where ((String.IsNullOrEmpty(search.keyWord) || user.UserName.Contains(search.keyWord)) &&
                               (search.UserIds.Count == 0 || search.UserIds.Contains(user.Id)) &&
                               (search.Roles.Count == 0 || search.Roles.Contains(role.Name)))
                        select new UserViewModel
            {
                Id          = user.Id,
                UserName    = user.UserName,
                Email       = user.Email,
                JobTitle    = user.JobTitle,
                CostPerHour = user.CostPerHour,
                LastLogged  = user.LastLogged.Value,
                Photo       = user.Photo,
                Role        = role.Name,
            };
            var count = query.Count();
            var data  = query.OrderBy(c => c.Id).Skip((search.pageNumber - 1) * search.pageSize).Take(search.pageSize);

            return(data, count);
        }
Exemplo n.º 2
0
        public IResponse GetUsers(UserSeachModel search)
        {
            var(result, totalRows)  = UOW.Users.UsersFilter(search);
            response.pagesTotalRows = totalRows;
            float all_pages = (float)totalRows / search.pageSize;

            response.pagesTotalNumber = (int)Math.Ceiling(all_pages);
            response.pageSize         = search.pageSize;
            response.pageNumber       = search.pageNumber;
            response.data             = result;
            return(response);
        }
        public ActionResult UserFilter([FromQuery] UserSeachModel search)
        {
            var response = service.GetUsers(search);

            return(Ok(response));
        }