Beispiel #1
0
        public async Task <SearchUserViewModel> GetUsersAsync(SearchUserFormModel searchUserForm)
        {
            var queryable = _context.Users.AsQueryable();

            if (!string.IsNullOrEmpty(searchUserForm.FirstName))
            {
                queryable = queryable.Where(q => q.FirstName.Contains(searchUserForm.FirstName));
            }

            if (!string.IsNullOrEmpty(searchUserForm.LastName))
            {
                queryable = queryable.Where(q => q.LastName.Contains(searchUserForm.LastName));
            }

            if (!string.IsNullOrEmpty(searchUserForm.Username))
            {
                queryable = queryable.Where(q => q.Username.Contains(searchUserForm.Username));
            }

            if (searchUserForm.IsActive.HasValue)
            {
                queryable = queryable.Where(q => q.IsActive == searchUserForm.IsActive.Value);
            }
            if (searchUserForm.SortModel != null)
            {
                switch (searchUserForm.SortModel.Col + "|" + searchUserForm.SortModel.Sort)
                {
                case "firstname|asc":
                    queryable = queryable.OrderBy(x => x.FirstName);
                    break;

                case "firstname|desc":
                    queryable = queryable.OrderByDescending(x => x.FirstName);
                    break;

                case "lastname|asc":
                    queryable = queryable.OrderBy(x => x.LastName);
                    break;

                case "lastname|desc":
                    queryable = queryable.OrderByDescending(x => x.LastName);
                    break;

                case "username|asc":
                    queryable = queryable.OrderBy(x => x.Username);
                    break;

                case "username|desc":
                    queryable = queryable.OrderByDescending(x => x.Username);
                    break;

                default:
                    queryable = queryable.OrderBy(x => x.CreationDate);
                    break;
                }
            }
            else
            {
                queryable = queryable.OrderBy(x => x.CreationDate);
            }
            var resp = await queryable.Skip((searchUserForm.PageIndex - 1) *searchUserForm.PageSize).Take(searchUserForm.PageSize).ToListAsync();

            var count = await queryable.CountAsync();

            var searchViewModel = new SearchUserViewModel();

            searchViewModel.searchUserViewModel = resp.Select(respUser => new UserViewModel()
            {
                Id                      = respUser.Id,
                FirstName               = respUser.FirstName,
                LastName                = respUser.LastName,
                Username                = respUser.Username,
                Description             = respUser.Description,
                Location                = respUser.Location,
                PhoneNumber             = respUser.PhoneNumber,
                IsActive                = respUser.IsActive,
                IsPresident             = respUser.IsPresident,
                GroupAuthId             = respUser.GroupAuthId,
                OrganizationId          = respUser.OrganizationId,
                UserConfigurationId     = respUser.UserConfigurationId,
                LastLockoutDate         = respUser.LastLockoutDate,
                LastPasswordChangedDate = respUser.LastPasswordChangedDate,
                CreationDate            = respUser.CreationDate,
                LastVisit               = respUser.LastVisit,
                LastLoggedIn            = respUser.LastLoggedIn,
            }).ToList();
            searchViewModel.PageIndex  = searchUserForm.PageIndex;
            searchViewModel.PageSize   = searchUserForm.PageSize;
            searchViewModel.TotalCount = count;
            return(searchViewModel);
        }
Beispiel #2
0
 public async Task <IActionResult> GetUsers([FromBody] SearchUserFormModel searchUserForm)
 {
     return(Ok(GetRequestResult(await _usersService.GetUsersAsync(searchUserForm))));
 }