mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 22:14:26 +01:00
Add user email search and sort (#2305)
* Add user sort by email * Add user search by email
This commit is contained in:
@@ -19,13 +19,37 @@ namespace BTCPayServer.Controllers
|
||||
public partial class ServerController
|
||||
{
|
||||
[Route("server/users")]
|
||||
public async Task<IActionResult> ListUsers(UsersViewModel model)
|
||||
public async Task<IActionResult> ListUsers(
|
||||
UsersViewModel model,
|
||||
string sortOrder = null
|
||||
)
|
||||
{
|
||||
model = this.ParseListQuery(model ?? new UsersViewModel());
|
||||
var users = _UserManager.Users;
|
||||
model.Total = await users.CountAsync();
|
||||
model.Users = await users
|
||||
.Skip(model.Skip).Take(model.Count)
|
||||
|
||||
var usersQuery = _UserManager.Users;
|
||||
if (!string.IsNullOrWhiteSpace(model.SearchTerm))
|
||||
{
|
||||
usersQuery = usersQuery.Where(u => u.Email.Contains(model.SearchTerm));
|
||||
}
|
||||
|
||||
if (sortOrder != null)
|
||||
{
|
||||
switch (sortOrder)
|
||||
{
|
||||
case "desc":
|
||||
ViewData["NextUserEmailSortOrder"] = "asc";
|
||||
usersQuery = usersQuery.OrderByDescending(user => user.Email);
|
||||
break;
|
||||
case "asc":
|
||||
usersQuery = usersQuery.OrderBy(user => user.Email);
|
||||
ViewData["NextUserEmailSortOrder"] = "desc";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
model.Users = await usersQuery
|
||||
.Skip(model.Skip)
|
||||
.Take(model.Count)
|
||||
.Select(u => new UsersViewModel.UserViewModel
|
||||
{
|
||||
Name = u.UserName,
|
||||
@@ -33,7 +57,9 @@ namespace BTCPayServer.Controllers
|
||||
Id = u.Id,
|
||||
Verified = u.EmailConfirmed || !u.RequiresEmailConfirmation,
|
||||
Created = u.Created
|
||||
}).ToListAsync();
|
||||
})
|
||||
.ToListAsync();
|
||||
model.Total = await usersQuery.CountAsync();
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user