public ActionResult List(UsersQueryInput queryInput)
        {
            queryInput.PageSize = 15;

            if (string.IsNullOrWhiteSpace(queryInput.Sort) ||
                (queryInput.Sort.ToLower() != "a-z" &&
                 queryInput.Sort.ToLower() != "z-a"))
            {
                queryInput.Sort = "a-z";
            }

            queryInput.Query = queryInput.Query ?? string.Empty;
            queryInput.Field = queryInput.Field ?? string.Empty;

            dynamic viewModel = new ExpandoObject();

            viewModel.Users = _userViewModelQuery.BuildUserList(queryInput);
            viewModel.Query = new
            {
                queryInput.Page,
                queryInput.PageSize,
                queryInput.Sort,
                queryInput.Query,
                queryInput.Field
            };
            viewModel.FieldSelectList = new[]
            {
                new
                {
                    Text     = "Name",
                    Value    = "name",
                    Selected = queryInput.Field.ToLower() == "name"
                },
                new
                {
                    Text     = "Description",
                    Value    = "description",
                    Selected = queryInput.Field.ToLower() == "description"
                }
            };

            return(RestfulResult(
                       viewModel,
                       "users",
                       "list"));
        }