Add paginated user retrieval functionality in AdminController and related services. Implemented UsersFilter for filtering user queries and added LastConnectionDate property to User model. Updated database schema and frontend API to support new user management features.
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
using Managing.Domain.Users;
|
||||
using Managing.Application.Abstractions.Shared;
|
||||
using Managing.Domain.Users;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Application.Abstractions.Repositories;
|
||||
|
||||
@@ -8,5 +10,6 @@ public interface IUserRepository
|
||||
Task<User> GetUserByNameAsync(string name, bool fetchAccounts = false);
|
||||
Task<User?> GetUserByIdAsync(int userId);
|
||||
Task<IEnumerable<User>> GetAllUsersAsync();
|
||||
Task<(IEnumerable<User> Users, int TotalCount)> GetUsersPaginatedAsync(int page, int pageSize, UserSortableColumn sortBy, string sortOrder, UsersFilter filter);
|
||||
Task SaveOrUpdateUserAsync(User user);
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using Managing.Domain.Users;
|
||||
using Managing.Application.Abstractions.Shared;
|
||||
using Managing.Domain.Users;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Application.Abstractions.Services;
|
||||
|
||||
@@ -13,4 +15,5 @@ public interface IUserService
|
||||
Task<User> GetUserByAgentName(string agentName);
|
||||
Task<User> GetUserByIdAsync(int userId);
|
||||
Task<IEnumerable<User>> GetAllUsersAsync();
|
||||
Task<(IEnumerable<User> Users, int TotalCount)> GetUsersPaginatedAsync(int page, int pageSize, UserSortableColumn sortBy, string sortOrder, UsersFilter filter);
|
||||
}
|
||||
@@ -68,4 +68,30 @@ public class BundleBacktestRequestsFilter
|
||||
public DateTime? CreatedAtTo { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Filter model for users
|
||||
/// </summary>
|
||||
public class UsersFilter
|
||||
{
|
||||
/// <summary>
|
||||
/// Filter by user name contains (case-insensitive)
|
||||
/// </summary>
|
||||
public string? UserNameContains { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by owner address contains (case-insensitive)
|
||||
/// </summary>
|
||||
public string? OwnerAddressContains { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by agent name contains (case-insensitive)
|
||||
/// </summary>
|
||||
public string? AgentNameContains { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Filter by telegram channel contains (case-insensitive)
|
||||
/// </summary>
|
||||
public string? TelegramChannelContains { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user