Add User Repository, and restructure controllers
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
<Folder Include="Users\Create\" />
|
<Folder Include="Users\Create\" />
|
||||||
<Folder Include="Users\Delete\" />
|
<Folder Include="Users\Delete\" />
|
||||||
<Folder Include="Users\Query\" />
|
<Folder Include="Users\Query\" />
|
||||||
|
<Folder Include="Users\Roles\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</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>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Controllers\Orders\" />
|
||||||
|
<Folder Include="Controllers\Users\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Reference in New Issue
Block a user