Class ProjectInvitationRepository
- Namespace
- Builvero.Infrastructure.Repositories
- Assembly
- Builvero.Infrastructure.dll
Repository implementation for project invitation data access operations using Entity Framework Core.
public class ProjectInvitationRepository : IProjectInvitationRepository
- Inheritance
-
ProjectInvitationRepository
- Implements
- Inherited Members
Remarks
Project invitations allow project owners to invite users to join their projects. Invitations use secure tokens for email-based acceptance without requiring login.
Constructors
ProjectInvitationRepository(ApplicationDbContext)
Initializes a new instance of the ProjectInvitationRepository class.
public ProjectInvitationRepository(ApplicationDbContext context)
Parameters
contextApplicationDbContextThe Entity Framework database context for data access.
Methods
CreateAsync(ProjectInvitation, CancellationToken)
Creates a new project invitation in the database.
public Task<ProjectInvitation> CreateAsync(ProjectInvitation invitation, CancellationToken cancellationToken = default)
Parameters
invitationProjectInvitationThe project invitation entity to create.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<ProjectInvitation>
The created project invitation entity with its generated ID.
GetByIdAsync(Guid, CancellationToken)
Retrieves a project invitation by its unique identifier.
public Task<ProjectInvitation?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default)
Parameters
idGuidThe unique identifier of the invitation to retrieve.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<ProjectInvitation>
The invitation with Project, FromUser, and ToUser loaded, or null if not found.
GetByTokenAsync(string, CancellationToken)
Retrieves a project invitation by its secure token.
public Task<ProjectInvitation?> GetByTokenAsync(string token, CancellationToken cancellationToken = default)
Parameters
tokenstringThe secure token associated with the invitation.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<ProjectInvitation>
The invitation with Project, FromUser, and ToUser loaded, or null if not found.
GetIncomingInvitationsAsync(Guid, CancellationToken)
Retrieves all pending invitations received by a user.
public Task<List<ProjectInvitation>> GetIncomingInvitationsAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidThe unique identifier of the user who received the invitations.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<List<ProjectInvitation>>
A list of pending invitations with Project and FromUser (with Profile) loaded, ordered by creation date (newest first).
GetOutgoingInvitationsAsync(Guid, CancellationToken)
Retrieves all invitations sent by a user (regardless of status).
public Task<List<ProjectInvitation>> GetOutgoingInvitationsAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidThe unique identifier of the user who sent the invitations.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<List<ProjectInvitation>>
A list of invitations with Project and ToUser (with Profile) loaded, ordered by creation date (newest first).
GetPendingInvitationAsync(Guid, Guid, CancellationToken)
Retrieves a pending invitation for a specific project and user.
public Task<ProjectInvitation?> GetPendingInvitationAsync(Guid projectId, Guid toUserId, CancellationToken cancellationToken = default)
Parameters
projectIdGuidThe unique identifier of the project.
toUserIdGuidThe unique identifier of the user who was invited.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<ProjectInvitation>
The pending invitation if found; otherwise, null.
UpdateAsync(ProjectInvitation, CancellationToken)
Updates an existing project invitation in the database.
public Task<ProjectInvitation> UpdateAsync(ProjectInvitation invitation, CancellationToken cancellationToken = default)
Parameters
invitationProjectInvitationThe project invitation entity to update.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<ProjectInvitation>
The updated project invitation entity.