public PagingList<UserDto> GetUsers(GetUsersInput input)
{
var query = _userRepository.Table;
if (!string.IsNullOrWhiteSpace(input.NameKeyWords))
query = query.Where(m => m.UserName.Contains(input.NameKeyWords) || m.NickName.Contains(input.NameKeyWords) || m.TrueName.Contains(input.NameKeyWords));
if (!string.IsNullOrWhiteSpace(input.EmailAddress))
query = query.Where(n => n.AccountEmail.Contains(input.EmailAddress));
if (input.IsActive.HasValue)
query = query.Where(n => n.IsActived == input.IsActive.Value);
var source = query.OrderBy(n => n.Id)
.Skip((input.PageIndex - 1) * input.PageSize)
.Take(input.PageSize)
.MapTo<List<UserDto>>();
var result = new PagingList<UserDto>(source, input.PageIndex, input.PageSize,query.LongCount());
return result;
}