public PagingOutputViewModel <UserBasicInfoViewModel> GetAll(PagingInputViewModel param)
        {
            var output = new PagingOutputViewModel <UserBasicInfoViewModel>
            {
                ItemsPerPage = param.ItemsPerPage
            };

            var repository = _unitOfWork.UserRepository.All();

            if (!string.IsNullOrEmpty(param.Keyword))
            {
                repository = repository
                             .Where(user => user.FirstName.Contains(param.Keyword) ||
                                    user.LastName.Contains(param.Keyword) ||
                                    user.Email.Contains(param.Keyword) ||
                                    user.PhoneNumber.Contains(param.Keyword) ||
                                    user.UserRoles.Any(role => role.Role.Name.Contains(param.Keyword)));
            }

            var data = repository.Select(user => new UserBasicInfoViewModel
            {
                UserId       = user.Id,
                FirstName    = user.FirstName,
                LastName     = user.LastName,
                Email        = user.Email,
                Phone        = user.PhoneNumber,
                Roles        = user.UserRoles.Select(ur => ur.Role.Name).ToList(),
                IsActive     = user.LockoutEnd == null || user.LockoutEnd < DateTimeOffset.Now,
                LockedOutEnd = user.LockoutEnd < DateTimeOffset.Now ? null : user.LockoutEnd
            });

            if (!string.IsNullOrEmpty(param.OrderBy))
            {
                data = data.OrderByProperty(param.OrderBy, param.IsDesc);
            }

            data = data.Skip((param.PageNumber - 1) * param.ItemsPerPage).Take(param.ItemsPerPage);

            // Enumerate the data
            output.TotalItems = repository.Count();
            output.Data       = data.ToList();

            return(output);
        }
示例#2
0
        public PagingOutputViewModel <CustomerInfoViewModel> GetAllCustomer(PagingInputViewModel param)
        {
            var output = new PagingOutputViewModel <CustomerInfoViewModel>
            {
                ItemsPerPage = param.ItemsPerPage
            };

            var repository = _unitOfWork.CustomerRepository.All();

            if (!string.IsNullOrEmpty(param.Keyword))
            {
                repository = repository
                             .Where(cus => cus.FullName.Contains(param.Keyword) ||
                                    cus.CustomerCode.Contains(param.Keyword) ||
                                    cus.Phone.Contains(param.Keyword));
            }

            var data = repository.Select(customer => new CustomerInfoViewModel
            {
                CustomerId         = customer.CustomerId,
                FullName           = customer.FullName,
                CustomerCode       = customer.CustomerCode,
                Email              = customer.Email,
                PhoneNumber        = customer.Phone,
                Address            = customer.Address,
                SelectedReceiverId = customer.SelectedReceiverId
            });

            if (!string.IsNullOrEmpty(param.OrderBy))
            {
                data = data.OrderByProperty(param.OrderBy, param.IsDesc);
            }

            data = data.Skip((param.PageNumber - 1) * param.ItemsPerPage).Take(param.ItemsPerPage);

            // Enumerate the data
            output.TotalItems = repository.Count();
            output.Data       = data.ToList();

            return(output);
        }
示例#3
0
        public IActionResult GetAllUser(PagingInputViewModel input)
        {
            var result = _userService.GetAll(input);

            return(Ok(result));
        }
 public IActionResult GetAll(PagingInputViewModel page)
 {
     return(Ok(_customerService.GetAllCustomer(page)));
 }