Class OnboardingQuizAttemptRepository
- Namespace
- Builvero.Infrastructure.Repositories
- Assembly
- Builvero.Infrastructure.dll
Repository implementation for onboarding quiz attempt data access operations using Entity Framework Core.
public class OnboardingQuizAttemptRepository : IOnboardingQuizAttemptRepository
- Inheritance
-
OnboardingQuizAttemptRepository
- Implements
- Inherited Members
Remarks
Onboarding quiz attempts track user progress through the TeamCandidate onboarding quiz. Users can have multiple attempts, but only one active (unsubmitted) attempt at a time.
Constructors
OnboardingQuizAttemptRepository(ApplicationDbContext)
Initializes a new instance of the OnboardingQuizAttemptRepository class.
public OnboardingQuizAttemptRepository(ApplicationDbContext context)
Parameters
contextApplicationDbContextThe Entity Framework database context for data access.
Methods
CreateAsync(OnboardingQuizAttempt, CancellationToken)
Creates a new onboarding quiz attempt in the database.
public Task<OnboardingQuizAttempt> CreateAsync(OnboardingQuizAttempt attempt, CancellationToken cancellationToken = default)
Parameters
attemptOnboardingQuizAttemptThe quiz attempt entity to create.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<OnboardingQuizAttempt>
The created quiz attempt entity with its generated ID.
GetActiveAttemptByUserIdAsync(Guid, CancellationToken)
Retrieves the active (unsubmitted) quiz attempt for a user.
public Task<OnboardingQuizAttempt?> GetActiveAttemptByUserIdAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidThe unique identifier of the user.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<OnboardingQuizAttempt>
The most recent active attempt if found; otherwise, null.
GetByIdAsync(Guid, CancellationToken)
Retrieves an onboarding quiz attempt by its unique identifier.
public Task<OnboardingQuizAttempt?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default)
Parameters
idGuidThe unique identifier of the attempt to retrieve.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<OnboardingQuizAttempt>
The attempt with User loaded, or null if not found.
InvalidateActiveAttemptsAsync(Guid, CancellationToken)
Invalidates all active (unsubmitted) quiz attempts for a user by deleting them.
public Task InvalidateActiveAttemptsAsync(Guid userId, CancellationToken cancellationToken = default)
Parameters
userIdGuidThe unique identifier of the user.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task
- Repository implementation for onboarding quiz attempt data access operations using Entity Framework Core.
Remarks
This method is called when a user starts a new quiz attempt to ensure only one active attempt exists. All unsubmitted attempts are deleted to prevent conflicts.
UpdateAsync(OnboardingQuizAttempt, CancellationToken)
Updates an existing onboarding quiz attempt in the database.
public Task<OnboardingQuizAttempt> UpdateAsync(OnboardingQuizAttempt attempt, CancellationToken cancellationToken = default)
Parameters
attemptOnboardingQuizAttemptThe quiz attempt entity to update.
cancellationTokenCancellationTokenCancellation token to cancel the operation.
Returns
- Task<OnboardingQuizAttempt>
The updated quiz attempt entity.