Add User Repository, and restructure controllers
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
<Folder Include="Users\Create\" />
|
||||
<Folder Include="Users\Delete\" />
|
||||
<Folder Include="Users\Query\" />
|
||||
<Folder Include="Users\Roles\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
11
src/Imprink.Domain/Repositories/IRoleRepository.cs
Normal file
11
src/Imprink.Domain/Repositories/IRoleRepository.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Imprink.Domain.Entities.Users;
|
||||
|
||||
namespace Imprink.Domain.Repositories;
|
||||
|
||||
public interface IRoleRepository
|
||||
{
|
||||
Task<IEnumerable<Role>> GetAllRolesAsync(CancellationToken cancellationToken = default);
|
||||
Task<Role?> GetRoleByIdAsync(Guid roleId, CancellationToken cancellationToken = default);
|
||||
Task<Role?> GetRoleByNameAsync(string roleName, CancellationToken cancellationToken = default);
|
||||
Task<bool> RoleExistsAsync(Guid roleId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
36
src/Imprink.Domain/Repositories/IUserRepository.cs
Normal file
36
src/Imprink.Domain/Repositories/IUserRepository.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using Imprink.Domain.Entities.Users;
|
||||
|
||||
namespace Imprink.Domain.Repositories;
|
||||
|
||||
public interface IUserRepository
|
||||
{
|
||||
Task<User?> GetUserByIdAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserByEmailAsync(string email, CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<User>> GetAllUsersAsync(CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<User>> GetActiveUsersAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
Task<User> CreateUserAsync(User user, CancellationToken cancellationToken = default);
|
||||
Task<User> UpdateUserAsync(User user, CancellationToken cancellationToken = default);
|
||||
Task DeleteUserAsync(string userId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<bool> UserExistsAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<bool> EmailExistsAsync(string email, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<bool> ActivateUserAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<bool> DeactivateUserAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task UpdateLastLoginAsync(string userId, DateTime loginTime, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<IEnumerable<User>> SearchUsersAsync(string searchTerm, CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<User>> GetUsersByRoleAsync(Guid roleId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<(IEnumerable<User> Users, int TotalCount)> GetUsersPagedAsync(
|
||||
int pageNumber,
|
||||
int pageSize,
|
||||
string? searchTerm = null,
|
||||
bool? isActive = null,
|
||||
CancellationToken cancellationToken = default);
|
||||
|
||||
Task<User?> GetUserWithAddressesAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserWithRolesAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserWithAllRelatedDataAsync(string userId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
15
src/Imprink.Domain/Repositories/IUserRoleRepository.cs
Normal file
15
src/Imprink.Domain/Repositories/IUserRoleRepository.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Imprink.Domain.Entities.Users;
|
||||
|
||||
namespace Imprink.Domain.Repositories;
|
||||
|
||||
public interface IUserRoleRepository
|
||||
{
|
||||
Task<IEnumerable<Role>> GetUserRolesAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<User>> GetUsersInRoleAsync(Guid roleId, CancellationToken cancellationToken = default);
|
||||
Task<bool> IsUserInRoleAsync(string userId, Guid roleId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<UserRole?> GetUserRoleAsync(string userId, Guid roleId, CancellationToken cancellationToken = default);
|
||||
Task AddUserRoleAsync(UserRole userRole, CancellationToken cancellationToken = default);
|
||||
Task RemoveUserRoleAsync(UserRole userRole, CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<UserRole>> GetUserRolesByUserIdAsync(string userId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -29,4 +29,9 @@
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Controllers\Orders\" />
|
||||
<Folder Include="Controllers\Users\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user