Files
react-dotnet-framework/backend/Data/IUserRepository.cs
2026-08-03 04:23:32 -04:00

23 lines
961 B
C#

namespace Backend.Data;
/// <summary>
/// Storage-agnostic access to <see cref="User"/>. Implementations are selected by the
/// <c>Persistence:Provider</c> setting; see <see cref="PersistenceServiceCollectionExtensions"/>.
/// </summary>
public interface IUserRepository
{
Task<IReadOnlyList<User>> GetAllAsync(CancellationToken cancellationToken = default);
Task<User?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default);
Task<User?> GetByEmailAsync(string email, CancellationToken cancellationToken = default);
Task<User> AddAsync(User user, CancellationToken cancellationToken = default);
/// <returns>The updated user, or <c>null</c> when no user has the given id.</returns>
Task<User?> UpdateAsync(User user, CancellationToken cancellationToken = default);
/// <returns><c>true</c> when a user was removed.</returns>
Task<bool> DeleteAsync(Guid id, CancellationToken cancellationToken = default);
}